]>
Commit | Line | Data |
---|---|---|
7f57883e DS |
1 | /* |
2 | * EIGRP Definition of Constants. | |
3 | * Copyright (C) 2013-2016 | |
4 | * Authors: | |
5 | * Donnie Savage | |
6 | * Jan Janovic | |
7 | * Matej Perina | |
8 | * Peter Orsag | |
9 | * Peter Paluch | |
10 | * Frantisek Gazo | |
11 | * Tomas Hvorkovy | |
12 | * Martin Kontsek | |
13 | * Lukas Koribsky | |
14 | * | |
15 | * This file is part of GNU Zebra. | |
16 | * | |
17 | * GNU Zebra is free software; you can redistribute it and/or modify it | |
18 | * under the terms of the GNU General Public License as published by the | |
19 | * Free Software Foundation; either version 2, or (at your option) any | |
20 | * later version. | |
21 | * | |
22 | * GNU Zebra is distributed in the hope that it will be useful, but | |
23 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
24 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
25 | * General Public License for more details. | |
26 | * | |
896014f4 DL |
27 | * You should have received a copy of the GNU General Public License along |
28 | * with this program; see the file COPYING; if not, write to the Free Software | |
29 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
7f57883e DS |
30 | */ |
31 | ||
32 | #ifndef _ZEBRA_EIGRP_CONST_H_ | |
33 | #define _ZEBRA_EIGRP_CONST_H_ | |
34 | ||
7f57883e DS |
35 | #define EIGRP_NEIGHBOR_DOWN 0 |
36 | #define EIGRP_NEIGHBOR_PENDING 1 | |
37 | #define EIGRP_NEIGHBOR_UP 2 | |
38 | #define EIGRP_NEIGHBOR_STATE_MAX 3 | |
39 | ||
40 | /*Packet requiring ack will be retransmitted again after this time*/ | |
41 | #define EIGRP_PACKET_RETRANS_TIME 2 /* in seconds */ | |
42 | #define EIGRP_PACKET_RETRANS_MAX 16 /* number of retrans attempts */ | |
43 | #define PLAINTEXT_LENGTH 81 | |
44 | ||
45 | /*Metric variance multiplier*/ | |
46 | #define EIGRP_VARIANCE_DEFAULT 1 | |
47 | #define EIGRP_MAX_PATHS_DEFAULT 4 | |
48 | ||
7f57883e DS |
49 | /* Return values of functions involved in packet verification */ |
50 | #define MSG_OK 0 | |
51 | #define MSG_NG 1 | |
52 | ||
53 | #define EIGRP_HEADER_VERSION 2 | |
54 | ||
55 | /* Default protocol, port number. */ | |
56 | #ifndef IPPROTO_EIGRPIGP | |
57 | #define IPPROTO_EIGRPIGP 88 | |
58 | #endif /* IPPROTO_EIGRPIGP */ | |
59 | ||
60 | #define EIGRP_AUTH_MD5_TLV_SIZE 40 | |
61 | #define EIGRP_AUTH_SHA256_TLV_SIZE 56 | |
62 | ||
d62a17ae | 63 | /*Cisco routers use only first 44 bytes of basic hello for their MD5 |
64 | * calculations*/ | |
7f57883e DS |
65 | #define EIGRP_MD5_BASIC_COMPUTE 44 |
66 | #define EIGRP_MD5_UPDATE_INIT_COMPUTE 40 | |
67 | ||
7f57883e DS |
68 | #define EIGRP_AUTH_BASIC_HELLO_FLAG 0x01 |
69 | #define EIGRP_AUTH_TID_HELLO_FLAG 0x02 | |
70 | #define EIGRP_AUTH_UPDATE_INIT_FLAG 0x04 | |
71 | #define EIGRP_AUTH_UPDATE_FLAG 0x08 | |
72 | #define EIGRP_AUTH_EXTRA_SALT_FLAG 0x10 | |
73 | ||
74 | #define EIGRP_NEXT_SEQUENCE_TLV_SIZE 8 | |
75 | ||
76 | /* IP TTL for EIGRP protocol. */ | |
77 | #define EIGRP_IP_TTL 1 | |
78 | ||
79 | /* VTY port number. */ | |
e763afa5 | 80 | #define EIGRP_VTY_PORT 2613 |
7f57883e DS |
81 | |
82 | /* Default configuration file name for eigrp. */ | |
83 | #define EIGRP_DEFAULT_CONFIG "eigrpd.conf" | |
84 | ||
85 | #define EIGRP_HELLO_INTERVAL_DEFAULT 5 | |
86 | #define EIGRP_HOLD_INTERVAL_DEFAULT 15 | |
63863c47 RW |
87 | #define EIGRP_BANDWIDTH_DEFAULT 100000 |
88 | #define EIGRP_DELAY_DEFAULT 10 | |
7f57883e DS |
89 | #define EIGRP_RELIABILITY_DEFAULT 255 |
90 | #define EIGRP_LOAD_DEFAULT 1 | |
91 | ||
92 | #define EIGRP_MULTICAST_ADDRESS 0xe000000A /*224.0.0.10*/ | |
93 | ||
94 | #define EIGRP_MAX_METRIC 0xffffffffU /*4294967295*/ | |
996c9314 | 95 | enum metric_change { METRIC_DECREASE, METRIC_SAME, METRIC_INCREASE }; |
7f57883e DS |
96 | |
97 | #define DEFAULT_ROUTE ZEBRA_ROUTE_MAX | |
98 | #define DEFAULT_ROUTE_TYPE(T) ((T) == DEFAULT_ROUTE) | |
99 | ||
100 | #define INTERFACE_DOWN_BY_ZEBRA 1 | |
101 | #define INTERFACE_DOWN_BY_VTY 2 | |
63863c47 | 102 | #define INTERFACE_DOWN_BY_FINAL 3 |
7f57883e DS |
103 | |
104 | #define EIGRP_HELLO_NORMAL 0x00 | |
105 | #define EIGRP_HELLO_GRACEFUL_SHUTDOWN 0x01 | |
106 | #define EIGRP_HELLO_ADD_SEQUENCE 0x02 | |
107 | #define EIGRP_HELLO_GRACEFUL_SHUTDOWN_NBR 0x04 | |
108 | ||
d62a17ae | 109 | /* EIGRP Network Type. */ |
110 | #define EIGRP_IFTYPE_NONE 0 | |
111 | #define EIGRP_IFTYPE_POINTOPOINT 1 | |
112 | #define EIGRP_IFTYPE_BROADCAST 2 | |
67b8d7ec DS |
113 | #define EIGRP_IFTYPE_LOOPBACK 3 |
114 | #define EIGRP_IFTYPE_MAX 4 | |
7f57883e DS |
115 | |
116 | #define EIGRP_IF_ACTIVE 0 | |
117 | #define EIGRP_IF_PASSIVE 1 | |
118 | ||
119 | /* EIGRP TT destination type */ | |
120 | #define EIGRP_TOPOLOGY_TYPE_CONNECTED 0 // Connected network | |
121 | #define EIGRP_TOPOLOGY_TYPE_REMOTE 1 // Remote internal network | |
122 | #define EIGRP_TOPOLOGY_TYPE_REMOTE_EXTERNAL 2 // Remote external network | |
123 | ||
124 | /*EIGRP TT entry flags*/ | |
dc4accdd DS |
125 | #define EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG (1 << 0) |
126 | #define EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG (1 << 1) | |
127 | #define EIGRP_ROUTE_DESCRIPTOR_INTABLE_FLAG (1 << 2) | |
128 | #define EIGRP_ROUTE_DESCRIPTOR_EXTERNAL_FLAG (1 << 3) | |
7f57883e DS |
129 | |
130 | /*EIGRP FSM state count, event count*/ | |
131 | #define EIGRP_FSM_STATE_MAX 5 | |
132 | #define EIGRP_FSM_EVENT_MAX 16 | |
133 | ||
87805f88 DS |
134 | /*EEGRP FSM states*/ |
135 | enum eigrp_fsm_states { | |
d62a17ae | 136 | EIGRP_FSM_STATE_PASSIVE, |
137 | EIGRP_FSM_STATE_ACTIVE_0, | |
138 | EIGRP_FSM_STATE_ACTIVE_1, | |
139 | EIGRP_FSM_STATE_ACTIVE_2, | |
140 | EIGRP_FSM_STATE_ACTIVE_3, | |
87805f88 | 141 | }; |
7f57883e DS |
142 | |
143 | /*EIGRP FSM events return values*/ | |
144 | #define EIGRP_FSM_NEED_UPDATE 1 | |
145 | #define EIGRP_FSM_NEED_QUERY 2 | |
146 | ||
147 | /*EIGRP FSM events*/ | |
94ccb309 DS |
148 | enum eigrp_fsm_events { |
149 | /* | |
150 | * Input event other than query from succ, | |
0437e105 | 151 | * FC is not satisfied |
94ccb309 DS |
152 | */ |
153 | EIGRP_FSM_EVENT_NQ_FCN, | |
154 | ||
155 | /* last reply, FD is reset */ | |
156 | EIGRP_FSM_EVENT_LR, | |
157 | ||
158 | /* Query from succ, FC not satisfied */ | |
159 | EIGRP_FSM_EVENT_Q_FCN, | |
160 | ||
161 | /* last reply, FC satisifed with current value of FDij */ | |
162 | EIGRP_FSM_EVENT_LR_FCS, | |
163 | ||
164 | /* distance increase while in a active state */ | |
165 | EIGRP_FSM_EVENT_DINC, | |
166 | ||
167 | /* Query from succ while in active state */ | |
168 | EIGRP_FSM_EVENT_QACT, | |
169 | ||
0437e105 | 170 | /* last reply, FC not satisfied */ |
94ccb309 DS |
171 | EIGRP_FSM_EVENT_LR_FCN, |
172 | ||
173 | /* | |
174 | * state not changed | |
175 | * usually by receiving not last reply | |
176 | */ | |
996c9314 | 177 | EIGRP_FSM_KEEP_STATE, |
94ccb309 | 178 | }; |
7f57883e | 179 | |
7f57883e DS |
180 | /** |
181 | * External routes originate from some other protocol - these are them | |
182 | */ | |
183 | #define NULL_PROTID 0 /*!< unknown protocol */ | |
184 | #define IGRP_PROTID 1 /*!< IGRP.. whos your daddy! */ | |
185 | #define EIGRP_PROTID 2 /*!< EIGRP - Just flat out the best */ | |
186 | #define STATIC_PROTID 3 /*!< Staticly configured source */ | |
187 | #define RIP_PROTID 4 /*!< Routing Information Protocol */ | |
188 | #define HELLO_PROTID 5 /*!< Hello? RFC-891 you there? */ | |
189 | #define OSPF_PROTID 6 /*!< OSPF - Open Shortest Path First */ | |
190 | #define ISIS_PROTID 7 /*!< Intermediate System To Intermediate System */ | |
191 | #define EGP_PROTID 8 /*!< Exterior Gateway Protocol */ | |
192 | #define BGP_PROTID 9 /*!< Border Gateway Protocol */ | |
193 | #define IDRP_PROTID 10 /*!< InterDomain Routing Protocol */ | |
194 | #define CONN_PROTID 11 /*!< Connected source */ | |
195 | ||
d62a17ae | 196 | /* |
7f57883e DS |
197 | * metric k-value defaults |
198 | */ | |
199 | #define EIGRP_K1_DEFAULT 1 //!< unweighed inverse bandwidth | |
200 | #define EIGRP_K2_DEFAULT 0 //!< no loading term | |
201 | #define EIGRP_K3_DEFAULT 1 //!< unweighted delay | |
202 | #define EIGRP_K4_DEFAULT 0 //!< no reliability term | |
203 | #define EIGRP_K5_DEFAULT 0 //!< no reliability term | |
204 | #define EIGRP_K6_DEFAULT 0 //!< do not add in extended metrics | |
205 | ||
7f57883e DS |
206 | /* |
207 | * EIGRP Fixed header | |
208 | */ | |
209 | #define EIGRP_HEADER_LEN 20U | |
210 | #define EIGRP_PACKET_MAX_LEN 65535U /* includes IP Header size. */ | |
211 | ||
7f57883e DS |
212 | #define EIGRP_TLV_HDR_LENGTH 4 |
213 | ||
214 | /** | |
215 | * EIGRP Packet Opcodes | |
216 | */ | |
217 | #define EIGRP_OPC_UPDATE 1 /*!< packet containing routing information */ | |
218 | #define EIGRP_OPC_REQUEST 2 /*!< sent to request one or more routes */ | |
219 | #define EIGRP_OPC_QUERY 3 /*!< sent when a routing is in active start */ | |
220 | #define EIGRP_OPC_REPLY 4 /*!< sent in response to a query */ | |
221 | #define EIGRP_OPC_HELLO 5 /*!< sent to maintain a peering session */ | |
222 | #define EIGRP_OPC_IPXSAP 6 /*!< IPX SAP information */ | |
223 | #define EIGRP_OPC_PROBE 7 /*!< for test purposes */ | |
224 | #define EIGRP_OPC_ACK 8 /*!< acknowledge */ | |
225 | #define EIGRP_OPC_SIAQUERY 10 /*!< QUERY - with relaxed restrictions */ | |
226 | #define EIGRP_OPC_SIAREPLY 11 /*!< REPLY - may contain old routing information */ | |
227 | ||
228 | /** | |
229 | * EIGRP TLV Range definitions | |
230 | * PDM TLV Range | |
231 | * General 0x0000 | |
232 | * IPv4 0x0100 ** TLVs for one and all | |
233 | * ATALK 0x0200 ** legacy | |
234 | * IPX 0x0300 ** discontinued | |
235 | * IPv6 0x0400 ** legacy | |
236 | * Multiprotocol 0x0600 ** wide metrics | |
237 | * MultiTopology 0x00f0 ** deprecated | |
238 | */ | |
239 | #define EIGRP_TLV_RANGEMASK 0xfff0 /*!< should be 0xff00 - opps */ | |
240 | #define EIGRP_TLV_GENERAL 0x0000 | |
241 | ||
242 | /** | |
243 | * 1.2 TLV Definitions ** legacy | |
244 | * These are considered legacyu and are only used for backward compability with | |
245 | * older Cisco Routers. They should not be your first choice for packet codings | |
246 | */ | |
247 | #define EIGRP_TLV_IPv4 0x0100 /*!< Classic IPv4 TLV encoding */ | |
248 | #define EIGRP_TLV_ATALK 0x0200 /*!< Classic Appletalk TLV encoding*/ | |
249 | #define EIGRP_TLV_IPX 0x0300 /*!< Classic IPX TLV encoding */ | |
250 | #define EIGRP_TLV_IPv6 0x0400 /*!< Classic IPv6 TLV encoding */ | |
251 | ||
252 | /** | |
253 | * 2.0 Multi-Protocol TLV Definitions | |
254 | * These are the current packet formats and should be used for packets | |
255 | */ | |
256 | #define EIGRP_TLV_MP 0x0600 /*!< Non-PDM specific encoding */ | |
257 | ||
258 | /** | |
259 | * TLV type definitions. Generic (protocol-independent) TLV types are | |
260 | * defined here. Protocol-specific ones are defined elsewhere. | |
261 | */ | |
262 | #define EIGRP_TLV_PARAMETER (EIGRP_TLV_GENERAL | 0x0001) /*!< eigrp parameters */ | |
263 | #define EIGRP_TLV_PARAMETER_LEN (12U) | |
264 | #define EIGRP_TLV_AUTH (EIGRP_TLV_GENERAL | 0x0002) /*!< authentication */ | |
265 | #define EIGRP_TLV_SEQ (EIGRP_TLV_GENERAL | 0x0003) /*!< sequenced packet */ | |
266 | #define EIGRP_TLV_SEQ_BASE_LEN (5U) | |
267 | #define EIGRP_TLV_SW_VERSION (EIGRP_TLV_GENERAL | 0x0004) /*!< software version */ | |
268 | #define EIGRP_TLV_SW_VERSION_LEN (8U) | |
269 | #define EIGRP_TLV_NEXT_MCAST_SEQ (EIGRP_TLV_GENERAL | 0x0005) /*!< sequence number */ | |
270 | #define EIGRP_TLV_PEER_TERMINATION (EIGRP_TLV_GENERAL | 0x0007) /*!< peer termination */ | |
271 | #define EIGRP_TLV_PEER_TERMINATION_LEN (9U) | |
272 | #define EIGRP_TLV_PEER_TIDLIST (EIGRP_TLV_GENERAL | 0x0008) /*!< peer sub-topology list */ | |
273 | ||
d62a17ae | 274 | /* Older cisco routers send TIDLIST value wrong, adding for backwards |
275 | * compatabily */ | |
7f57883e DS |
276 | #define EIGRP_TLV_PEER_MTRLIST (EIGRP_TLV_GENERAL | 0x00f5) |
277 | ||
278 | /** | |
279 | * Route Based TLVs | |
280 | */ | |
281 | #define EIGRP_TLV_REQUEST 0x0001 | |
282 | #define EIGRP_TLV_INTERNAL 0x0002 | |
283 | #define EIGRP_TLV_EXTERNAL 0x0003 | |
284 | #define EIGRP_TLV_COMMUNITY 0x0004 | |
285 | #define EIGRP_TLV_TYPEMASK 0x000f | |
286 | ||
287 | #define EIGRP_TLV_IPv4_REQ (EIGRP_TLV_IPv4 | EIGRP_TLV_REQUEST) | |
288 | #define EIGRP_TLV_IPv4_INT (EIGRP_TLV_IPv4 | EIGRP_TLV_INTERNAL) | |
289 | #define EIGRP_TLV_IPv4_EXT (EIGRP_TLV_IPv4 | EIGRP_TLV_EXTERNAL) | |
290 | #define EIGRP_TLV_IPv4_COM (EIGRP_TLV_IPv4 | EIGRP_TLV_COMMUNITY) | |
291 | ||
03161b73 DS |
292 | #define EIGRP_TLV_IPV4_SIZE_GRT_24_BIT 0x001D |
293 | #define EIGRP_TLV_IPV4_SIZE_GRT_16_BIT 0x001C | |
294 | #define EIGRP_TLV_IPV4_SIZE_GRT_8_BIT 0x001B | |
295 | #define EIGRP_TLV_IPV4_SIZE_GRT_0_BIT 0x001A | |
296 | #define EIGRP_TLV_MAX_IPV4_BYTE EIGRP_TLV_IPV4_SIZE_GRT_24_BIT | |
297 | ||
7f57883e DS |
298 | /* max number of TLV IPv4 prefixes in packet */ |
299 | #define EIGRP_TLV_MAX_IPv4 25 | |
300 | ||
301 | /** | |
302 | * | |
303 | * extdata flag field definitions | |
304 | */ | |
305 | #define EIGRP_OPAQUE_EXT 0x01 /*!< Route is external */ | |
306 | #define EIGRP_OPAQUE_CD 0x02 /*!< Candidate default route */ | |
307 | ||
308 | /** | |
309 | * Address-Family types are taken from: | |
310 | * http://www.iana.org/assignments/address-family-numbers | |
311 | * to provide a standards based exchange of AFI information between | |
312 | * EIGRP routers. | |
313 | */ | |
314 | #define EIGRP_AF_IPv4 1 /*!< IPv4 (IP version 4) */ | |
315 | #define EIGRP_AF_IPv6 2 /*!< IPv6 (IP version 6) */ | |
316 | #define EIGRP_AF_IPX 11 /*!< IPX */ | |
317 | #define EIGRP_AF_ATALK 12 /*!< Appletalk */ | |
318 | #define EIGRP_SF_COMMON 16384 /*!< Cisco Service Family */ | |
319 | #define EIGRP_SF_IPv4 16385 /*!< Cisco IPv4 Service Family */ | |
320 | #define EIGRP_SF_IPv6 16386 /*!< Cisco IPv6 Service Family */ | |
321 | ||
322 | /** | |
323 | * Authentication types supported by EIGRP | |
324 | */ | |
325 | #define EIGRP_AUTH_TYPE_NONE 0 | |
326 | #define EIGRP_AUTH_TYPE_TEXT 1 | |
327 | #define EIGRP_AUTH_TYPE_MD5 2 | |
328 | #define EIGRP_AUTH_TYPE_MD5_LEN 16 | |
329 | #define EIGRP_AUTH_TYPE_SHA256 3 | |
330 | #define EIGRP_AUTH_TYPE_SHA256_LEN 32 | |
331 | ||
332 | /** | |
333 | * opaque flag field definitions | |
334 | */ | |
335 | #define EIGRP_OPAQUE_SRCWD 0x01 /*!< Route Source Withdraw */ | |
336 | #define EIGRP_OPAQUE_ACTIVE 0x04 /*!< Route is currently in active state */ | |
337 | #define EIGRP_OPAQUE_REPL 0x08 /*!< Route is replicated from different tableid */ | |
338 | ||
339 | /** | |
340 | * pak flag bit field definitions - 0 (none)-7 source priority | |
341 | */ | |
342 | #define EIGRP_PRIV_DEFAULT 0x00 /* 0 (none)-7 source priority */ | |
343 | #define EIGRP_PRIV_LOW 0x01 | |
344 | #define EIGRP_PRIV_MEDIUM 0x04 | |
345 | #define EIGRP_PRIV_HIGH 0x07 | |
346 | ||
347 | /* | |
348 | * Init bit definition. First unicast transmitted Update has this | |
349 | * bit set in the flags field of the fixed header. It tells the neighbor | |
350 | * to down-load his topology table. | |
351 | */ | |
352 | #define EIGRP_INIT_FLAG 0x01 | |
353 | ||
354 | /* | |
355 | * CR bit (Conditionally Received) definition in flags field on header. Any | |
356 | * packets with the CR-bit set can be accepted by an EIGRP speaker if and | |
357 | * only if a previous Hello was received with the SEQUENCE_TYPE TLV present. | |
358 | * | |
359 | * This allows multicasts to be transmitted in order and reliably at the | |
360 | * same time as unicasts are transmitted. | |
361 | */ | |
362 | #define EIGRP_CR_FLAG 0x02 | |
363 | ||
364 | /* | |
365 | * RS bit. The Restart flag is set in the hello and the init | |
366 | * update packets during the nsf signaling period. A nsf-aware | |
367 | * router looks at the RS flag to detect if a peer is restarting | |
368 | * and maintain the adjacency. A restarting router looks at | |
369 | * this flag to determine if the peer is helping out with the restart. | |
370 | */ | |
371 | #define EIGRP_RS_FLAG 0x04 | |
372 | ||
373 | /* | |
374 | * EOT bit. The End-of-Table flag marks the end of the start-up updates | |
375 | * sent to a new peer. A nsf restarting router looks at this flag to | |
376 | * determine if it has finished receiving the start-up updates from all | |
377 | * peers. A nsf-aware router waits for this flag before cleaning up | |
378 | * the stale routes from the restarting peer. | |
379 | */ | |
380 | #define EIGRP_EOT_FLAG 0x08 | |
381 | ||
382 | /** | |
383 | * EIGRP Virtual Router ID | |
384 | * | |
385 | * Define values to deal with EIGRP virtual router ids. Virtual | |
386 | * router IDs are stored in the upper short of the EIGRP fixed packet | |
387 | * header. The lower short of the packet header continues to be used | |
388 | * as asystem number. | |
389 | * | |
390 | * Virtual Router IDs are PDM-independent. All PDMs will use | |
391 | * VRID_BASE to indicate the 'base' or 'legacy' EIGRP instance. | |
392 | * All PDMs need to initialize their vrid to VRID_BASE for compatibility | |
393 | * with legacy routers. | |
394 | * Once IPv6 supports 'MTR Multicast', it will use the same VRID as | |
395 | * IPv4. No current plans to support VRIDs on IPX. :) | |
396 | * Initial usage of VRID is to signal usage of Multicast topology for | |
397 | * MTR. | |
398 | * | |
399 | * VRID_MCAST is a well known constant, other VRIDs will be determined | |
400 | * programmatic... | |
401 | * | |
402 | * With the addition of SAF the VRID space has been divided into two | |
403 | * segments 0x0000-0x7fff is for EIGRP and vNets, 0x8000-0xffff is | |
404 | * for saf and its associated vNets. | |
405 | */ | |
406 | #define EIGRP_VRID_MASK 0x8001 | |
407 | #define EIGRP_VRID_AF_BASE 0x0000 | |
408 | #define EIGRP_VRID_MCAST_BASE 0x0001 | |
409 | #define EIGRP_VRID_SF_BASE 0x8000 | |
410 | ||
411 | /* Extended Attributes for a destination */ | |
412 | #define EIGRP_ATTR_HDRLEN (2) | |
413 | #define EIGRP_ATTR_MAXDATA (512) | |
414 | ||
415 | #define EIGRP_ATTR_NOOP 0 /*!< No-Op used as offset padding */ | |
416 | #define EIGRP_ATTR_SCALED 1 /*!< Scaled metric values */ | |
417 | #define EIGRP_ATTR_TAG 2 /*!< Tag assigned by Admin for dest */ | |
418 | #define EIGRP_ATTR_COMM 3 /*!< Community attribute for dest */ | |
419 | #define EIGRP_ATTR_JITTER 4 /*!< Variation in path delay */ | |
420 | #define EIGRP_ATTR_QENERGY 5 /*!< Non-Active energy usage along path */ | |
421 | #define EIGRP_ATTR_ENERGY 6 /*!< Active energy usage along path */ | |
422 | ||
423 | /* | |
424 | * Begin EIGRP-BGP interoperability communities | |
425 | */ | |
426 | #define EIGRP_EXTCOMM_SOO_ASFMT 0x0003 /* Site-of-Origin, BGP AS format */ | |
427 | #define EIGRP_EXTCOMM_SOO_ADRFMT 0x0103 /* Site-of-Origin, BGP/EIGRP addr format */ | |
428 | ||
429 | /* | |
430 | * EIGRP Specific communities | |
431 | */ | |
432 | #define EIGRP_EXTCOMM_EIGRP 0x8800 /* EIGRP route information appended*/ | |
433 | #define EIGRP_EXTCOMM_DAD 0x8801 /* EIGRP AS + Delay */ | |
434 | #define EIGRP_EXTCOMM_VRHB 0x8802 /* EIGRP Vector: Reliability + Hop + BW */ | |
435 | #define EIGRP_EXTCOMM_SRLM 0x8803 /* EIGRP System: Reserve +Load + MTU */ | |
436 | #define EIGRP_EXTCOMM_SAR 0x8804 /* EIGRP System: Remote AS + Remote ID */ | |
437 | #define EIGRP_EXTCOMM_RPM 0x8805 /* EIGRP Remote: Protocol + Metric */ | |
438 | #define EIGRP_EXTCOMM_VRR 0x8806 /* EIGRP Vecmet: Rsvd + (internal) Routerid */ | |
439 | ||
7f57883e DS |
440 | /* |
441 | * EIGRP Filter constants | |
442 | */ | |
443 | #define EIGRP_FILTER_IN 0 | |
444 | #define EIGRP_FILTER_OUT 1 | |
445 | #define EIGRP_FILTER_MAX 2 | |
446 | ||
447 | /* | |
448 | * EIGRP Filter constants | |
449 | */ | |
450 | #define EIGRP_HSROLE_DEFAULT EIGRP_HSROLE_SPOKE | |
451 | #define EIGRP_HSROLE_HUB 0x01 | |
452 | #define EIGRP_HSROLE_SPOKE 0x02 | |
453 | ||
454 | #endif /* _ZEBRA_EIGRP_CONST_H_ */ |