Author: qingli
Date: Sun Aug 30 02:07:23 2009
New Revision: 196649
URL: http://svn.freebsd.org/changeset/base/196649

Log:
  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

Modified:
  head/sys/netinet6/nd6_rtr.c

Modified: head/sys/netinet6/nd6_rtr.c
==============================================================================
--- head/sys/netinet6/nd6_rtr.c Sat Aug 29 21:53:08 2009        (r196648)
+++ head/sys/netinet6/nd6_rtr.c Sun Aug 30 02:07:23 2009        (r196649)
@@ -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) {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to