xref: /csrg-svn/sys/net/route.h (revision 6332)
1*6332Ssam /*	route.h	4.1	82/03/27	*/
2*6332Ssam 
3*6332Ssam /*
4*6332Ssam  * Structure of kernel resident routing
5*6332Ssam  * data base.  Assumption is user routing
6*6332Ssam  * daemon maintains this data base based
7*6332Ssam  * on routing information it gleans from
8*6332Ssam  * gateway protocols it listens to (e.g. GGP).
9*6332Ssam  *
10*6332Ssam  * TO ADD:
11*6332Ssam  *	more statistics -- smooth usage figures
12*6332Ssam  */
13*6332Ssam struct rtentry {
14*6332Ssam 	u_long	rt_key;			/* lookup key */
15*6332Ssam 	struct	sockaddr rt_dst;	/* match value */
16*6332Ssam 	struct	sockaddr rt_gateway;	/* who to forward to */
17*6332Ssam 	short	rt_flags;		/* see below */
18*6332Ssam 	short	rt_refcnt;		/* # held references */
19*6332Ssam 	u_long	rt_use;			/* raw # packets forwarded */
20*6332Ssam 	struct	ifnet *rt_ifp;		/* interface to use */
21*6332Ssam };
22*6332Ssam 
23*6332Ssam struct route {
24*6332Ssam 	struct	rtentry *ro_rt;
25*6332Ssam 	struct	sockaddr ro_dst;
26*6332Ssam 	caddr_t	ro_pcb;			/* back pointer? */
27*6332Ssam };
28*6332Ssam 
29*6332Ssam /*
30*6332Ssam  * Flags and host/network status.
31*6332Ssam  */
32*6332Ssam #define	RTS_UP		0x1		/* route useable */
33*6332Ssam #define	RTF_MUNGE	0x2		/* munge packet src address */
34*6332Ssam 
35*6332Ssam #ifdef KERNEL
36*6332Ssam /*
37*6332Ssam  * Lookup are hashed by a key.  Each hash bucket
38*6332Ssam  * consists of a linked list of mbuf's
39*6332Ssam  * containing routing entries.  Dead entries are
40*6332Ssam  * reclaimed along with mbufs.
41*6332Ssam  */
42*6332Ssam #define	RTHASHSIZ	16
43*6332Ssam struct mbuf *routehash[RTHASHSIZ];
44*6332Ssam #endif
45