svn commit: r225698 - in head/sys: net netinet6

Kip Macy kmacy at FreeBSD.org
Tue Sep 20 20:27:26 UTC 2011


Author: kmacy
Date: Tue Sep 20 20:27:26 2011
New Revision: 225698
URL: http://svn.freebsd.org/changeset/base/225698

Log:
  Make KBI changes required for future MFCing of inpcb rtentry / llentry caching.
  
  Reviewed by:	rwatson, bz
  Approved by:	re (kib)

Modified:
  head/sys/net/if_llatbl.h
  head/sys/net/radix.h
  head/sys/net/route.h
  head/sys/netinet6/in6.h

Modified: head/sys/net/if_llatbl.h
==============================================================================
--- head/sys/net/if_llatbl.h	Tue Sep 20 19:07:56 2011	(r225697)
+++ head/sys/net/if_llatbl.h	Tue Sep 20 20:27:26 2011	(r225698)
@@ -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;

Modified: head/sys/net/radix.h
==============================================================================
--- head/sys/net/radix.h	Tue Sep 20 19:07:56 2011	(r225697)
+++ head/sys/net/radix.h	Tue Sep 20 20:27:26 2011	(r225698)
@@ -105,6 +105,8 @@ typedef int walktree_f_t(struct radix_no
 
 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

Modified: head/sys/net/route.h
==============================================================================
--- head/sys/net/route.h	Tue Sep 20 19:07:56 2011	(r225697)
+++ head/sys/net/route.h	Tue Sep 20 20:27:26 2011	(r225698)
@@ -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.

Modified: head/sys/netinet6/in6.h
==============================================================================
--- head/sys/netinet6/in6.h	Tue Sep 20 19:07:56 2011	(r225697)
+++ head/sys/netinet6/in6.h	Tue Sep 20 20:27:26 2011	(r225698)
@@ -376,6 +376,8 @@ extern const struct in6_addr in6addr_lin
 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


More information about the svn-src-all mailing list