Deleted Added
full compact
routed.h (17253) routed.h (17844)
1/*-
2 * Copyright (c) 1983, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)routed.h 8.1 (Berkeley) 6/2/93
1/*-
2 * Copyright (c) 1983, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)routed.h 8.1 (Berkeley) 6/2/93
34 *
35 * $NetBSD$
34 */
35
36#ifndef _ROUTED_H_
37#define _ROUTED_H_
38#ifdef __cplusplus
39extern "C" {
40#endif
36 */
37
38#ifndef _ROUTED_H_
39#define _ROUTED_H_
40#ifdef __cplusplus
41extern "C" {
42#endif
41#ident "$Revision: 1.8 $"
43#ident "$Revision: 1.9 $"
42
43/*
44 * Routing Information Protocol
45 *
46 * Derived from Xerox NS Routing Information Protocol
47 * by changing 32-bit net numbers to sockaddr's and
48 * padding stuff to 32-bit boundaries.
49 */
50
51#define RIPv1 1
52#define RIPv2 2
53#ifndef RIPVERSION
54#define RIPVERSION RIPv1
55#endif
56
57#define RIP_PORT 520
44
45/*
46 * Routing Information Protocol
47 *
48 * Derived from Xerox NS Routing Information Protocol
49 * by changing 32-bit net numbers to sockaddr's and
50 * padding stuff to 32-bit boundaries.
51 */
52
53#define RIPv1 1
54#define RIPv2 2
55#ifndef RIPVERSION
56#define RIPVERSION RIPv1
57#endif
58
59#define RIP_PORT 520
58
60
59#if RIPVERSION == 1
60/* Note that this so called sockaddr has a 2-byte sa_family and no sa_len.
61 * It is not a UNIX sockaddr, but the shape of an address as defined
61#if RIPVERSION == 1
62/* Note that this so called sockaddr has a 2-byte sa_family and no sa_len.
63 * It is not a UNIX sockaddr, but the shape of an address as defined
62 * in RIPv1.
64 * in RIPv1. It is still defined to allow old versions of programs
65 * such as `gated` to use this file to define RIPv1.
63 */
64struct netinfo {
65 struct sockaddr rip_dst; /* destination net/host */
66 */
67struct netinfo {
68 struct sockaddr rip_dst; /* destination net/host */
66 int rip_metric; /* cost of route */
69 u_int32_t rip_metric; /* cost of route */
67};
68#else
69struct netinfo {
70};
71#else
72struct netinfo {
70 u_short n_family;
73 u_int16_t n_family;
71#define RIP_AF_INET htons(AF_INET)
72#define RIP_AF_UNSPEC 0
73#define RIP_AF_AUTH 0xffff
74#define RIP_AF_INET htons(AF_INET)
75#define RIP_AF_UNSPEC 0
76#define RIP_AF_AUTH 0xffff
74 u_short n_tag; /* optional in RIPv2 */
75 u_int n_dst; /* destination net or host */
77 u_int16_t n_tag; /* optional in RIPv2 */
78 u_int32_t n_dst; /* destination net or host */
76#define RIP_DEFAULT 0
79#define RIP_DEFAULT 0
77 u_int n_mask; /* netmask in RIPv2 */
78 u_int n_nhop; /* optional next hop in RIPv2 */
79 u_int n_metric; /* cost of route */
80 u_int32_t n_mask; /* netmask in RIPv2 */
81 u_int32_t n_nhop; /* optional next hop in RIPv2 */
82 u_int32_t n_metric; /* cost of route */
80};
81#endif
82
83/* RIPv2 authentication */
84struct netauth {
83};
84#endif
85
86/* RIPv2 authentication */
87struct netauth {
85 u_short a_type;
88 u_int16_t a_type;
86#define RIP_AUTH_PW htons(2) /* password type */
87 union {
88#define RIP_AUTH_PW_LEN 16
89#define RIP_AUTH_PW htons(2) /* password type */
90 union {
91#define RIP_AUTH_PW_LEN 16
89 char au_pw[RIP_AUTH_PW_LEN];
92 int8_t au_pw[RIP_AUTH_PW_LEN];
90 } au;
91};
92
93struct rip {
93 } au;
94};
95
96struct rip {
94 u_char rip_cmd; /* request/response */
95 u_char rip_vers; /* protocol version # */
96 u_short rip_res1; /* pad to 32-bit boundary */
97 u_int8_t rip_cmd; /* request/response */
98 u_int8_t rip_vers; /* protocol version # */
99 u_int16_t rip_res1; /* pad to 32-bit boundary */
97 union { /* variable length... */
98 struct netinfo ru_nets[1];
100 union { /* variable length... */
101 struct netinfo ru_nets[1];
99 char ru_tracefile[1];
102 int8_t ru_tracefile[1];
100 struct netauth ru_auth[1];
101 } ripun;
102#define rip_nets ripun.ru_nets
103#define rip_tracefile ripun.ru_tracefile
104};
105
106/* Packet types.
107 */

--- 16 unchanged lines hidden (view full) ---

124};
125#endif
126
127#define HOPCNT_INFINITY 16
128#define MAXPACKETSIZE 512 /* max broadcast size */
129#define NETS_LEN ((MAXPACKETSIZE-sizeof(struct rip)) \
130 / sizeof(struct netinfo) +1)
131
103 struct netauth ru_auth[1];
104 } ripun;
105#define rip_nets ripun.ru_nets
106#define rip_tracefile ripun.ru_tracefile
107};
108
109/* Packet types.
110 */

--- 16 unchanged lines hidden (view full) ---

127};
128#endif
129
130#define HOPCNT_INFINITY 16
131#define MAXPACKETSIZE 512 /* max broadcast size */
132#define NETS_LEN ((MAXPACKETSIZE-sizeof(struct rip)) \
133 / sizeof(struct netinfo) +1)
134
132#define INADDR_RIP_GROUP (u_long)0xe0000009 /* 224.0.0.9 */
135#define INADDR_RIP_GROUP (u_int32_t)0xe0000009 /* 224.0.0.9 */
133
134
135/* Timer values used in managing the routing table.
136 *
137 * Complete tables are broadcast every SUPPLY_INTERVAL seconds.
138 * If changes occur between updates, dynamic updates containing only changes
139 * may be sent. When these are sent, a timer is set for a random value
140 * between MIN_WAITTIME and MAX_WAITTIME, and no additional dynamic updates

--- 19 unchanged lines hidden ---
136
137
138/* Timer values used in managing the routing table.
139 *
140 * Complete tables are broadcast every SUPPLY_INTERVAL seconds.
141 * If changes occur between updates, dynamic updates containing only changes
142 * may be sent. When these are sent, a timer is set for a random value
143 * between MIN_WAITTIME and MAX_WAITTIME, and no additional dynamic updates

--- 19 unchanged lines hidden ---