summaryrefslogtreecommitdiff
path: root/zebra/interface.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-06-12 07:59:12 -0700
committerDonald Sharp <sharpd@cumulusnetworks.com>2015-06-12 07:59:12 -0700
commiteb4b183040a2dba3c765ebd8a19c303fa48005ff (patch)
treeeb774abce0a36a262a0f8d7fca1e1d7a40ceeb86 /zebra/interface.c
parent433e8b67331f356926e122428c21d1df7eba9ab6 (diff)
ipv6_ll_address_to_mac() fails to correctly convert fe80::a8aa:aaff:feaa:aaf8 to AA:AA:AA:AA:AA:F8
Diffstat (limited to 'zebra/interface.c')
-rw-r--r--zebra/interface.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index cd9c21a61c..3d3ced3ff8 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -533,8 +533,7 @@ if_delete_update (struct interface *ifp)
void
ipv6_ll_address_to_mac (struct in6_addr *address, u_char *mac)
{
- mac[0] = address->s6_addr[8];
- mac[0] &= ~0x02;
+ mac[0] = address->s6_addr[8] ^ 0x02;
mac[1] = address->s6_addr[9];
mac[2] = address->s6_addr[10];
mac[3] = address->s6_addr[13];