Bug in current git concerning BGP neighbor search
Hi, I noticed that the currect git version of bird always disables a BGP protocol instance when the neighbor address is unreachable. This is caused by changing the line if (!p->neigh) to if (!p->neigh || (p->neigh->scope == SCOPE_HOST)) in bgp.c; while formerly, the protocol was only disabled when the address was invalid, the new version also considers the address invalid when the neighbor isn't found. This problem occurs because SCOPE_HOST is equivalent to 0, but the scope is set to 0 by neigh_find() when a neighbor isn't found; I guess it is unintended that SCOPE_HOST is the same as an invalid scope. This bug currently blocks me fixing the problems you mentioned concerning my link-local v6 peering patch. Matthias Schiffer
On Fri, Jan 07, 2011 at 05:34:18PM +0100, Matthias Schiffer wrote:
Hi, I noticed that the currect git version of bird always disables a BGP protocol instance when the neighbor address is unreachable. This is caused by changing the line if (!p->neigh) to if (!p->neigh || (p->neigh->scope == SCOPE_HOST)) in bgp.c; while formerly, the protocol was only disabled when the address was invalid, the new version also considers the address invalid when the neighbor isn't found. This problem occurs because SCOPE_HOST is equivalent to 0, but the scope is set to 0 by neigh_find() when a neighbor isn't found; I guess it is unintended that SCOPE_HOST is the same as an invalid scope.
Yes. It seems to be OK to set scope to -1 on new sticky neighbor entries (on nest/neighbor.c:169). -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Matthias Schiffer -
Ondrej Zajicek