On Wed, Jun 6, 2018 at 3:39 PM, Ondrej Zajicek <santiago@crfreenet.org> wrote:
On Wed, Jun 06, 2018 at 03:17:37PM +0100, Thomás S. Bregolin wrote:
On Wed, Jun 6, 2018 at 2:25 PM, Ondrej Zajicek <santiago@crfreenet.org> wrote:
On Wed, Jun 06, 2018 at 01:33:53PM +0100, Thomás S. Bregolin wrote: [...]
I've attached a modified version of the test-withdraw script showing the issue. It seems my problem is related to the "start delay time" option. When I set it to 1, sometimes the withdrawal is sent, and sometimes it isn't. However, when it *isn't* sent, it is *never* sent, no matter how long I wait. The problem is solved by setting the timeout to a higher value, or using the default 5 seconds.
Hello
Note that in the modified version no protocols are removed, both testproto and testproto2 are still configured and running. Just the BGP export filter was changed, and because 'configure soft' was used, then it was not reloaded. That is expected.
But it is likely that if both changes happen simultaneously, i.e. a static protocol is removed and a BGP export filter is changed to no longer allow routes from that protocol, then withdraws are not sent. This is likely a bug, could be avoided by not doing both protocol removal and export filter change at the same time.
Oh, interesting! Indeed, if I remove just the filter or both the filter and route, the withdrawals are not sent. However, if I remove only the route, the withdrawal is sent.
If you remove just the filter, then withdrawal is not sent, because you used 'configure soft' and not 'configure'. That is expected and will be fixed when you use 'reload' command.
The problem is only when a route is removed during such interval, as then during 'reload' BIRD no longer knows about it and therefore does not send a withdrawal.
Also note that when both sides has BGP with 'enhanced route refresh', the issue should not be problem. As in such case 'reload out' is delimited by Begin-RR and End-RR messages and received should remove all routes that were not received during that interval.
As BIRD has this feature for a long time, not sure why it does not happen in your case. Do you have something different than BIRD on the other side? What is reported in 'Neighbor caps' in 'show protocols all' for BGP session?
I see. It's not BIRD on the other side. In this instance I'm using a QFX with JUNOS 15. But I believe I've seen the issue with Cisco and Arista routers, too. Will have to confirm, though. I have this in neighboor caps: Neighbor caps: refresh restart-aware AS4 I'll check about the enhanced route refresh. - Thomás