summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/nd6_rtr.c
diff options
context:
space:
mode:
authorqingli <qingli@FreeBSD.org>2009-08-30 22:44:12 +0000
committerqingli <qingli@FreeBSD.org>2009-08-30 22:44:12 +0000
commit03992801751a9deac75775ee6bba759357253ed4 (patch)
treeda437b192e04f1f3d6925ac3387712518dc8008c /sys/netinet6/nd6_rtr.c
parent75742e2e29a5c078aa1deded799f45b9bb50d21a (diff)
downloadFreeBSD-src-03992801751a9deac75775ee6bba759357253ed4.zip
FreeBSD-src-03992801751a9deac75775ee6bba759357253ed4.tar.gz
MFC r196649
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 Approved by: re
Diffstat (limited to 'sys/netinet6/nd6_rtr.c')
-rw-r--r--sys/netinet6/nd6_rtr.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c
index 9d1f0d6..4ec64fb 100644
--- a/sys/netinet6/nd6_rtr.c
+++ b/sys/netinet6/nd6_rtr.c
@@ -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) {
OpenPOWER on IntegriCloud