xref: /original-bsd/sbin/XNSrouted/protocol.h (revision 5a59ca70)
106577f8bSsklower /*
2*5a59ca70Sbostic  * Copyright (c) 1985, 1993
3*5a59ca70Sbostic  *	The Regents of the University of California.  All rights reserved.
406577f8bSsklower  *
50208dfdeSbostic  * This file includes significant work done at Cornell University by
60208dfdeSbostic  * Bill Nesheim.  That work included by permission.
706577f8bSsklower  *
8ea70a0c4Sbostic  * %sccs.include.redist.c%
90208dfdeSbostic  *
10*5a59ca70Sbostic  *	@(#)protocol.h	8.1 (Berkeley) 06/05/93
1106577f8bSsklower  */
1206577f8bSsklower 
139913782aSsklower /*
149913782aSsklower  * Xerox Routing Information Protocol
159913782aSsklower  *
169913782aSsklower  */
179913782aSsklower 
189913782aSsklower struct netinfo {
194d18e45cSsklower 	union ns_net	rip_dst;		/* destination net */
209913782aSsklower 	u_short		rip_metric;		/* cost of route */
219913782aSsklower };
229913782aSsklower 
239913782aSsklower struct rip {
249913782aSsklower 	u_short	rip_cmd;		/* request/response */
259913782aSsklower 	struct netinfo rip_nets[1];	/* variable length */
269913782aSsklower };
279913782aSsklower 
289913782aSsklower /*
299913782aSsklower  * Packet types.
309913782aSsklower  */
319913782aSsklower #define	RIPCMD_REQUEST		1	/* want info */
329913782aSsklower #define	RIPCMD_RESPONSE		2	/* responding to request */
339913782aSsklower 
349913782aSsklower #define	RIPCMD_MAX		3
359913782aSsklower #ifdef RIPCMDS
369913782aSsklower char *ripcmds[RIPCMD_MAX] =
379913782aSsklower   { "#0", "REQUEST", "RESPONSE" };
389913782aSsklower #endif
399913782aSsklower 
409913782aSsklower #define	HOPCNT_INFINITY		16		/* per Xerox NS */
419913782aSsklower #define	DSTNETS_ALL		0xffffffff	/* per Xerox NS */
429913782aSsklower #define	MAXPACKETSIZE		512		/* max broadcast size */
439913782aSsklower 
444d18e45cSsklower extern union ns_net ns_anynet;
454d18e45cSsklower extern union ns_net ns_zeronet;
464d18e45cSsklower 
479913782aSsklower /*
489913782aSsklower  * Timer values used in managing the routing table.
499913782aSsklower  * Every update forces an entry's timer to be reset.  After
509913782aSsklower  * EXPIRE_TIME without updates, the entry is marked invalid,
519913782aSsklower  * but held onto until GARBAGE_TIME so that others may
529913782aSsklower  * see it "be deleted".
539913782aSsklower  */
549913782aSsklower #define	TIMER_RATE		30	/* alarm clocks every 30 seconds */
559913782aSsklower 
569913782aSsklower #define	SUPPLY_INTERVAL		30	/* time to supply tables */
579913782aSsklower 
589913782aSsklower #define	EXPIRE_TIME		180	/* time to mark entry invalid */
599913782aSsklower #define	GARBAGE_TIME		240	/* time to garbage collect */
60