ND6: Set the correct state for new neighbor cache entries
Restore state 6. Many of the UNH tests end up exercising this state, where we have a new neighbor cache entry and a new link-layer entry is being created for it. The link-layer address is currently unknown so the initial state of the "llentry" should remain initialized to ND6_LLINFO_NOSTATE so that the ND code will send a solicitation. Setting this to ND6_LLINFO_STALE implies that the link-level entry is valid and can be used (but needs to be refreshed via the Neighbor Unreachability state machine). https://forums.freebsd.org/threads/64287/ Submitted by: Farrell Woods <Farrell_Woods@Dell.com> Reviewed by: mjoras, dab, ae MFC after: 1 week Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D14059
This commit is contained in:
parent
d282086dec
commit
f8116f391a
@ -2032,10 +2032,11 @@ nd6_cache_lladdr(struct ifnet *ifp, struct in6_addr *from, char *lladdr,
|
||||
if (ln_tmp == NULL) {
|
||||
/* No existing lle, mark as new entry (6,7) */
|
||||
is_newentry = 1;
|
||||
nd6_llinfo_setstate(ln, ND6_LLINFO_STALE);
|
||||
if (lladdr != NULL) /* (7) */
|
||||
if (lladdr != NULL) { /* (7) */
|
||||
nd6_llinfo_setstate(ln, ND6_LLINFO_STALE);
|
||||
EVENTHANDLER_INVOKE(lle_event, ln,
|
||||
LLENTRY_RESOLVED);
|
||||
}
|
||||
} else {
|
||||
lltable_free_entry(LLTABLE6(ifp), ln);
|
||||
ln = ln_tmp;
|
||||
|
Loading…
x
Reference in New Issue
Block a user