124311Ssklower /* 2*24327Ssklower * Copyright (c) 1985 Regents of the University of California. 3*24327Ssklower * All rights reserved. The Berkeley software License Agreement 4*24327Ssklower * specifies the terms and conditions for redistribution. 5*24327Ssklower * 6*24327Ssklower * @(#)protocol.h 5.3 (Berkeley) 08/16/85"; 7*24327Ssklower * 8*24327Ssklower * Includes material written at Cornell University by Bill Nesheim, 9*24327Ssklower * by permission of the author. 10*24327Ssklower */ 11*24327Ssklower 12*24327Ssklower /* 1324311Ssklower * Xerox Routing Information Protocol 1424311Ssklower * 1524311Ssklower */ 1624311Ssklower 1724311Ssklower struct netinfo { 1824311Ssklower u_short rip_dst[2]; /* destination net */ 1924311Ssklower u_short rip_metric; /* cost of route */ 2024311Ssklower }; 2124311Ssklower 2224311Ssklower struct rip { 2324311Ssklower u_short rip_cmd; /* request/response */ 2424311Ssklower struct netinfo rip_nets[1]; /* variable length */ 2524311Ssklower }; 2624311Ssklower 2724311Ssklower /* 2824311Ssklower * Packet types. 2924311Ssklower */ 3024311Ssklower #define RIPCMD_REQUEST 1 /* want info */ 3124311Ssklower #define RIPCMD_RESPONSE 2 /* responding to request */ 3224311Ssklower 3324311Ssklower #define RIPCMD_MAX 3 3424311Ssklower #ifdef RIPCMDS 3524311Ssklower char *ripcmds[RIPCMD_MAX] = 3624311Ssklower { "#0", "REQUEST", "RESPONSE" }; 3724311Ssklower #endif 3824311Ssklower 3924311Ssklower #define HOPCNT_INFINITY 16 /* per Xerox NS */ 4024311Ssklower #define DSTNETS_ALL 0xffffffff /* per Xerox NS */ 4124311Ssklower #define MAXPACKETSIZE 512 /* max broadcast size */ 4224311Ssklower 4324311Ssklower /* 4424311Ssklower * Timer values used in managing the routing table. 4524311Ssklower * Every update forces an entry's timer to be reset. After 4624311Ssklower * EXPIRE_TIME without updates, the entry is marked invalid, 4724311Ssklower * but held onto until GARBAGE_TIME so that others may 4824311Ssklower * see it "be deleted". 4924311Ssklower */ 5024311Ssklower #define TIMER_RATE 30 /* alarm clocks every 30 seconds */ 5124311Ssklower 5224311Ssklower #define SUPPLY_INTERVAL 30 /* time to supply tables */ 5324311Ssklower 5424311Ssklower #define EXPIRE_TIME 180 /* time to mark entry invalid */ 5524311Ssklower #define GARBAGE_TIME 240 /* time to garbage collect */ 56