summaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org>2013-01-28 10:44:29 +0000
committerDavid S. Miller <davem@davemloft.net>2013-01-29 15:43:04 -0500
commit5e98a36ed4bf6ea396170e3af0dd4fcbe51d772f (patch)
tree948287c0f2960b75f477bc22fe628324b3709add /net/ipv6
parent00d3d51e9d8c983e237236a41863d138b7f77ff6 (diff)
downloadlinux-5e98a36ed4bf6ea396170e3af0dd4fcbe51d772f.tar.gz
linux-5e98a36ed4bf6ea396170e3af0dd4fcbe51d772f.tar.bz2
linux-5e98a36ed4bf6ea396170e3af0dd4fcbe51d772f.zip
ipv6 addrconf: Fix interface identifiers of 802.15.4 devices.
The "Universal/Local" (U/L) bit must be complmented according to RFC4944 and RFC2464. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/addrconf.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 420e56326384..1b5d8cb9b123 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1660,6 +1660,7 @@ static int addrconf_ifid_eui64(u8 *eui, struct net_device *dev)
if (dev->addr_len != IEEE802154_ADDR_LEN)
return -1;
memcpy(eui, dev->dev_addr, 8);
+ eui[0] ^= 2;
return 0;
}