gnrc_ipv6_simple_subnets: auto-configuration for nested subnets on a simple tree topology #16536
Conversation
e2bc1fb to
028a32f
Compare
| if (downstream == upstream) { | ||
| continue; | ||
| } |
There was a problem hiding this comment.
What if there are supposed to be multiple upstreams?
There was a problem hiding this comment.
That's not supported - but it's also not supported by gnrc_dhcpv6_client_6lbr.
There was a problem hiding this comment.
Shouldn't it be possible when using multiple clients, one for each interface?
|
I'd like some more input from other contributors before merging this. |
2a96b62 to
0032dde
Compare
|
Though this is a new feature and I wouldn't mind waiting until the next release. |
|
I think the consensus was to move this somewhere else ( |
Do you have to? As far as I understand you are only interested in the upstream prefix from the PIO, not the whole RA. So can't there just be a mechanism ( |
92d6e55 to
659ab90
Compare
miri64
left a comment
There was a problem hiding this comment.
Please find a way to move this to sys/net/gnrc/routing. This is still a somewhat primitive routing protocol that you invented and not an intrinsic sub-component of IPv6 like the current module structure implies.
|
Will do, that's why there it still has the WIP tag 😉 |
659ab90 to
b59faef
Compare
The routers all have two interfaces, so |
6581881 to
a602e48
Compare
a602e48 to
b98fc18
Compare
b98fc18 to
e8c3f91
Compare
| blackpill \ | ||
| bluepill-stm32f030c8 \ | ||
| bluepill \ |
There was a problem hiding this comment.
arg looks like 4c7ac22 adds 8 bytes to ROM.
I can make gnrc_ipv6_nib_rtr_adv_pio_cb depend on a pseudo-module
|
All steps in the README now work as advertised. |
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.
8ee1a1a to
faae6d5
Compare
|
Thank you for the review! |

Contribution description
This module provides an automatic configuration for networks with a simple tree topology.
If a sufficiently large IPv6 prefix is provided via Router Advertisements, a routing node with this module will automatically configure subnets from it for each downstream interface.
There can only be a single routing node on each level of the network but an arbitrary number of leaf nodes.
The downstream network(s) get the reduced prefix via Router Advertisements and the process repeats until the bits of prefix are exhausted. (The smallest network must still have a /64 prefix.)
The downstream router will send an otherwise empty router advertisement with only the Route Information Option set to the upstream network.
The Route Information Option contains the prefix of the downstream network so that upstream hosts will no longer consider hosts in this subnet on-link but instead will use the downstream router to route to the new subnet.
Testing procedure
I daisy-chained three boards (one
same54-xproand twoweact-f411ce).The
same54-xprouses Ethernet as the uplink interface and SLIP for downlink (using #16530 and #16531).The WeAct boards have two SLIP interfaces each:
This was then tested with
examples/gnrc_networkingandThe
same54-xprowas configured withfirst level node (gateway)
second level node
third level node
The deepest node is reachable from an outside host
Issues/PRs references
depends on
#16568,#16672,#16557,#16671