|
|
1.1 root 1: /*
2: * Copyright (c) 1985 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * This file includes significant work done at Cornell University by
6: * Bill Nesheim. That work included by permission.
7: *
8: * Redistribution and use in source and binary forms are permitted
9: * provided that: (1) source distributions retain this entire copyright
10: * notice and comment, and (2) distributions including binaries display
11: * the following acknowledgement: ``This product includes software
12: * developed by the University of California, Berkeley and its contributors''
13: * in the documentation or other materials provided with the distribution
14: * and in all advertising materials mentioning features or use of this
15: * software. Neither the name of the University nor the names of its
16: * contributors may be used to endorse or promote products derived
17: * from this software without specific prior written permission.
18: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
19: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
20: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21: *
22: * @(#)protocol.h 5.6 (Berkeley) 6/1/90
23: */
24:
25: /*
26: * Xerox Routing Information Protocol
27: *
28: */
29:
30: struct netinfo {
31: union ns_net rip_dst; /* destination net */
32: u_short rip_metric; /* cost of route */
33: };
34:
35: struct rip {
36: u_short rip_cmd; /* request/response */
37: struct netinfo rip_nets[1]; /* variable length */
38: };
39:
40: /*
41: * Packet types.
42: */
43: #define RIPCMD_REQUEST 1 /* want info */
44: #define RIPCMD_RESPONSE 2 /* responding to request */
45:
46: #define RIPCMD_MAX 3
47: #ifdef RIPCMDS
48: char *ripcmds[RIPCMD_MAX] =
49: { "#0", "REQUEST", "RESPONSE" };
50: #endif
51:
52: #define HOPCNT_INFINITY 16 /* per Xerox NS */
53: #define DSTNETS_ALL 0xffffffff /* per Xerox NS */
54: #define MAXPACKETSIZE 512 /* max broadcast size */
55:
56: extern union ns_net ns_anynet;
57: extern union ns_net ns_zeronet;
58:
59: /*
60: * Timer values used in managing the routing table.
61: * Every update forces an entry's timer to be reset. After
62: * EXPIRE_TIME without updates, the entry is marked invalid,
63: * but held onto until GARBAGE_TIME so that others may
64: * see it "be deleted".
65: */
66: #define TIMER_RATE 30 /* alarm clocks every 30 seconds */
67:
68: #define SUPPLY_INTERVAL 30 /* time to supply tables */
69:
70: #define EXPIRE_TIME 180 /* time to mark entry invalid */
71: #define GARBAGE_TIME 240 /* time to garbage collect */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.