summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/nd6.h
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2015-01-08 18:02:05 +0000
committermelifaro <melifaro@FreeBSD.org>2015-01-08 18:02:05 +0000
commitabec420f04cfc04d27c1e212da060f4ad48a07c8 (patch)
tree4aa36dabcf9127cae1a5ea7a3624e205913a0b2e /sys/netinet6/nd6.h
parent4b9397186833c1449b3030825f5204e501e73611 (diff)
downloadFreeBSD-src-abec420f04cfc04d27c1e212da060f4ad48a07c8.zip
FreeBSD-src-abec420f04cfc04d27c1e212da060f4ad48a07c8.tar.gz
* Use newly-created nd6_grab_holdchain() function to retrieve lle
hold mbuf chain instead of calling full-blown nd6_output_lle() for each packet. This simplifies both callers and nd6_output_lle() implementation. * Make nd6_output_lle() static and remove now-unused lle and chain arguments. * Rename nd6_output_flush() -> nd6_flush_holdchain() to be consistent. * Move all pre-send transmit hooks to newly-created nd6_output_ifp(). Now nd6_output(), nd6_output_lle() and nd6_flush_holdchain() are using it to send mbufs to if_output. * Remove SeND hook from nd6_na_input() because it was implemented incorrectly since the beginning (r211501): - it tagged initial input mbuf (m) instead of m_hold - tagging _all_ mbufs in holdchain seems to be wrong anyway.
Diffstat (limited to 'sys/netinet6/nd6.h')
-rw-r--r--sys/netinet6/nd6.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h
index 9253820..284fbfa 100644
--- a/sys/netinet6/nd6.h
+++ b/sys/netinet6/nd6.h
@@ -409,11 +409,10 @@ struct llentry *nd6_cache_lladdr(struct ifnet *, struct in6_addr *,
char *, int, int, int);
int nd6_output(struct ifnet *, struct ifnet *, struct mbuf *,
struct sockaddr_in6 *, struct rtentry *);
-int nd6_output_lle(struct ifnet *, struct ifnet *, struct mbuf *,
- struct sockaddr_in6 *, struct rtentry *, struct llentry *,
- struct mbuf **);
-int nd6_output_flush(struct ifnet *, struct ifnet *, struct mbuf *,
- struct sockaddr_in6 *);
+void nd6_grab_holdchain(struct llentry *, struct mbuf **,
+ struct sockaddr_in6 *);
+int nd6_flush_holdchain(struct ifnet *, struct ifnet *, struct mbuf *,
+ struct sockaddr_in6 *);
int nd6_need_cache(struct ifnet *);
int nd6_add_ifa_lle(struct in6_ifaddr *);
void nd6_rem_ifa_lle(struct in6_ifaddr *);
OpenPOWER on IntegriCloud