Dropped netlink updates during scans
santiago at crfreenet.org
Thu Aug 13 18:00:03 CEST 2015
On Thu, Aug 13, 2015 at 03:12:26PM +0000, Shaun Crampton wrote:
> We’re using BIRD to redistribute routes that are programmed into the Linux
> kernel for routing to local containers or VMs. We set a scan time in the
> kernel section of the config in order to notice when routes are removed.
> Normally, BIRD picks up routes that are added extremely quickly. However,
> if a route is added during a scan, it seems to be missed and it is not
> picked up until the next scan, many seconds later.
I was not aware of this issue but the cause it is pretty clear - scans
are implemented in a synchronous way and BIRD ignores all non-related
messages during these scans.
The proper solution would be to make make the BIRD netlink code fully
asynchronous, but that means rewritting half of netlink and route
scanning code. As a workaround we could just queue these asynchronous
messages and process them after scans (and other netlink operations).
BTW, the issue is likely not limited to route scans but may happen with
any netlink operation (like request for route change), but other
operations are probably too quick to cause the problem in practice.
Do you have a simple way how to trigger the issue?
Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago at 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."
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: Digital signature
More information about the Bird-users