summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2011-09-20 20:27:26 +0000
committerkmacy <kmacy@FreeBSD.org>2011-09-20 20:27:26 +0000
commite3079e135045be785504016388812896091a9cb5 (patch)
tree625945282c78f76f0d1956e9853e19ab3d215dc3 /sys
parent8139b983c9eac1660886071f4eac6efe6df8a8ec (diff)
downloadFreeBSD-src-e3079e135045be785504016388812896091a9cb5.zip
FreeBSD-src-e3079e135045be785504016388812896091a9cb5.tar.gz
Make KBI changes required for future MFCing of inpcb rtentry / llentry caching.
Reviewed by: rwatson, bz Approved by: re (kib)
Diffstat (limited to 'sys')
-rw-r--r--sys/net/if_llatbl.h1
-rw-r--r--sys/net/radix.h4
-rw-r--r--sys/net/route.h4
-rw-r--r--sys/netinet6/in6.h2
4 files changed, 9 insertions, 2 deletions
diff --git a/sys/net/if_llatbl.h b/sys/net/if_llatbl.h
index 4b18353..2ae2792 100644
--- a/sys/net/if_llatbl.h
+++ b/sys/net/if_llatbl.h
@@ -59,6 +59,7 @@ struct llentry {
struct rwlock lle_lock;
struct lltable *lle_tbl;
struct llentries *lle_head;
+ void (*lle_free)(struct lltable *, struct llentry *);
struct mbuf *la_hold;
int la_numheld; /* # of packets currently held */
time_t la_expire;
diff --git a/sys/net/radix.h b/sys/net/radix.h
index 0dc11e9..5bacaa3 100644
--- a/sys/net/radix.h
+++ b/sys/net/radix.h
@@ -105,6 +105,8 @@ typedef int walktree_f_t(struct radix_node *, void *);
struct radix_node_head {
struct radix_node *rnh_treetop;
+ u_int rnh_gen; /* generation counter */
+ int rnh_multipath; /* multipath capable ? */
int rnh_addrsize; /* permit, but not require fixed keys */
int rnh_pktsize; /* permit, but not require fixed keys */
struct radix_node *(*rnh_addaddr) /* add based on sockaddr */
@@ -131,8 +133,6 @@ struct radix_node_head {
void (*rnh_close) /* do something when the last ref drops */
(struct radix_node *rn, struct radix_node_head *head);
struct radix_node rnh_nodes[3]; /* empty tree for common case */
- int rnh_multipath; /* multipath capable ? */
- u_int rnh_spare; /* route caching */
#ifdef _KERNEL
struct rwlock rnh_lock; /* locks entire radix tree */
#endif
diff --git a/sys/net/route.h b/sys/net/route.h
index 0bc72d7..533ee13 100644
--- a/sys/net/route.h
+++ b/sys/net/route.h
@@ -49,9 +49,13 @@
struct route {
struct rtentry *ro_rt;
struct llentry *ro_lle;
+ struct in_ifaddr *ro_ia;
+ int ro_flags;
struct sockaddr ro_dst;
};
+#define RT_CACHING_CONTEXT 0x1
+
/*
* These numbers are used by reliable protocols for determining
* retransmission behavior and are included in the routing structure.
diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h
index 1040d90..2f986d4 100644
--- a/sys/netinet6/in6.h
+++ b/sys/netinet6/in6.h
@@ -376,6 +376,8 @@ extern const struct in6_addr in6addr_linklocal_allv2routers;
struct route_in6 {
struct rtentry *ro_rt;
struct llentry *ro_lle;
+ struct in6_addr *ro_ia6;
+ int ro_flags;
struct sockaddr_in6 ro_dst;
};
#endif
OpenPOWER on IntegriCloud