aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet6/nd6.h
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2021-08-06 08:27:22 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2021-08-07 09:59:11 +0000
commit0b79b007ebfc250a8a7b928df268ada6f1c988c4 (patch)
tree5a0facf7f113c5654225fb64a8e3eac8ac7128bc /sys/netinet6/nd6.h
parent3676512b60d65ff68fb807ede2fa6e89af18c490 (diff)
downloadsrc-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.h1
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 *);