gnrc_ipv6_nib: get node from proper interface

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.
This commit is contained in:
Benjamin Valentin 2021-06-14 16:56:15 +02:00
parent 13eb3f05c5
commit ae4165b374

View File

@ -228,6 +228,10 @@ int gnrc_ipv6_nib_get_next_hop_l2addr(const ipv6_addr_t *dst,
/* release pre-assumed netif */
gnrc_netif_release(netif);
netif = _acquire_new_iface(iface);
/* get node from proper interface */
if (netif != NULL) {
node = _nib_onl_get(dst, netif->pid);
}
}
if ((netif == NULL) ||
!_resolve_addr(dst, netif, pkt, nce, node)) {