[quagga-dev 1394] Re: Bounty for netlink/zebra desync problem
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 ;)
Paul Jakma paul at clubi.ie paul at jakma.org Key ID: 64A2FF6A
Above all things, reverence yourself.
More information about the Quagga-dev