1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 06:23:53 +01:00

sixlowpan: Set U/L bit in short address to local.

This commit is contained in:
Joakim Gebart 2015-03-03 19:51:58 +01:00
parent 4520d31d3d
commit 2aa031e7c7
2 changed files with 5 additions and 3 deletions

View File

@ -895,10 +895,10 @@ uint8_t lowpan_iphc_encoding(int if_id, const uint8_t *dest, int dest_len,
if (!net_if_get_eui64(&own_iid, if_id, 0)) {
return 1;
}
own_iid.uint8[0] ^= 0x02;
}
own_iid.uint8[0] ^= 0x02;
ipv6_buf = ipv6_buf_extra;
memset(&lowpan_iphc, 0, 2);

View File

@ -54,7 +54,9 @@ static uint8_t macdsn;
static inline void mac_frame_short_to_eui64(net_if_eui64_t *eui64,
uint8_t *frame_short)
{
eui64->uint32[0] = HTONL(0x000000ff);
/* Since this is a short address, which is never globally unique, we set
* the local/universal bit to 1. */
eui64->uint32[0] = HTONL(0x020000ff);
eui64->uint16[2] = HTONS(0xfe00);
eui64->uint8[6] = frame_short[1];
eui64->uint8[7] = frame_short[0];