]> git.proxmox.com Git - mirror_frr.git/blame - yang/frr-eigrpd.yang
Merge pull request #6245 from sworleys/NHG-More-Topo
[mirror_frr.git] / yang / frr-eigrpd.yang
CommitLineData
46bd4645
RZ
1module 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-route-types {
16 prefix frr-route-types;
17 }
18
8678d638 19 organization "FRRouting";
46bd4645
RZ
20 contact
21 "FRR Users List: <mailto:frog@lists.frrouting.org>
22 FRR Development List: <mailto:dev@lists.frrouting.org>";
23 description
24 "This module defines a model for managing FRR eigrpd daemon.";
25
f22b9250
QY
26 revision 2019-09-09 {
27 description
28 "Changed interface references to use
29 frr-interface:interface-ref typedef";
30 }
46bd4645
RZ
31 revision 2019-06-19 {
32 description "Initial revision.";
33 reference
34 "RFC 7868: Cisco's Enhanced Interior Gateway Routing Protocol (EIGRP).";
35 }
36
37 /*
38 * Types specification.
39 */
40 typedef autonomous-system {
41 description "Administrative domain identification for a network";
42 type uint16 {
43 range 1..65535;
44 }
45 }
46
47 typedef authentication-type {
48 description "Authentication types";
49 type enumeration {
50 enum none {
51 description "Don't authenticate";
52 value 0;
53 }
54
55 enum text {
56 description "User defined text";
57 value 1;
58 }
59
60 enum md5 {
61 description "MD5 algorithm";
62 value 2;
63 }
64
9008789a 65 enum hmac-sha-256 {
46bd4645
RZ
66 description "HMAC SHA256 algorithm";
67 value 3;
68 }
69 }
70 }
71
72 /*
73 * EIGRP operational data.
74 */
75 container eigrpd {
76 list instance {
77 key "asn vrf";
78 description "EIGRP autonomous system instance";
79
80 leaf asn {
81 description "Autonomous System Number";
82 type autonomous-system;
83 }
84
85 leaf vrf {
86 description "Virtual Routing Domain name";
87 type string {
88 length "0..16";
89 }
90 }
91
92 /*
93 * Configurations.
94 */
95 leaf router-id {
96 description "Router identification";
97 type inet:ipv4-address;
98 }
99
100 leaf-list passive-interface {
101 description "List of suppressed interfaces";
f22b9250 102 type frr-interface:interface-ref;
46bd4645
RZ
103 }
104
105 leaf active-time {
5b768c94 106 description "ACTIVE time limit in seconds (0 disables limit)";
46bd4645
RZ
107 type uint16 {
108 range "0..65535";
109 }
5b768c94
RZ
110 units seconds;
111 default 180;
46bd4645
RZ
112 }
113
114 leaf variance {
115 description "Control load balance variance";
116 type uint8 {
117 range "1..128";
118 }
119 }
120
121 leaf maximum-paths {
122 description "Most number of paths to forward packets to";
123 type uint8 {
124 range "1..32";
125 }
126 }
127
128 container metric-weights {
129 description
130 "Metrics and parameters for advertisement.
131
132 EIGRP calculates the composite metric with the following formula:
133
134 metric = 256 * ({(K1*BW) + [(K2*BW)/(256-LOAD)] + (K3*DELAY)} *
135 (K5/(REL+K4)))
136
137 Composite calculation:
138 K5
139 metric =[(K1*Net-Throughput) + Latency)+(K6*ExtAttr)] * ------
140 K4+Rel
141
142 RFC 7868 Sections 5.5 and 5.6.2.5.";
143
144 leaf K1 {
145 description "Bandwidth coefficient.";
146 type uint8 {
147 range "0..255";
148 }
149 }
150
151 leaf K2 {
152 description "Bandwidth on load coefficient.";
153 type uint8 {
154 range "0..255";
155 }
156 }
157
158 leaf K3 {
159 description "Delay or latency-based coefficient.";
160 type uint8 {
161 range "0..255";
162 }
163 }
164
165 leaf K4 {
166 description "Link quality coefficient.";
167 type uint8 {
168 range "0..255";
169 }
170 }
171
172 leaf K5 {
173 description "Packet loss coefficient.";
174 type uint8 {
175 range "0..255";
176 }
177 }
178
179 leaf K6 {
180 description "Jitter coefficient.";
181 type uint8 {
182 range "0..255";
183 }
184 }
185 }
186
187 leaf-list network {
188 description "Enable EIGRP on the specific network";
189 type inet:ipv4-prefix;
190 }
191
192 leaf-list neighbor {
193 description "Specific EIGRP neighbor";
e2a56663 194 type inet:ipv4-address;
46bd4645
RZ
195 }
196
197 list redistribute {
198 description "Redistribute routes learned from other routing protocols";
199
200 key "protocol";
201
202 leaf protocol {
203 description "Routing protocol";
204 type frr-route-types:frr-route-types-v4;
205 must '. != "eigrp"';
206 }
207
208 leaf route-map {
209 description
210 "Applies the conditions of the specified route-map to
211 routes that are redistributed into the EIGRP routing
212 instance";
213 type string {
214 length "1..max";
215 }
216 }
217
218 container metrics {
219 description "Metric for the redistributed routes";
220
221 leaf bandwidth {
222 description "Bandwidth metric in Kbits per second";
223 type uint32 {
224 range "1..4294967295";
225 }
226 }
227
228 leaf delay {
229 description "Delay metric";
230 units microseconds;
231 type uint32 {
232 range "0..4294967295";
233 }
234 }
235
236 leaf reliability {
237 description "Reliability metric";
238 type uint32 {
239 range "0..255";
240 }
241 }
242
243 leaf load {
244 description "Effective bandwidth usage";
245 type uint32 {
246 range "1..255";
247 }
248 }
249
250 leaf mtu {
251 description "Path Maximum Transmission Unit";
252 type uint32 {
253 range "1..65535";
254 }
255 }
256 }
257 }
258 }
259 }
260
261 /*
262 * EIGRP interface configurations.
263 */
264 augment "/frr-interface:lib/frr-interface:interface" {
265 container eigrp {
266 description "EIGRP interface parameters";
267
268 leaf delay {
269 description "Throughput delay";
270 type uint32 {
271 range "1..16777215";
272 }
273 default 10;
274 }
275
276 leaf bandwidth {
277 description "Interface bandwidth value";
278 type uint32 {
279 range "1..10000000";
280 }
281 default 100000;
282 }
283
284 leaf hello-interval {
285 description "Hello packet interval";
286 type uint16 {
287 range "1..65535";
288 }
289 units seconds;
290 default 5;
291 }
292
293 leaf hold-time {
294 description "Timeout amount to consider neighbor down";
295 type uint16 {
296 range "1..65535";
297 }
298 units seconds;
299 default 15;
300 }
301
302 leaf split-horizon {
303 description "Perform split horizon loop preventing technique";
304 type boolean;
305 default true;
306 }
307
308 /*
309 * Per AS configuration.
310 */
311 list instance {
312 description "Autonomous System specific configuration";
313
314 key "asn";
315
316 leaf asn {
317 description "Autonomous System Number";
318 type autonomous-system;
319 }
320
321 leaf-list summarize-addresses {
322 description "Peform address summarization";
323 type inet:ipv4-prefix;
324 }
325
326 leaf authentication {
327 description "Authentication digest algorithm";
328 type authentication-type;
329 default "none";
330 }
331
332 leaf keychain {
333 description "FRR key chain name to use with authentication";
334 type string;
335 }
336 }
337 }
338 }
339}