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