[riot-notifications] [RIOT-OS/RIOT] gnrc_ipv6_nib: get node from proper interface (#16548)

benpicco notifications at github.com
Mon Jun 14 17:02:58 CEST 2021

The RIOT community cares a lot about code quality.
Therefore, before describing what your contribution is about, we would like
you to make sure that your modifications are compliant with the RIOT
coding conventions, see https://github.com/RIOT-OS/RIOT/wiki/Coding-conventions.

### Contribution description

If we switch the interface in `gnrc_ipv6_nib_get_next_hop_l2addr()` we must also re-get the nib entry from the 'proper' interface.
Otherwise we will always find the host unreachable on the 'wrong' interface.

### Testing procedure

You need a node with two interfaces of type `Ethernet` with both of them having a global address configured.
Now send a ping request to the global address of the second interface by a host connected to the first interface.

On `master` only the first request is answered and any subsequent communication to that host fails from the downstream interface address. Instead, the node will send a neighbor solicitation even though the host is already in the neighbor cache.

With this patch, the pings are answered as expected. 

### Issues/PRs references

fixes #16547

You can view, comment on, or merge this pull request online at:


-- Commit Summary --

  * gnrc_ipv6_nib: get node from proper interface

-- File Changes --

    M sys/net/gnrc/network_layer/ipv6/nib/nib.c (4)

-- Patch Links --


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210614/3dbae764/attachment-0001.htm>

More information about the notifications mailing list