[riot-users] Question Regarding NIB Size

Robin robin at chilio.net
Fri Nov 9 03:13:22 CET 2018

Hi all,

i have a question regarding the NIB default size (4) for native arch. 
Maybe someone on this list knows further details.

I just debugged a problem in an application i wrote. The application 
itself create two threads. One of them periodically sends a UDP message 
through the gnrc_udp_sock interface and waits for an answer (with a 5 
second timeout), the other waits for the incoming UDP Message (w/o 
timeout) and returns the answers. The whole application is a P2P DHT 
network but i was able to boil down the problem to this two primitives.

When i started a setup where the first node was the contact point for 
all other nodes everything worked as expected until i added a fifth node 
which always runs into a timeout on the very first message.

After i looked into a packet trace it turned out that the node sends a 
IPv6 neighbor solicitation which in contrast to the other four nodes 
does not get answered with a neigh. advert. right away, but rather gets 
answered with another neigh. sol. from the first node (which itself gets 
answered). The UDP packet never gets send (which explains the timeout).

A little bit of debugging showed that the size of the NIB is defined to 
be 4. Increasing this value solved the problem for me.

My question is basically if this is somehow expected behaviour? As i 
interpret the NIB it is more like a cache, but not necessarily needed 
for working communication? Also i do not understand by now why the 
sending host got problems sending the UDP packet if the target host has 
a full NIB. Maybe my understanding is a little bit to much IPv4 driven, 
but shouldn't the sending host be able to use the default route anyway? 
(which exists according to "nib route show")

To setup the IPv6 Network i use radvd on an Arch Linux with the native 
tapbr setup as described in the wiki.

I appreciate any input :)


More information about the users mailing list