xref: /csrg-svn/sbin/XNSrouted/protocol.h (revision 24311)
1*24311Ssklower /*	protocol.h	1.0 4/12/85 */
2*24311Ssklower /*
3*24311Ssklower  * Xerox Routing Information Protocol
4*24311Ssklower  *
5*24311Ssklower  */
6*24311Ssklower 
7*24311Ssklower struct netinfo {
8*24311Ssklower 	u_short  rip_dst[2];		/* destination net */
9*24311Ssklower 	u_short	rip_metric;		/* cost of route */
10*24311Ssklower };
11*24311Ssklower 
12*24311Ssklower struct rip {
13*24311Ssklower 	u_short	rip_cmd;		/* request/response */
14*24311Ssklower 	struct netinfo rip_nets[1];	/* variable length */
15*24311Ssklower };
16*24311Ssklower 
17*24311Ssklower /*
18*24311Ssklower  * Packet types.
19*24311Ssklower  */
20*24311Ssklower #define	RIPCMD_REQUEST		1	/* want info */
21*24311Ssklower #define	RIPCMD_RESPONSE		2	/* responding to request */
22*24311Ssklower 
23*24311Ssklower #define	RIPCMD_MAX		3
24*24311Ssklower #ifdef RIPCMDS
25*24311Ssklower char *ripcmds[RIPCMD_MAX] =
26*24311Ssklower   { "#0", "REQUEST", "RESPONSE" };
27*24311Ssklower #endif
28*24311Ssklower 
29*24311Ssklower #define	HOPCNT_INFINITY		16		/* per Xerox NS */
30*24311Ssklower #define 	DSTNETS_ALL		0xffffffff	/* per Xerox NS */
31*24311Ssklower #define	MAXPACKETSIZE		512		/* max broadcast size */
32*24311Ssklower 
33*24311Ssklower /*
34*24311Ssklower  * Timer values used in managing the routing table.
35*24311Ssklower  * Every update forces an entry's timer to be reset.  After
36*24311Ssklower  * EXPIRE_TIME without updates, the entry is marked invalid,
37*24311Ssklower  * but held onto until GARBAGE_TIME so that others may
38*24311Ssklower  * see it "be deleted".
39*24311Ssklower  */
40*24311Ssklower #define	TIMER_RATE		30	/* alarm clocks every 30 seconds */
41*24311Ssklower 
42*24311Ssklower #define	SUPPLY_INTERVAL		30	/* time to supply tables */
43*24311Ssklower 
44*24311Ssklower #define	EXPIRE_TIME		180	/* time to mark entry invalid */
45*24311Ssklower #define	GARBAGE_TIME		240	/* time to garbage collect */
46