Date: Mon, 24 Jun 2013 05:01:13 +0000 (UTC) From: Qing Li <qingli@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r252141 - head/sys/netinet6 Message-ID: <201306240501.r5O51DWS037062@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306240501.r5O51DWS037062>