Neighbor cache is unware of addresses added or removed without taking the interface down
Hi, when playing with bird I noticed the following problem: When I add or remove addresses to/from an interface without taking the interface down when doing so, the neighbor cache isn't notified, causing BGP sessions not to start even though the neighbor has become reachable, or BGP sessions that already found their neighbor not to look for it on other interfaces after the address has disappeared. The attached patch fixes this by updating the neighbor cache on every interface address update; I've only tested it with BGP though, I don't know if it has any side effects concerning other protocols. Best regards, Matthias Schiffer
On Thu, Dec 08, 2011 at 01:25:16AM +0100, Matthias Schiffer wrote:
Hi, when playing with bird I noticed the following problem:
When I add or remove addresses to/from an interface without taking the interface down when doing so, the neighbor cache isn't notified, causing BGP sessions not to start even though the neighbor has become reachable, or BGP sessions that already found their neighbor not to look for it on other interfaces after the address has disappeared.
Thanks for bugreport, it is interesting that nobody noticed this before :-)
The attached patch fixes this by updating the neighbor cache on every interface address update; I've only tested it with BGP though, I don't know if it has any side effects concerning other protocols.
The patch is OK even for other protocols (only the BGP and static uses sticky neighbor cache entries), thanks. I didn't want to completely remove neigh_if_up() / neigh_if_down(), so i did some modifications to that (attached) and merged that. -- 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