-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gnrc/ipv6/nib: automatically create 6ctx for downstream networks #21086
base: master
Are you sure you want to change the base?
Conversation
@@ -1787,6 +1787,28 @@ static const char *_prio_string(uint8_t prio) | |||
return "invalid"; | |||
} | |||
|
|||
static gnrc_pktsnip_t *_build_ctxs(_nib_abr_entry_t *abr) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't there already be a function like this somewhere in the code base?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only a function that adds all options
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid code duplication, does it make sense to call the function at hand there as well?
There are two things implied here that are untypical for 6lowpan networks.
A lowpan can be spanned by The Or when you want to introduce multiple border routers per lowpan e.g. one on the left and one on the right edge, there are 2 compression contexts, one for each ::/64 net contructed from the EUI. Further isolation of lowpans would maybe happen over PAN IDs. What is the problem you are trying to solve? |
The 6LoWPAN is the 'backbone' network between units. Each unit consists of multiple boards, one being the radio box with participates in the 6LoWPAN network. The other nodes on that unit are connected to then radio box via Ethernet. So each unit gets their own subnet and since those subnets are reached over 6lo, I thought it fitting to also add compression contexts for them.
|
Contribution description
When
gnrc_ipv6_auto_subnets
announces the creation of a downstream subnet to the upstream router, if that router is a 6lbr, it might as well create a compression context for that network.To also inform the downstream router about this compression context, send another RA to the downstream router, containing only the 6ctx information (to avoid creating a packet ping-pong loop if it also contained a prefix information option).
Testing procedure
An instance of
examples/gnrc_border_router
and one ofexamples/gnrc_networking
with both ZEP and TAP enabled (I used two instances of the border router with #21081 to only enable the ABR functionality of one at run-time).start 6LBR on-demand
Downstream node receives the
fd12::/16
prefix and creates afd12:1284:c87:1fb7::/64
prefix from it, sends this to the upstream router. Upstream router creates a compression context and response with yet another RA that contains the updated list of compression contexts.6ctx
on both nodes shows the same information:Issues/PRs references