diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2021-08-06 08:27:22 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2021-08-07 09:59:11 +0000 |
commit | 0b79b007ebfc250a8a7b928df268ada6f1c988c4 (patch) | |
tree | 5a0facf7f113c5654225fb64a8e3eac8ac7128bc /sys/netinet6/nd6.h | |
parent | 3676512b60d65ff68fb807ede2fa6e89af18c490 (diff) | |
download | src-0b79b007ebfc250a8a7b928df268ada6f1c988c4.tar.gz src-0b79b007ebfc250a8a7b928df268ada6f1c988c4.zip |
[lltable] Restructure nd6 code.
Factor out lltable locking logic from lltable_try_set_entry_addr()
into a separate lltable_acquire_wlock(), so the latter can be used
in other parts of the code w/o duplication.
Create nd6_try_set_entry_addr() to avoid code duplication in nd6.c
and nd6_nbr.c.
Move lle creation logic from nd6_resolve_slow() into a separate
nd6_get_llentry() to simplify the former.
These changes serve as a pre-requisite for implementing
RFC8950 (IPv4 prefixes with IPv6 nexthops).
Differential Revision: https://reviews.freebsd.org/D31432
MFC after: 2 weeks
Diffstat (limited to 'sys/netinet6/nd6.h')
-rw-r--r-- | sys/netinet6/nd6.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h index ee53acce840a..fe0f2b22cc48 100644 --- a/sys/netinet6/nd6.h +++ b/sys/netinet6/nd6.h @@ -376,6 +376,7 @@ int nd6_resolve(struct ifnet *, int, struct mbuf *, int nd6_ioctl(u_long, caddr_t, struct ifnet *); void nd6_cache_lladdr(struct ifnet *, struct in6_addr *, char *, int, int, int); +bool nd6_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle, char *lladdr); struct mbuf *nd6_grab_holdchain(struct llentry *); int nd6_flush_holdchain(struct ifnet *, struct llentry *, struct mbuf *); int nd6_add_ifa_lle(struct in6_ifaddr *); |