diff --git a/core/contiki-default-conf.h b/core/contiki-default-conf.h index 698b48286..0083f7e10 100644 --- a/core/contiki-default-conf.h +++ b/core/contiki-default-conf.h @@ -193,13 +193,21 @@ #endif /* NBR_TABLE_CONF_MAX_NEIGHBORS */ /* UIP_CONF_ND6_SEND_RA enables standard IPv6 Router Advertisement. - * This is unneeded when RPL is used. */ + * We enable it by default when IPv6 is used without RPL. */ #ifndef UIP_CONF_ND6_SEND_RA #define UIP_CONF_ND6_SEND_RA (NETSTACK_CONF_WITH_IPV6 && !UIP_CONF_IPV6_RPL) #endif /* UIP_CONF_ND6_SEND_RA */ /* UIP_CONF_ND6_SEND_NA enables standard IPv6 Neighbor Discovery Protocol. - This is unneeded when RPL is used. */ + We enable it by default when IPv6 is used without RPL. + With RPL, the neighbor cache (link-local IPv6 <-> MAC address mapping) + is fed whenever receiving DIO and DAO messages. This is always sufficient + for RPL routing, i.e. to send to the preferred parent or any child. + Link-local unicast to other neighbors may, however, not be possible if + we never receive any DIO from them. This may happen if the link from the + neighbor to us is weak, if DIO transmissions are suppressed (Trickle + timer) or if the neighbor chooses not to transmit DIOs because it is + a leaf node or for any reason. */ #ifndef UIP_CONF_ND6_SEND_NA #define UIP_CONF_ND6_SEND_NA (NETSTACK_CONF_WITH_IPV6 && !UIP_CONF_IPV6_RPL) #endif /* UIP_CONF_ND6_SEND_NA */