summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authoritojun <itojun@NetBSD.org>1999-09-08 00:50:15 +0000
committeritojun <itojun@NetBSD.org>1999-09-08 00:50:15 +0000
commita00c3d5ea1dea5232e24c482b2334c62bcc2ea3d (patch)
treed468e6018ed3225a19f2c8cc5c01ff924600b45e /sys
parent6913f83874286c9a93e009ce78fc3716f17457eb (diff)
fix u bit in interface identifier for ether and p2p-802 interfacde.
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet6/in6_ifattach.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c
index b1d9b0ddf3f..c4957910cb9 100644
--- a/sys/netinet6/in6_ifattach.c
+++ b/sys/netinet6/in6_ifattach.c
@@ -1,4 +1,4 @@
-/* $NetBSD: in6_ifattach.c,v 1.5 1999/09/05 01:57:10 itojun Exp $ */
+/* $NetBSD: in6_ifattach.c,v 1.6 1999/09/08 00:50:15 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -315,6 +315,8 @@ in6_ifattach(ifp, type, laddr, noloop)
if (laddr == NULL)
break;
ieee802_to_eui64(&ia->ia_addr.sin6_addr.s6_addr8[8], laddr);
+ /* invert u bit to convert EUI64 to RFC2373 interface ID. */
+ ia->ia_addr.sin6_addr.s6_addr8[8] ^= 0x02;
if (found_first_ifid == 0) {
if (in6_ifattach_getifid(ifp) == 0)
in6_ifattach_p2p();