Skip to content

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

Merged
kb2ma merged 3 commits intoRIOT-OS:2019.10-branchfrom
miri64:backport/2019.10/tests/fix/gnrc_rpl_srh
Oct 14, 2019
Merged

tests/gnrc_rpl_srh: fix test assumption [backport 2019.10]#12443
kb2ma merged 3 commits intoRIOT-OS:2019.10-branchfrom
miri64:backport/2019.10/tests/fix/gnrc_rpl_srh

Conversation

@miri64
Copy link
Copy Markdown
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
Copy Markdown
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