This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history] / usr.sbin / XNSrouted / protocol.h
CommitLineData
18916298
RG
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, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by the University of
19 * California, Berkeley and its contributors.
20 * 4. Neither the name of the University nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)protocol.h 5.6 (Berkeley) 6/1/90
37 */
38
39/*
40 * Xerox Routing Information Protocol
41 *
42 */
43
44struct netinfo {
45 union ns_net rip_dst; /* destination net */
46 u_short rip_metric; /* cost of route */
47};
48
49struct rip {
50 u_short rip_cmd; /* request/response */
51 struct netinfo rip_nets[1]; /* variable length */
52};
53
54/*
55 * Packet types.
56 */
57#define RIPCMD_REQUEST 1 /* want info */
58#define RIPCMD_RESPONSE 2 /* responding to request */
59
60#define RIPCMD_MAX 3
61#ifdef RIPCMDS
62char *ripcmds[RIPCMD_MAX] =
63 { "#0", "REQUEST", "RESPONSE" };
64#endif
65
66#define HOPCNT_INFINITY 16 /* per Xerox NS */
67#define DSTNETS_ALL 0xffffffff /* per Xerox NS */
68#define MAXPACKETSIZE 512 /* max broadcast size */
69
70extern union ns_net ns_anynet;
71extern union ns_net ns_zeronet;
72
73/*
74 * Timer values used in managing the routing table.
75 * Every update forces an entry's timer to be reset. After
76 * EXPIRE_TIME without updates, the entry is marked invalid,
77 * but held onto until GARBAGE_TIME so that others may
78 * see it "be deleted".
79 */
80#define TIMER_RATE 30 /* alarm clocks every 30 seconds */
81
82#define SUPPLY_INTERVAL 30 /* time to supply tables */
83
84#define EXPIRE_TIME 180 /* time to mark entry invalid */
85#define GARBAGE_TIME 240 /* time to garbage collect */