Linux 4.20 / incomplete ipv4 addr list / RTM_GETADDR

Arthur Gautier baloo at gandi.net
Sat Dec 29 06:54:58 CET 2018


On Fri, Dec 28, 2018 at 07:52:59PM +0100, Ondrej Zajicek wrote:
> On Thu, Dec 27, 2018 at 05:01:52PM +0000, Arthur Gautier wrote:
> > Hello bird users,
> > 
> > Today I tried to upgrade one of platform to from linux 4.19 to linux 4.20.
> > I started noticing the bgp protocol could not start after this message:
> >   <TRACE> uplink: Waiting for 1.2.3.4 to become my neighbor
> > 
> > The neighbor (directly connected on an interface) would never appear to
> > bird (as in show interfaces) because the AF_INET/RTM_GETADDR reply from the
> > kernel looks incomplete. It works fine in v6.
> > 
> > The results from kernel are capped to 104 ip address (and we run servers
> > with >700 ip address) on loopback.
> 
> Hello
> 
> Aren't there any error messages in log? I would guess it is truncated
> message due to some more information pushed from kernel or putting
> multiple information into one messsage.
> 
> Does it help if the constant NL_RX_SIZE (in sysdep/linux/netlink.c) is
> increased?
> 
> > I confirm this behavour with nlmon / tcpdump / wireshark.
> > Tested with bird v2.0.2 and v1.6.3 (debian stable).
> 
> Is capped the result from kernel, or its parsing in BIRD? But
> perhaps limited buffer size would cause kernel to limit output
> of data it sends.

The result from the kernel is capped. I extracted the bird code
to reproduce the issue in a minimal environment. I also have been able
to bisected the issue I have down to d7e38611b81e6d7e14969c361f2b9fc07403a6c3
https://github.com/torvalds/linux/commit/d7e38611b81e6d7e14969c361f2b9fc07403a6c3

I am not yet capable to understand why this is happening. Code looks
very similar to what ipv6 is doing but does not work the same for v4.

I am still working on getting a patch for this.


-- 
\o/ Arthur
 G  Gandi.net


More information about the Bird-users mailing list