[quagga-dev 1394] Re: Bounty for netlink/zebra desync problem

Paul Jakma paul at clubi.ie
Wed Aug 11 13:59:20 BST 2004

On Wed, 11 Aug 2004 alex at pilosoft.com wrote:

> I don't trust it. :)

A 'fixed' netlink that would need manual syncs is by definition not 
fixed ;). We can detect need for resync by ENOBUFS.

> I'm not so sure. I think [correct me if i am wrong] that max rcv 
> buffer is 64k.

Nah, you can set it much higher, into the MBs if you need.

> I think desyncs happen when external routing event occurs at same 
> time as Zebra is adding or deleting a large batch of routes. I am 
> not sure if 64k is enough to cover that.

Right. And part of the solution here will be workqueues to allow 
long-rounds of deletes (eg due to bgp peer down) to be broken up into 
smaller units of work and allow the the thread system to schedule the 
netlink reader in between.

This would also fix the biggest problem with lots of interfaces: when 
zebra starts up, it can generate netlink commands while reading the 
config file, however it wont read the netlink socket till that's 
done, so kernel generated ACKs and resulting other netlink broadcasts 
build up and overflow the socket. Work queues again should fix this.

> Although, I'm going to apply Hanso's patch - it might solve my 
> problem...Bounty still stands ;)
> -alex

Paul Jakma	paul at clubi.ie	paul at jakma.org	Key ID: 64A2FF6A
Above all things, reverence yourself.

More information about the Quagga-dev mailing list