summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2011-06-06 04:12:57 +0000
committerhrs <hrs@FreeBSD.org>2011-06-06 04:12:57 +0000
commit0ae2d5f6c6887d49bd007ffeefd37ad2299dba74 (patch)
tree4da62aee662f64c55c64d1b9c4cd430fca8144b6 /sys/netinet6
parent9c9abb47360b4acc3f7c54ac33eef70f41c40e87 (diff)
downloadFreeBSD-src-0ae2d5f6c6887d49bd007ffeefd37ad2299dba74.zip
FreeBSD-src-0ae2d5f6c6887d49bd007ffeefd37ad2299dba74.tar.gz
Do not activate automatic LL addr configuration when 0/1->1 transition of
ND6_IFF_IFDISABLED flag.
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/nd6.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 231ce94..2b51e43 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -1327,6 +1327,7 @@ nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp)
* accept_rtadv or auto_linklocal.
*/
if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) &&
+ !(ND.flags & ND6_IFF_IFDISABLED) &&
(ND.flags & (ND6_IFF_ACCEPT_RTADV |
ND6_IFF_AUTO_LINKLOCAL)))
ND.flags &= ~ND6_IFF_IFDISABLED;
@@ -1388,7 +1389,8 @@ nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp)
/* If no link-local address on ifp, configure */
ND_IFINFO(ifp)->flags |= ND6_IFF_AUTO_LINKLOCAL;
in6_ifattach(ifp, NULL);
- } else if (ND_IFINFO(ifp)->flags & ND6_IFF_AUTO_LINKLOCAL) {
+ } else if ((ND_IFINFO(ifp)->flags & ND6_IFF_AUTO_LINKLOCAL) &&
+ !(ND.flags & ND6_IFF_IFDISABLED)) {
/*
* When the IF already has
* ND6_IFF_AUTO_LINKLOCAL and no link-local
OpenPOWER on IntegriCloud