svn commit: r252141 - head/sys/netinet6
Qing Li
qingli at FreeBSD.org
Mon Jun 24 05:01:13 UTC 2013
Author: qingli
Date: Mon Jun 24 05:01:13 2013
New Revision: 252141
URL: http://svnweb.freebsd.org/changeset/base/252141
Log:
Delete the nd6 entries associated with an off-link prefix
if the same prefix cannot be found on an alternative
interface.
Reviewed by: hrs
MFC after: 1 week
Modified:
head/sys/netinet6/nd6_rtr.c
Modified: head/sys/netinet6/nd6_rtr.c
==============================================================================
--- head/sys/netinet6/nd6_rtr.c Mon Jun 24 05:00:31 2013 (r252140)
+++ head/sys/netinet6/nd6_rtr.c Mon Jun 24 05:01:13 2013 (r252141)
@@ -1720,6 +1720,7 @@ nd6_prefix_offlink(struct nd_prefix *pr)
}
}
error = a_failure;
+ a_failure = 1;
if (error == 0) {
pr->ndpr_stateflags &= ~NDPRF_ONLINK;
@@ -1758,7 +1759,8 @@ nd6_prefix_offlink(struct nd_prefix *pr)
&opr->ndpr_prefix.sin6_addr),
opr->ndpr_plen, if_name(ifp),
if_name(opr->ndpr_ifp), e));
- }
+ } else
+ a_failure = 0;
}
}
} else {
@@ -1770,6 +1772,10 @@ nd6_prefix_offlink(struct nd_prefix *pr)
if_name(ifp), error));
}
+ if (a_failure)
+ lltable_prefix_free(AF_INET6, (struct sockaddr *)&sa6,
+ (struct sockaddr *)&mask6, LLE_STATIC);
+
return (error);
}
More information about the svn-src-all
mailing list