Question Regarding NIB Size

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 :slight_smile:

Regards, Robin