summaryrefslogtreecommitdiffstats
path: root/sys/net
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/net
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/net')
-rw-r--r--sys/net/if_llatbl.h1
-rw-r--r--sys/net/radix.h4
-rw-r--r--sys/net/route.h4
3 files changed, 7 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.
OpenPOWER on IntegriCloud