On Wed, Jun 6, 2018 at 3:39 PM, Ondrej Zajicek <[email protected]> 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 <[email protected]> > > 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
