Skip to content
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

tests/gnrc_rpl_srh: fix test assumption [backport 2019.10] #12443

Merged

Conversation

miri64
Copy link
Member

@miri64 miri64 commented Oct 14, 2019

Backport of #12440

Contribution description

If the destination address or an address within the source route is multicast within a RPL source routing header, a receiving node is supposed to just discard the packets, but not to send an ICMPv6 error message, as the test assumes at the moment.

Source: https://tools.ietf.org/html/rfc6554#section-4.2

There is also a fix that prevents the implementation from sending such an error message: If we leave the err_ptr unset in these cases, the node will not send an error message.

Testing procedure

Read the algorithm provided above, especially the section regarding multicast:

     if Address[i] or the IPv6 Destination Address is multicast {
        discard the packet
     }

The test cases that check multicast addresses in tests/gnrc_rpl_srh should now pass (the test in general does not pass completely (but will, when #12442 is cherry-picked).

Issues/PRs references

Fixes one of the issues in #12436
Accompanies #12442

If the destination address or an address within the source route is
multicast within a RPL source routing header, a receiving node is
supposed to just discard the packets, but not to send an ICMPv6 error
message, as the test assumes at the moment.

Source: https://tools.ietf.org/html/rfc6554#section-4.2
(cherry picked from commit ee2126a)
A node is not supposed to send an ICMPv6 error message when the
destination or one of the addresses in the source route is multicast
but is supposed to be silently discarded (see [RFC4443] and [RFC6554]).
If we leave the `err_ptr` unset, the [node will not send an error
message][err_ptr set].

[RFC 4443]: https://tools.ietf.org/html/rfc4443#section-2.4
[RFC 6554]: https://tools.ietf.org/html/rfc6554#section-4.2
[err_ptr set]: https://github.com/RIOT-OS/RIOT/blob/9bc600a/sys/net/gnrc/network_layer/ipv6/ext/rh/gnrc_ipv6_ext_rh.c#L100-L105

(cherry picked from commit a279228)
@miri64 miri64 added Area: network Area: Networking 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 Process: release backport Integration Process: The PR is a release backport of a change previously provided to master Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) labels Oct 14, 2019
@miri64 miri64 requested a review from cgundogan October 14, 2019 12:44
@miri64 miri64 requested a review from kb2ma October 14, 2019 12:45
Copy link
Member

@kb2ma kb2ma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git range-diffshows commits identical, and the tests fail in the same way.

@kb2ma kb2ma merged commit 1a1550a into RIOT-OS:2019.10-branch Oct 14, 2019
@miri64 miri64 deleted the backport/2019.10/tests/fix/gnrc_rpl_srh branch March 4, 2020 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: network Area: Networking 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 Process: release backport Integration Process: The PR is a release backport of a change previously provided to master Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants