[Babel-users] Bucket full, dropping packet

Denis Ovsienko denis at ovsienko.info
Mon Dec 7 15:00:51 UTC 2015


---- On Mon, 07 Dec 2015 09:49:34 +0000 Henning Rogge<hrogge at gmail.com> wrote ---- 
 > On Mon, Dec 7, 2015 at 10:21 AM, Juliusz Chroboczek 
 > <jch at pps.univ-paris-diderot.fr> wrote: 
 > >> netlink_read: recvmsg(): No buffer space available 
 > > 
 > > I've seen that.  I have no idea what causes that, but babeld should 
 > > recover cleanly (by closing and reopening the netlink socket). 
 >  
 > I had them in OLSRv2 too... in my case it was the case that the buffer 
 > for receiving netlink messages from the kernel became full, I had too 
 > many netlink message "in flight". 
 >  
 > I solved it by having a rate limitation, sending a block of netlink 
 > messages, then waiting for the ACKs before sending the next. 

Hello.

Not sure if this helps, but I remember a long time ago Quagga would hit rtnetlink (?) buffer boundary quite often installing and uninstalling BGP full view routes. To be honest, right now I am not sure it wasn't the FreeBSD routing socket interface in that case, but the point is the problem went away after raising the socket buffer size to a few megabytes from then-default 64KB or similar.

As a side note, ENOBUFS set by recvmsg() looks a bit strange because in this case the caller is pulling _from_ the buffer. ENOBUFS would be much more expected after sendmsg(). I have not used the sockets interface for a while, but the man page reminds that the receiver should see MSG_TRUNC raised on the message itself in this case.

-- 
    Denis Ovsienko




More information about the Babel-users mailing list