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