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