[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