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 --- |