1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/sys/net
Martine S. Lenders 46fd632e91
gnrc_netif: highest source address scope wins selection
Rule 2 of the source address algorithm outlined in [RFC6724] states the
possible source addresses must also be compared among each other:

>     Rule 2: Prefer appropriate scope.
>     If Scope(SA) < Scope(SB): If Scope(SA) < Scope(D), then prefer SB and
>     otherwise prefer SA.  Similarly, if Scope(SB) < Scope(SA): If
>     Scope(SB) < Scope(D), then prefer SA and otherwise prefer SB.

Our current implementation doesn't do that. It just checks if the scope
of a possible source is lesser than the scope of the destination
(which involves the second "If" in the rule).

This fix grants points according to the scope of an address. If the
scope matches, they get the highest points, ensuring that the selected
source will always be reachable from the destination.

[RFC6724]: https://tools.ietf.org/html/rfc6724
2020-01-14 09:54:17 +01:00
..
application_layer Merge pull request #11957 from miri64/emcute/fix/payload-copy-error 2019-10-07 17:17:44 +02:00
ble ble/skald: remove broken assert in init() 2019-09-26 22:07:23 +02:00
credman sys/net: add credman (D)TLS credential manager 2019-07-19 13:56:21 +02:00
crosslayer drivers/sx127x: add NETOPT_RX_SYMBOL_TIMEOUT setter 2019-06-27 15:43:50 +02:00
gnrc gnrc_netif: highest source address scope wins selection 2020-01-14 09:54:17 +01:00
link_layer net/l2util: fix addr conversion for BLE 2019-08-28 16:48:41 +02:00
netdev_test sys/net: iolist updates 2018-03-06 14:00:32 +01:00
netif netif: introduce descriptor based netif 2019-10-11 10:59:14 +02:00
network_layer ipv6_ext: remove empty, unused module 2018-10-25 11:12:14 +02:00
routing nhdp: deprecate module 2019-08-28 06:22:14 +02:00
sock sys/net/sock_util: Accept null pointers in urlsplit 2019-06-12 10:03:11 +02:00
transport_layer sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
doc.txt doc: add net to sys group 2015-08-30 14:00:33 +02:00