]> git.proxmox.com Git - mirror_frr.git/blob - yang/frr-eigrpd.yang
Merge pull request #11752 from opensourcerouting/fix/update_policy_on_filters
[mirror_frr.git] / yang / frr-eigrpd.yang
1 module frr-eigrpd {
2 yang-version 1.1;
3 namespace "http://frrouting.org/yang/eigrpd";
4 prefix frr-eigrpd;
5
6 import ietf-inet-types {
7 prefix inet;
8 }
9 import ietf-yang-types {
10 prefix yang;
11 }
12 import frr-interface {
13 prefix frr-interface;
14 }
15 import frr-vrf {
16 prefix frr-vrf;
17 }
18 import frr-route-map {
19 prefix frr-route-map;
20 }
21 import frr-route-types {
22 prefix frr-route-types;
23 }
24
25 organization "FRRouting";
26 contact
27 "FRR Users List: <mailto:frog@lists.frrouting.org>
28 FRR Development List: <mailto:dev@lists.frrouting.org>";
29 description
30 "This module defines a model for managing FRR eigrpd daemon.
31
32 Copyright 2020 FRRouting
33
34 Redistribution and use in source and binary forms, with or without
35 modification, are permitted provided that the following conditions
36 are met:
37
38 1. Redistributions of source code must retain the above copyright notice,
39 this list of conditions and the following disclaimer.
40
41 2. Redistributions in binary form must reproduce the above copyright
42 notice, this list of conditions and the following disclaimer in the
43 documentation and/or other materials provided with the distribution.
44
45 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
46 \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
47 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
48 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
49 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
56
57 revision 2019-09-09 {
58 description
59 "Changed interface references to use
60 frr-interface:interface-ref typedef";
61 }
62 revision 2019-06-19 {
63 description "Initial revision.";
64 reference
65 "RFC 7868: Cisco's Enhanced Interior Gateway Routing Protocol (EIGRP).";
66 }
67
68 /*
69 * Types specification.
70 */
71 typedef autonomous-system {
72 description "Administrative domain identification for a network";
73 type uint16 {
74 range 1..65535;
75 }
76 }
77
78 typedef authentication-type {
79 description "Authentication types";
80 type enumeration {
81 enum none {
82 description "Don't authenticate";
83 value 0;
84 }
85
86 enum text {
87 description "User defined text";
88 value 1;
89 }
90
91 enum md5 {
92 description "MD5 algorithm";
93 value 2;
94 }
95
96 enum hmac-sha-256 {
97 description "HMAC SHA256 algorithm";
98 value 3;
99 }
100 }
101 }
102
103 /*
104 * EIGRP operational data.
105 */
106 container eigrpd {
107 list instance {
108 key "asn vrf";
109 description "EIGRP autonomous system instance";
110
111 leaf asn {
112 description "Autonomous System Number";
113 type autonomous-system;
114 }
115
116 leaf vrf {
117 description "Virtual Routing Domain name";
118 type frr-vrf:vrf-ref;
119 }
120
121 /*
122 * Configurations.
123 */
124 leaf router-id {
125 description "Router identification";
126 type inet:ipv4-address;
127 }
128
129 leaf-list passive-interface {
130 description "List of suppressed interfaces";
131 type frr-interface:interface-ref;
132 }
133
134 leaf active-time {
135 description "ACTIVE time limit in seconds (0 disables limit)";
136 type uint16 {
137 range "0..65535";
138 }
139 units seconds;
140 default 180;
141 }
142
143 leaf variance {
144 description "Control load balance variance";
145 type uint8 {
146 range "1..128";
147 }
148 }
149
150 leaf maximum-paths {
151 description "Most number of paths to forward packets to";
152 type uint8 {
153 range "1..32";
154 }
155 }
156
157 container metric-weights {
158 description
159 "Metrics and parameters for advertisement.
160
161 EIGRP calculates the composite metric with the following formula:
162
163 metric = 256 * ({(K1*BW) + [(K2*BW)/(256-LOAD)] + (K3*DELAY)} *
164 (K5/(REL+K4)))
165
166 Composite calculation:
167 K5
168 metric =[(K1*Net-Throughput) + Latency)+(K6*ExtAttr)] * ------
169 K4+Rel
170
171 RFC 7868 Sections 5.5 and 5.6.2.5.";
172
173 leaf K1 {
174 description "Bandwidth coefficient.";
175 type uint8 {
176 range "0..255";
177 }
178 }
179
180 leaf K2 {
181 description "Bandwidth on load coefficient.";
182 type uint8 {
183 range "0..255";
184 }
185 }
186
187 leaf K3 {
188 description "Delay or latency-based coefficient.";
189 type uint8 {
190 range "0..255";
191 }
192 }
193
194 leaf K4 {
195 description "Link quality coefficient.";
196 type uint8 {
197 range "0..255";
198 }
199 }
200
201 leaf K5 {
202 description "Packet loss coefficient.";
203 type uint8 {
204 range "0..255";
205 }
206 }
207
208 leaf K6 {
209 description "Jitter coefficient.";
210 type uint8 {
211 range "0..255";
212 }
213 }
214 }
215
216 leaf-list network {
217 description "Enable EIGRP on the specific network";
218 type inet:ipv4-prefix;
219 }
220
221 leaf-list neighbor {
222 description "Specific EIGRP neighbor";
223 type inet:ipv4-address;
224 }
225
226 list redistribute {
227 description "Redistribute routes learned from other routing protocols";
228
229 key "protocol";
230
231 leaf protocol {
232 description "Routing protocol";
233 type frr-route-types:frr-route-types-v4;
234 must '. != "eigrp"';
235 }
236
237 leaf route-map {
238 description
239 "Applies the conditions of the specified route-map to
240 routes that are redistributed into the EIGRP routing
241 instance";
242 type frr-route-map:route-map-ref;
243 }
244
245 container metrics {
246 description "Metric for the redistributed routes";
247
248 leaf bandwidth {
249 description "Bandwidth metric in Kbits per second";
250 type uint32 {
251 range "1..4294967295";
252 }
253 }
254
255 leaf delay {
256 description "Delay metric";
257 units microseconds;
258 type uint32 {
259 range "0..4294967295";
260 }
261 }
262
263 leaf reliability {
264 description "Reliability metric";
265 type uint32 {
266 range "0..255";
267 }
268 }
269
270 leaf load {
271 description "Effective bandwidth usage";
272 type uint32 {
273 range "1..255";
274 }
275 }
276
277 leaf mtu {
278 description "Path Maximum Transmission Unit";
279 type uint32 {
280 range "1..65535";
281 }
282 }
283 }
284 }
285 }
286 }
287
288 /*
289 * EIGRP interface configurations.
290 */
291 augment "/frr-interface:lib/frr-interface:interface" {
292 container eigrp {
293 description "EIGRP interface parameters";
294
295 leaf delay {
296 description "Throughput delay";
297 type uint32 {
298 range "1..16777215";
299 }
300 default 10;
301 }
302
303 leaf bandwidth {
304 description "Interface bandwidth value";
305 type uint32 {
306 range "1..10000000";
307 }
308 default 100000;
309 }
310
311 leaf hello-interval {
312 description "Hello packet interval";
313 type uint16 {
314 range "1..65535";
315 }
316 units seconds;
317 default 5;
318 }
319
320 leaf hold-time {
321 description "Timeout amount to consider neighbor down";
322 type uint16 {
323 range "1..65535";
324 }
325 units seconds;
326 default 15;
327 }
328
329 leaf split-horizon {
330 description "Perform split horizon loop preventing technique";
331 type boolean;
332 default true;
333 }
334
335 /*
336 * Per AS configuration.
337 */
338 list instance {
339 description "Autonomous System specific configuration";
340
341 key "asn";
342
343 leaf asn {
344 description "Autonomous System Number";
345 type autonomous-system;
346 }
347
348 leaf-list summarize-addresses {
349 description "Peform address summarization";
350 type inet:ipv4-prefix;
351 }
352
353 leaf authentication {
354 description "Authentication digest algorithm";
355 type authentication-type;
356 default "none";
357 }
358
359 leaf keychain {
360 description "FRR key chain name to use with authentication";
361 type string;
362 }
363 }
364 }
365 }
366 }