Prefix on-link verification is being performed on statically

configured prefixes. Since these statically configured prefixes
do not have any associated advertising routers, these prefixes
are treated as unreachable and those prefix routes are deleted
from the routing table. Therefore bypass prefixes that are not
learned from router advertisements during prefix on-link check.

Reviewed by:	hrs
This commit is contained in:
Qing Li 2009-08-30 02:07:23 +00:00
parent f25fa6abb2
commit 42cb3aa492
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=196649

View File

@ -1415,6 +1415,9 @@ pfxlist_onlink_check()
if (pr->ndpr_raf_onlink == 0)
continue;
if (pr->ndpr_raf_auto == 0)
continue;
if ((pr->ndpr_stateflags & NDPRF_DETACHED) == 0 &&
find_pfxlist_reachable_router(pr) == NULL)
pr->ndpr_stateflags |= NDPRF_DETACHED;
@ -1431,6 +1434,9 @@ pfxlist_onlink_check()
if (pr->ndpr_raf_onlink == 0)
continue;
if (pr->ndpr_raf_auto == 0)
continue;
if ((pr->ndpr_stateflags & NDPRF_DETACHED) != 0)
pr->ndpr_stateflags &= ~NDPRF_DETACHED;
}
@ -1454,6 +1460,9 @@ pfxlist_onlink_check()
if (pr->ndpr_raf_onlink == 0)
continue;
if (pr->ndpr_raf_auto == 0)
continue;
if ((pr->ndpr_stateflags & NDPRF_DETACHED) != 0 &&
(pr->ndpr_stateflags & NDPRF_ONLINK) != 0) {
if ((e = nd6_prefix_offlink(pr)) != 0) {