gnrc_ipv6: only discard invalid source when assigned to interface [backport 2019.10] #12458
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.
Backport of #12442
Contribution description
While it is correct to not use an invalid address as a source address, it is incorrect to assume that addresses not assigned to the interface (
idx == -1
in the respective piece of code) are invalid: Other than classic forwarding via a FIB, forwarded packets utilizing a IPv6 routing header will pass this check, like any other packet sent by this node. The source address for these is not on the given node, so e.g. source routing is not possible at the moment.Testing procedure
Testing procedures from #11970 should still work (was unable to test this atm due to lacking hardware).
With #12440 merged
tests/gnrc_rpl_srh
passes (requiresdist/tools/tapsetup/tapsetup
to be called before and also must be called withsudo
).Issues/PRs references
Follow-up to #11970
Fixes parts of #12436
Accompanies #12440