In situations with high packet loss, if all sync packets are lost, conflicting
subnets will be configured.
If the network is static, this can be prevented by always using the highest number
of subnets that has been observed.
This assumes no nodes are physically added / removed from the network.
In a881af8b08 we would return early if the subnet did not change,
but we must still send the router advertisement with the route information
option to the upstream network, otherwise hosts in that network will not
consider the downstream subnet off-link.
This is required for Linux to accept the RIO
with this patch:
2001:db8:8000::/33 via fe80::d0e7:ffff:fe46:6b52 dev tap0 proto ra metric 1024 expires 86338sec pref medium
2001:db8::/32 dev tap0 proto kernel metric 256 pref medium
before:
2001:db8::/32 dev tap0 proto kernel metric 256 pref medium
If we get a large (e.g. /62) prefix from e.g. DHCPv6, we can split it
into subnets automatically to configure downstream interfaces.
This allows for automatic configuration of daisy-chained nodes or
nodes connected in a tree topology.
To enable the feature, a new pseudo-module `gnrc_ipv6_auto_subnets` is
provided.