1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/sys/net/gnrc/network_layer/ipv6/nib
Martine S. Lenders 4fc0251b4b
gnrc_ipv6_nib: only route to prefix list entry if on-link
In 06aa65e1ba (#10627) a new behavior was
introduced in IPv6 route resolution to try address resolution only at
interfaces that have the prefix of the address to be resolved configured
in the prefix list. This however only makes sense, if the prefix
configured is [on-link], otherwise there is small likelihood of the
address to be resolved being on that link.

For the error case presented for 06aa65e (circular routing at the border
router) this made sense, however within a 6LoWPAN, due to the prefix
being valid for the entire mesh, this leads to the nodes always trying
classic address resolution for in-network addresses instead of just
routing to the default route.
Classic address resolution however fails, as 6LoWPAN hosts typically
[don't join the solicited-node multicast address of their unicast
addresses][6LN-iface-init], resulting in in-network addresses not being
reachable.

As such, to prevent both error cases

- the fallback to address resolution by prefix list must only be used
  when the prefix is on-link,
- the prefix configured by DHCPv6/UHCP at the 6LoWPAN border router
  must be configured as on-link, but
- the prefix must not be advertised as on-link within the 6LoWPAN to
  still be [in line with RFC 6775][RFC-6775-forbidden]

With this change these cases are covered.

[on-link]: https://tools.ietf.org/html/rfc4861#page-6
[RFC 6775]: https://tools.ietf.org/html/rfc6775
[6LN-iface-init]: https://tools.ietf.org/html/rfc6775#section-5.2
[RFC-6775-forbidden]: https://tools.ietf.org/html/rfc6775#section-6.1
2020-03-25 13:13:40 +01:00
..
_nib-6ln.c gnrc_ipv6_nib: use gnrc_netif_get_eui64() for ARO build and check 2019-01-29 21:52:53 +01:00
_nib-6ln.h gnrc_ipv6_nib: fallback to SLAAC if ARO is ignored by upstream 2018-08-09 10:56:36 +02:00
_nib-6lr.c gnrc: nib: DEBUG fix 2018-01-15 14:37:05 +01:00
_nib-6lr.h gnrc_netif: assume flag settings on compile time 2017-12-19 12:04:36 +01:00
_nib-arsm.c net/gnrc/sixlowpan/nd:Move ND time macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
_nib-arsm.h gnrc_ipv6_nib: expose non-randomized part of NS-backoff calculation 2019-02-12 17:01:14 +01:00
_nib-internal.c gnrc_ipv6_nib: only route to prefix list entry if on-link 2020-03-25 13:13:40 +01:00
_nib-internal.h many typo fixes 2019-11-23 22:39:07 +01:00
_nib-router.c gnrc_ipv6_nib: only route to prefix list entry if on-link 2020-03-25 13:13:40 +01:00
_nib-router.h gnrc_ipv6_nib: assure netif != NULL in route info callback 2019-06-20 16:18:23 +02:00
_nib-slaac.c net/gnrc/netif: Move GNRC_NETIF_IPV6_ADDRS_NUMOF to 'CONFIG_' namespace 2020-01-13 12:28:37 +01:00
_nib-slaac.h gnrc: nib: fix DOXYGE -> DOXYGEN 2019-02-06 13:01:40 +01:00
Makefile gnrc_ipv6_nib: initial import of internal NIB functions 2017-06-09 21:52:37 +02:00
nib_abr.c gnrc_ipv6_nib: use mutex wrapper function instead of mutex functions 2019-10-11 12:17:05 +02:00
nib_ft.c gnrc_ipv6_nib: use mutex wrapper function instead of mutex functions 2019-10-11 12:17:05 +02:00
nib_nc.c gnrc_ipv6_nib: use mutex wrapper function instead of mutex functions 2019-10-11 12:17:05 +02:00
nib_pl.c gnrc_ipv6_nib: only route to prefix list entry if on-link 2020-03-25 13:13:40 +01:00
nib.c gnrc_ipv6_nib: allow for configuration of static link-local addresses 2020-01-14 15:46:18 +01:00