Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet6/nd6.c
| Show First 20 Lines • Show All 2,026 Lines • ▼ Show 20 Lines | if (ln == NULL) { | ||||
| /* Prefer any existing lle over newly-created one */ | /* Prefer any existing lle over newly-created one */ | ||||
| ln_tmp = nd6_lookup(from, LLE_EXCLUSIVE, ifp); | ln_tmp = nd6_lookup(from, LLE_EXCLUSIVE, ifp); | ||||
| if (ln_tmp == NULL) | if (ln_tmp == NULL) | ||||
| lltable_link_entry(LLTABLE6(ifp), ln); | lltable_link_entry(LLTABLE6(ifp), ln); | ||||
| IF_AFDATA_WUNLOCK(ifp); | IF_AFDATA_WUNLOCK(ifp); | ||||
| if (ln_tmp == NULL) { | if (ln_tmp == NULL) { | ||||
| /* No existing lle, mark as new entry (6,7) */ | /* No existing lle, mark as new entry (6,7) */ | ||||
| is_newentry = 1; | is_newentry = 1; | ||||
| if (lladdr != NULL) { /* (7) */ | |||||
| nd6_llinfo_setstate(ln, ND6_LLINFO_STALE); | nd6_llinfo_setstate(ln, ND6_LLINFO_STALE); | ||||
| if (lladdr != NULL) /* (7) */ | |||||
| EVENTHANDLER_INVOKE(lle_event, ln, | EVENTHANDLER_INVOKE(lle_event, ln, | ||||
| LLENTRY_RESOLVED); | LLENTRY_RESOLVED); | ||||
| } | |||||
| } else { | } else { | ||||
| lltable_free_entry(LLTABLE6(ifp), ln); | lltable_free_entry(LLTABLE6(ifp), ln); | ||||
| ln = ln_tmp; | ln = ln_tmp; | ||||
| ln_tmp = NULL; | ln_tmp = NULL; | ||||
| } | } | ||||
| } | } | ||||
| /* do nothing if static ndp is set */ | /* do nothing if static ndp is set */ | ||||
| if ((ln->la_flags & LLE_STATIC)) { | if ((ln->la_flags & LLE_STATIC)) { | ||||
| ▲ Show 20 Lines • Show All 714 Lines • Show Last 20 Lines | |||||