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);
|
netif->pid);
|
||||||
return res;
|
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 */
|
#endif /* GNRC_IPV6_NIB_CONF_ARSM */
|
||||||
netif->ipv6.addrs_flags[idx] = flags;
|
netif->ipv6.addrs_flags[idx] = flags;
|
||||||
memcpy(&netif->ipv6.addrs[idx], addr, sizeof(netif->ipv6.addrs[idx]));
|
memcpy(&netif->ipv6.addrs[idx], addr, sizeof(netif->ipv6.addrs[idx]));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user