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