[riot-users] Question Regarding NIB Size
robin at chilio.net
Fri Nov 9 03:13:22 CET 2018
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