gnrc_ipv6: get l2addr from NC if no ND present
This commit is contained in:
parent
4ad2689144
commit
c7ebcbbda2
@ -537,6 +537,15 @@ static inline kernel_pid_t _next_hop_l2addr(uint8_t *l2addr, uint8_t *l2addr_len
|
||||
#endif
|
||||
#if defined(MODULE_GNRC_NDP_NODE)
|
||||
found_iface = gnrc_ndp_node_next_hop_l2addr(l2addr, l2addr_len, iface, dst, pkt);
|
||||
#elif !defined(MODULE_GNRC_SIXLOWPAN_ND) && defined(MODULE_GNRC_IPV6_NC)
|
||||
(void)pkt;
|
||||
gnrc_ipv6_nc_t *nc = gnrc_ipv6_nc_get(iface, dst);
|
||||
if ((nc == NULL) || !gnrc_ipv6_nc_is_reachable(nc)) {
|
||||
return KERNEL_PID_UNDEF;
|
||||
}
|
||||
found_iface = nc->iface;
|
||||
*l2addr_len = nc->l2_addr_len;
|
||||
memcpy(l2addr, nc->l2_addr, nc->l2_addr_len);
|
||||
#elif !defined(MODULE_GNRC_SIXLOWPAN_ND)
|
||||
found_iface = KERNEL_PID_UNDEF;
|
||||
(void)l2addr;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user