mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2026-01-01 01:41:18 +01:00
Merge pull request #15079 from miri64/gnrc_ipv6_nib/enh/multicast-6LN-UNREACHABLED-probe
gnrc_ipv6_nib: only multicast probe UNREACHABLE neighbor if 6LR
This commit is contained in:
commit
f55031e65d
@ -34,7 +34,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_6LN) || defined(DOXYGEN)
|
||||
/**
|
||||
* @brief Additional (local) status to ARO status values for tentative
|
||||
* addresses
|
||||
@ -57,6 +56,7 @@ extern "C" {
|
||||
*/
|
||||
#define _ADDR_REG_STATUS_UNAVAIL (255)
|
||||
|
||||
#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_6LN) || defined(DOXYGEN)
|
||||
/**
|
||||
* @brief Resolves address statically from destination address using reverse
|
||||
* translation of the IID
|
||||
|
||||
@ -233,7 +233,19 @@ void _handle_snd_ns(_nib_onl_entry_t *nbr)
|
||||
}
|
||||
/* intentionally falls through */
|
||||
case GNRC_IPV6_NIB_NC_INFO_NUD_STATE_UNREACHABLE:
|
||||
_probe_nbr(nbr, false);
|
||||
if (!IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_6LR) ||
|
||||
/* if neighbor is a 6LoWPAN node (i.e. address registartion
|
||||
* state is non-garbage-collectible), only probe if it is a
|
||||
* router (where the solicited-nodes multicast address MUST
|
||||
* be set; only MAY otherwise).
|
||||
* See:
|
||||
* - https://tools.ietf.org/html/rfc6775#section-5.2
|
||||
* - https://tools.ietf.org/html/rfc6775#section-6.5.5
|
||||
*/
|
||||
(_get_ar_state(nbr) == GNRC_IPV6_NIB_NC_INFO_AR_STATE_GC) ||
|
||||
(nbr->info & GNRC_IPV6_NIB_NC_INFO_IS_ROUTER)) {
|
||||
_probe_nbr(nbr, false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user