-
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: Store all SLAAC prefixes #20757
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github-actions
bot
added
Area: network
Area: Networking
Area: tests
Area: tests and testing framework
Area: sys
Area: System
labels
Jun 21, 2024
benpicco
added
the
CI: ready for build
If set, CI server will compile all applications for all available boards for the labeled PR
label
Jul 4, 2024
benpicco
added
the
Type: bug
The issue reports a bug / The PR fixes a bug (including spelling errors)
label
Jul 26, 2024
benpicco
reviewed
Jul 26, 2024
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.
The explanation makes sense - do we still need the check for _multihop_p6c()
then?
Incl. off-link ones, since lifetimes for the autoconfigured addresses are managed by the prefix entry.
benpicco
approved these changes
Jul 29, 2024
This was referenced Aug 26, 2024
xnumad
added a commit
to xnumad/RIOT
that referenced
this pull request
Oct 17, 2024
Increases readability Was previously also needed to enable regen to work on 6LN, because a 6LN did not store SLAAC prefix prior to PR RIOT-OS#20757.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area: network
Area: Networking
Area: sys
Area: System
Area: tests
Area: tests and testing framework
CI: ready for build
If set, CI server will compile all applications for all available boards for the labeled PR
Type: bug
The issue reports a bug / The PR fixes a bug (including spelling errors)
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contribution description
In GNRC's architecture, lifetimes are associated with prefixes (and not to any addresses themselves). The prefixes from a PIO are stored in the prefix list. Even if a prefix is not on-link, it needs to be stored in the prefix list if the A flag (SLAAC) is set, so that auto configured addresses in the prefix have their lifetimes managed. Otherwise these addresses would remain configured possibly longer than what the prefix lifetimes were set for.
This PR stores the prefix in the prefix list as soon as / whenever the A flag is set. The test is modified accordingly.
Background: Generally, by RFC definition (https://datatracker.ietf.org/doc/html/rfc4861#section-5.1) the prefix list only contains on-link prefixes, but in GNRC, this is determined for a prefix list entry by the
_PFX_ON_LINK
flag.Testing procedure
Receive a RA PIO with A flag but not L flag (e.g. 6LN host). Observe how autoconfigured addresses will not be deprecated and invalidated/removed when preferred resp. valid lifetime expire, since this prefix information is never stored anywhere.