124311Ssklower /* 2*61474Sbostic * Copyright (c) 1985, 1993 3*61474Sbostic * The Regents of the University of California. All rights reserved. 424327Ssklower * 535551Sbostic * This file includes significant work done at Cornell University by 635551Sbostic * Bill Nesheim. That work included by permission. 724327Ssklower * 842698Sbostic * %sccs.include.redist.c% 935551Sbostic * 10*61474Sbostic * @(#)protocol.h 8.1 (Berkeley) 06/05/93 1124327Ssklower */ 1224327Ssklower 1324327Ssklower /* 1424311Ssklower * Xerox Routing Information Protocol 1524311Ssklower * 1624311Ssklower */ 1724311Ssklower 1824311Ssklower struct netinfo { 1926171Ssklower union ns_net rip_dst; /* destination net */ 2026171Ssklower u_short rip_metric; /* cost of route */ 2124311Ssklower }; 2224311Ssklower 2324311Ssklower struct rip { 2424311Ssklower u_short rip_cmd; /* request/response */ 2524311Ssklower struct netinfo rip_nets[1]; /* variable length */ 2624311Ssklower }; 2724311Ssklower 2824311Ssklower /* 2924311Ssklower * Packet types. 3024311Ssklower */ 3124311Ssklower #define RIPCMD_REQUEST 1 /* want info */ 3224311Ssklower #define RIPCMD_RESPONSE 2 /* responding to request */ 3324311Ssklower 3424311Ssklower #define RIPCMD_MAX 3 3524311Ssklower #ifdef RIPCMDS 3624311Ssklower char *ripcmds[RIPCMD_MAX] = 3724311Ssklower { "#0", "REQUEST", "RESPONSE" }; 3824311Ssklower #endif 3924311Ssklower 4024311Ssklower #define HOPCNT_INFINITY 16 /* per Xerox NS */ 4126171Ssklower #define DSTNETS_ALL 0xffffffff /* per Xerox NS */ 4224311Ssklower #define MAXPACKETSIZE 512 /* max broadcast size */ 4324311Ssklower 4426171Ssklower extern union ns_net ns_anynet; 4526171Ssklower extern union ns_net ns_zeronet; 4626171Ssklower 4724311Ssklower /* 4824311Ssklower * Timer values used in managing the routing table. 4924311Ssklower * Every update forces an entry's timer to be reset. After 5024311Ssklower * EXPIRE_TIME without updates, the entry is marked invalid, 5124311Ssklower * but held onto until GARBAGE_TIME so that others may 5224311Ssklower * see it "be deleted". 5324311Ssklower */ 5424311Ssklower #define TIMER_RATE 30 /* alarm clocks every 30 seconds */ 5524311Ssklower 5624311Ssklower #define SUPPLY_INTERVAL 30 /* time to supply tables */ 5724311Ssklower 5824311Ssklower #define EXPIRE_TIME 180 /* time to mark entry invalid */ 5924311Ssklower #define GARBAGE_TIME 240 /* time to garbage collect */ 60