blob: c5b59aa30be18dc43d4d690a1b958732b5e21b3c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
/*
* IS-IS Rout(e)ing protocol - isis_constants.h
*
* Copyright (C) 2001,2002 Sampo Saaristo
* Tampere University of Technology
* Institute of Communications Engineering
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public Licenseas published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef ISIS_CONSTANTS_H
#define ISIS_CONSTANTS_H
/*
* Architectural constant values from p. 35 of ISO/IEC 10589
*/
#define MAX_LINK_METRIC 63
#define MAX_PATH_METRIC 1023
#define ISO_SAP 0xFE
#define INTRADOMAIN_ROUTEING_SELECTOR 0
#define SEQUENCE_MODULUS 4294967296
#define RECEIVE_LSP_BUFFER_SIZE 1492
/*
* implementation specific jitter values
*/
#define IIH_JITTER 25 /* % */
#define MAX_AGE_JITTER 5 /* % */
#define MAX_LSP_GEN_JITTER 5 /* % */
#define CSNP_JITTER 10 /* % */
#define PSNP_JITTER 10 /* % */
#define RANDOM_SPREAD 100000.0
/*
* Default values
* ISO - 10589
* Section 7.3.21 - Parameters
*/
#define MAX_AGE 1200
#define ZERO_AGE_LIFETIME 60
#define MAX_LSP_GEN_INTERVAL 900
#define MIN_LSP_GEN_INTERVAL 30
#define MIN_LSP_TRANS_INTERVAL 5
#define ISIS_MIN_LSP_LIFETIME 380
#define CSNP_INTERVAL 10
#define PSNP_INTERVAL 2
#define ISIS_MAX_PATH_SPLITS 3
#define ISIS_LEVELS 2
#define ISIS_LEVEL1 1
#define ISIS_LEVEL2 2
#define HELLO_INTERVAL 1
#define HELLO_MINIMAL HELLO_INTERVAL
#define HELLO_MULTIPLIER 3
#define DEFAULT_PRIORITY 64
/* different vendors implement different values 5-10 on average */
#define LSP_GEN_INTERVAL_DEFAULT 10
#define LSP_INTERVAL 33 /* msecs */
#define DEFAULT_CIRCUIT_METRICS 10
#define METRICS_UNSUPPORTED 0x80
#define PERIODIC_SPF_INTERVAL 60 /* at the top of my head */
#define MINIMUM_SPF_INTERVAL 5 /* .. same here */
/*
* NLPID values
*/
#define NLPID_IP 204
#define NLPID_IPV6 142
/*
* Return values for functions
*/
#define ISIS_OK 0
#define ISIS_WARNING 1
#define ISIS_ERROR 2
#define ISIS_CRITICAL 3
/*
* IS-IS Circuit Types
*/
#define IS_LEVEL_1 1
#define IS_LEVEL_2 2
#define IS_LEVEL_1_AND_2 3
#define SNPA_ADDRSTRLEN 18
#define ISIS_SYS_ID_LEN 6
#define SYSID_STRLEN 24
/*
* LSP bit masks
*/
#define LSPBIT_P 0x80
#define LSPBIT_ATT 0x78
#define LSPBIT_OL 0x04
#define LSPBIT_IST 0x03
/*
* LSP bit masking macros
* taken from tcpdumps
* print-isoclns.c
*/
#define ISIS_MASK_LSP_OL_BIT(x) ((x)&0x4)
#define ISIS_MASK_LSP_IS_L1_BIT(x) ((x)&0x1)
#define ISIS_MASK_LSP_IS_L2_BIT(x) ((x)&0x2)
#define ISIS_MASK_LSP_PARTITION_BIT(x) ((x)&0x80)
#define ISIS_MASK_LSP_ATT_BITS(x) ((x)&0x78)
#define ISIS_MASK_LSP_ATT_ERROR_BIT(x) ((x)&0x40)
#define ISIS_MASK_LSP_ATT_EXPENSE_BIT(x) ((x)&0x20)
#define ISIS_MASK_LSP_ATT_DELAY_BIT(x) ((x)&0x10)
#define ISIS_MASK_LSP_ATT_DEFAULT_BIT(x) ((x)&0x8)
#define LLC_LEN 3
/* we need to be aware of the fact we are using ISO sized
* packets, using isomtu = mtu - LLC_LEN
*/
#define ISO_MTU(C) \
(C->circ_type==CIRCUIT_T_BROADCAST) ? \
(C->interface->mtu - LLC_LEN) : (C->interface->mtu)
#ifndef ETH_ALEN
#define ETH_ALEN 6
#endif
#endif /* ISIS_CONSTANTS_H */
|