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
signature.asc
Description: OpenPGP digital signature