lowpan6.c: Fix IEEE 802.15.4 address setting

Reverts a regression introduced in
3a8af612b3b818a89de5846cc9b046756af184cc:

Use hardware address fetched from neighbor cache *not* the hardware
address of the interface as destination address.

Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
This commit is contained in:
Martine Lenders 2018-09-27 21:21:18 +02:00 committed by Simon Goldschmidt
parent a5c00e369d
commit a47d30ffc7

View File

@ -630,11 +630,11 @@ lowpan6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
}
/* Send out the packet using the returned hardware address. */
result = lowpan6_hwaddr_to_addr(netif, &dest);
if (result != ERR_OK) {
MIB2_STATS_NETIF_INC(netif, ifoutdiscards);
return result;
}
dest.addr_len = netif->hwaddr_len;
/* XXX: Inferring the length of the source address from the destination address
* is not correct for IEEE 802.15.4, but currently we don't get this information
* from the neighbor cache */
SMEMCPY(dest.addr, hwaddr, netif->hwaddr_len);
MIB2_STATS_NETIF_INC(netif, ifoutucastpkts);
return lowpan6_frag(netif, q, &src, &dest);
}