-
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: disable router advertisements on interface startup #19920
Conversation
Router Advertisements are enabled automatically for routing nodes as soon as they obtain a prefix (e.g. via DHCPv6, UHCP, …). Enabling router advertisements without a prefix to advertise is wrong and causes no router solicitations to be send on an upstream interface. Also from https://www.rfc-editor.org/rfc/rfc4861#section-6.2.1 Note that AdvSendAdvertisements MUST be FALSE by default so that a node will not accidentally start acting as a router unless it is explicitly configured by system management to send Router Advertisements.
How is the RTR_ADV flag set now? When the interface has |
If a prefix is added manually with |
So not when a prefix is configured by a router advertisement? How will downstream nodes (e.g. in a RPL) have this flag set now? |
RPL might be a bad example, since it has its own prefix delegation mechanism, but the question stands: will a downstream router set this flag, once it obtains a prefix from upstream? |
What good does it do if a downstream router sets this flag if it has no way to route the packets? (Ok, upstream routes will always work, but how will e.g. the border router know it has to route a packet to the downstream router via the next hop router?) |
That's what a routing protocol is for. But if it is not enabled for a router, the current state seems to be broken. This should be fixed, before this PR introduces that regression. |
But then IMHO it should still only be enabled if that routing protocol (which one? we only have RPL) is active. Having routers send router advertisements for prefixes that they can't route just leads to chaos. |
with prefixes, not for ;-). The question is: Shouldn't let the routing protocol leave such a central functionality. This may well lead to technical debt with contributors wondering why routers don't advertise themselves as routers. Also: We still don't have RPL routers that advertise themselves as routers, if I understand your previous statement correctly. |
Ok so RPL still needs |
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.
ACK, but only if you handle the tickets that will inevitably come from routing protocol implementors/users ;-P
If there is some external user implementing an out-of-tree routing protocol, they can just call |
Might be a bit clunky if it is a UDP-based routing protocol on top of |
bors merge |
Build failed: |
bors merge |
Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
Looks like my confusion is not completely unwarranted:
So when we distribute the prefix via RPL message, we wouldn't need to do multihop prefix distribution. And while compression contexts sure would be helpful on the RPL side (DAO contains a list of full 128 bit IPv6 addresses), the only reference I found is an expired draft - or did I miss something there? But I suppose that means we should just set |
Contribution description
Router Advertisements are enabled automatically for routing nodes as soon as they obtain a prefix (e.g. via DHCPv6, UHCP, …).
Enabling router advertisements without a prefix to advertise is wrong and causes no router solicitations to be send on an upstream interface.
Also from https://www.rfc-editor.org/rfc/rfc4861#section-6.2.1
Testing procedure
examples/gnrc_networking
does now instantly obtain an address on a network with an upstream router.examples/gnrc_border_router
had this disabled already because an automatic prefix configuration method was used.tests/net/gnrc_rpl
shows that RPL operation is not affected.Issues/PRs references