gnrc_netif: warn when not joining solicited-nodes from non-6LN netif
Similar as with #12513, when the NIB is compiled in 6LN mode (but not 6LR mode), the address-resolution state-machine (ARSM) functionality is disabled in favor of the more simpler address resolution proposed in RFC 6775. However, if a non-6LN interface is also compiled in (without making it a router or border router) it will never join the solicited-nodes multicast address of addresses added to it, resulting in address resolution to that interface to fail. If the interface is not a 6LN (which in case 6LN mode is disabled is always false), a warning is now printed, encouraging the user to activate the ARSM functionality if needed.
This commit is contained in:
parent
046c10ecce
commit
88090bc0f6
@ -613,6 +613,13 @@ int gnrc_netif_ipv6_addr_add_internal(gnrc_netif_t *netif,
|
||||
netif->pid);
|
||||
return res;
|
||||
}
|
||||
#else /* GNRC_IPV6_NIB_CONF_ARSM */
|
||||
if (!gnrc_netif_is_6ln(netif)) {
|
||||
LOG_WARNING("Address-resolution state-machine not activated. Neighbors "
|
||||
"from interface %u\nwill not be able to resolve address %s\n"
|
||||
" Use GNRC_IPV6_NIB_CONF_ARSM=1 to activate.\n",
|
||||
netif->pid, ipv6_addr_to_str(addr_str, addr, sizeof(addr_str)));
|
||||
}
|
||||
#endif /* GNRC_IPV6_NIB_CONF_ARSM */
|
||||
netif->ipv6.addrs_flags[idx] = flags;
|
||||
memcpy(&netif->ipv6.addrs[idx], addr, sizeof(netif->ipv6.addrs[idx]));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user