From d6242360daaf5670b9483419ae463e4678de587c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cenk=20G=C3=BCndo=C4=9Fan?= Date: Mon, 2 Mar 2015 18:02:01 +0100 Subject: [PATCH] net_if: proper u/l-bit inversion for short addresses --- sys/net/link_layer/net_if/net_if.c | 15 +-------------- sys/net/network_layer/sixlowpan/ip.c | 8 -------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/sys/net/link_layer/net_if/net_if.c b/sys/net/link_layer/net_if/net_if.c index a1788f395a..1f1cdd8207 100644 --- a/sys/net/link_layer/net_if/net_if.c +++ b/sys/net/link_layer/net_if/net_if.c @@ -433,20 +433,7 @@ int net_if_get_eui64(net_if_eui64_t *eui64, int if_id, int force_generation) * the local/universal bit to 1. */ eui64->uint32[0] = HTONL(0x020000ff); eui64->uint16[2] = HTONS(0xfe00); - - if (sizeof(hwaddr) == 2) { - eui64->uint16[3] = HTONS(hwaddr); - } - else if (sizeof(hwaddr) == 1) { - eui64->uint8[6] = 0; - eui64->uint8[7] = (uint8_t)hwaddr; - } - else { - DEBUG("Error on EUI-64 generation: do not know what to do with " - "hardware address of length %d\n", sizeof(hwaddr)); - return 0; - } - + eui64->uint16[3] = HTONS(hwaddr); } return 1; diff --git a/sys/net/network_layer/sixlowpan/ip.c b/sys/net/network_layer/sixlowpan/ip.c index 7372042c3c..9cffd83961 100644 --- a/sys/net/network_layer/sixlowpan/ip.c +++ b/sys/net/network_layer/sixlowpan/ip.c @@ -690,15 +690,7 @@ ipv6_addr_t *ipv6_addr_set_by_eui64(ipv6_addr_t *out, int if_id, if (net_if_get_eui64((net_if_eui64_t *) &out->uint8[8], if_id, force_generation)) { -#ifdef MODULE_SIXLOWPAN - - if (!sixlowpan_lowpan_eui64_to_short_addr((net_if_eui64_t *)&out->uint8[8])) { - out->uint8[8] ^= 0x02; - } - -#else out->uint8[8] ^= 0x02; -#endif return out; } else {