Author: melifaro
Date: Mon Sep 21 10:24:34 2015
New Revision: 288060
URL: https://svnweb.freebsd.org/changeset/base/288060

Log:
  Add "stale" timer back to nd6_cache_lladdr().
  Setting timer was accidentally removed in r276844 due to misleading
    comment on its meaningless. Add it back to restore proper behaviour.

Modified:
  head/sys/netinet6/nd6.c

Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c     Mon Sep 21 09:37:49 2015        (r288059)
+++ head/sys/netinet6/nd6.c     Mon Sep 21 10:24:34 2015        (r288060)
@@ -1729,7 +1729,6 @@ nd6_cache_lladdr(struct ifnet *ifp, stru
                if (lladdr != NULL) {
                        bcopy(lladdr, &ln->ll_addr, ifp->if_addrlen);
                        ln->la_flags |= LLE_VALID;
-                       ln->ln_state = ND6_LLINFO_STALE;
                }
                IF_AFDATA_WLOCK(ifp);
                LLE_WLOCK(ln);
@@ -1738,10 +1737,12 @@ nd6_cache_lladdr(struct ifnet *ifp, stru
                if (ln_tmp == NULL)
                        lltable_link_entry(LLTABLE6(ifp), ln);
                IF_AFDATA_WUNLOCK(ifp);
-               if (ln_tmp == NULL)
+               if (ln_tmp == NULL) {
                        /* No existing lle, mark as new entry */
                        is_newentry = 1;
-               else {
+                       ln->ln_state = ND6_LLINFO_STALE;
+                       nd6_llinfo_settimer_locked(ln, (long)V_nd6_gctimer * 
hz);
+               } else {
                        lltable_free_entry(LLTABLE6(ifp), ln);
                        ln = ln_tmp;
                        ln_tmp = NULL;
@@ -1788,6 +1789,7 @@ nd6_cache_lladdr(struct ifnet *ifp, stru
                bcopy(lladdr, &ln->ll_addr, ifp->if_addrlen);
                ln->la_flags |= LLE_VALID;
                ln->ln_state = ND6_LLINFO_STALE;
+               nd6_llinfo_settimer_locked(ln, (long)V_nd6_gctimer * hz);
 
                EVENTHANDLER_INVOKE(lle_event, ln, LLENTRY_RESOLVED);
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to