/src/frr/yang/frr-bgp-common.yang.c
Line | Count | Source |
1 | | /* autogenerated by embedmodel.py. DO NOT EDIT */ |
2 | | |
3 | | #include <zebra.h> |
4 | | #include "yang.h" |
5 | | |
6 | | static const char model[] = |
7 | | "submodule frr-bgp-common {\n" |
8 | | " yang-version 1.1;\n" |
9 | | "\n" |
10 | | " belongs-to frr-bgp {\n" |
11 | | " prefix \"bgp\";\n" |
12 | | " }\n" |
13 | | "\n" |
14 | | " import ietf-bgp-types {\n" |
15 | | " prefix bt;\n" |
16 | | " }\n" |
17 | | "\n" |
18 | | " import ietf-inet-types {\n" |
19 | | " prefix inet;\n" |
20 | | " }\n" |
21 | | "\n" |
22 | | " import frr-bgp-types {\n" |
23 | | " prefix frr-bt;\n" |
24 | | " }\n" |
25 | | "\n" |
26 | | " import frr-route-map {\n" |
27 | | " prefix frr-route-map;\n" |
28 | | " }\n" |
29 | | "\n" |
30 | | " import frr-route-types {\n" |
31 | | " prefix frr-rt-type;\n" |
32 | | " }\n" |
33 | | "\n" |
34 | | " import frr-vrf {\n" |
35 | | " prefix frr-vrf;\n" |
36 | | " }\n" |
37 | | "\n" |
38 | | " import ietf-routing-types {\n" |
39 | | " prefix rt-types;\n" |
40 | | " }\n" |
41 | | "\n" |
42 | | " import frr-interface {\n" |
43 | | " prefix frr-interface;\n" |
44 | | " }\n" |
45 | | "\n" |
46 | | " organization\n" |
47 | | " \"FRRouting\";\n" |
48 | | " contact\n" |
49 | | " \"FRR Users List: <mailto:frog@lists.frrouting.org> FRR Development\n" |
50 | | " List: <mailto:dev@lists.frrouting.org>\";\n" |
51 | | " description\n" |
52 | | " \"This submodule contains general data definitions for use in BGP.\n" |
53 | | "\n" |
54 | | " Copyright 2020 FRRouting\n" |
55 | | "\n" |
56 | | " Redistribution and use in source and binary forms, with or without\n" |
57 | | " modification, are permitted provided that the following conditions\n" |
58 | | " are met:\n" |
59 | | "\n" |
60 | | " 1. Redistributions of source code must retain the above copyright notice,\n" |
61 | | " this list of conditions and the following disclaimer.\n" |
62 | | "\n" |
63 | | " 2. Redistributions in binary form must reproduce the above copyright\n" |
64 | | " notice, this list of conditions and the following disclaimer in the\n" |
65 | | " documentation and/or other materials provided with the distribution.\n" |
66 | | "\n" |
67 | | " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" |
68 | | " \\\"AS IS\\\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" |
69 | | " LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" |
70 | | " A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n" |
71 | | " HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n" |
72 | | " SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n" |
73 | | " LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n" |
74 | | " DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n" |
75 | | " THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n" |
76 | | " (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n" |
77 | | " OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\";\n" |
78 | | "\n" |
79 | | " revision 2019-12-03 {\n" |
80 | | " description\n" |
81 | | " \"Initial revision.\";\n" |
82 | | " }\n" |
83 | | "\n" |
84 | | " grouping rmap-policy-import {\n" |
85 | | " leaf rmap-import {\n" |
86 | | " type frr-route-map:route-map-ref;\n" |
87 | | " }\n" |
88 | | " }\n" |
89 | | "\n" |
90 | | " grouping rmap-policy-export {\n" |
91 | | " leaf rmap-export {\n" |
92 | | " type frr-route-map:route-map-ref;\n" |
93 | | " }\n" |
94 | | " }\n" |
95 | | "\n" |
96 | | " grouping unsuppress-map-policy-import {\n" |
97 | | " leaf unsuppress-map-import {\n" |
98 | | " type frr-route-map:route-map-ref;\n" |
99 | | " }\n" |
100 | | " }\n" |
101 | | "\n" |
102 | | " grouping unsuppress-map-policy-export {\n" |
103 | | " leaf unsuppress-map-export {\n" |
104 | | " type frr-route-map:route-map-ref;\n" |
105 | | " }\n" |
106 | | " }\n" |
107 | | "\n" |
108 | | " grouping plist-policy-import {\n" |
109 | | " leaf plist-import {\n" |
110 | | " type frr-bt:plist-ref;\n" |
111 | | " }\n" |
112 | | " }\n" |
113 | | "\n" |
114 | | " grouping plist-policy-export {\n" |
115 | | " leaf plist-export {\n" |
116 | | " type frr-bt:plist-ref;\n" |
117 | | " }\n" |
118 | | " }\n" |
119 | | "\n" |
120 | | " grouping access-list-policy-import {\n" |
121 | | " leaf access-list-import {\n" |
122 | | " type frr-bt:access-list-ref;\n" |
123 | | " }\n" |
124 | | " }\n" |
125 | | "\n" |
126 | | " grouping access-list-policy-export {\n" |
127 | | " leaf access-list-export {\n" |
128 | | " type frr-bt:access-list-ref;\n" |
129 | | " }\n" |
130 | | " }\n" |
131 | | "\n" |
132 | | " grouping as-path-filter-list-policy-import {\n" |
133 | | " leaf as-path-filter-list-import {\n" |
134 | | " type frr-bt:as-path-filter-ref;\n" |
135 | | " }\n" |
136 | | " }\n" |
137 | | "\n" |
138 | | " grouping as-path-filter-list-policy-export {\n" |
139 | | " leaf as-path-filter-list-export {\n" |
140 | | " type frr-bt:as-path-filter-ref;\n" |
141 | | " }\n" |
142 | | " }\n" |
143 | | "\n" |
144 | | " grouping route-selection-options {\n" |
145 | | " description\n" |
146 | | " \"Configuration relating to route selection options.\";\n" |
147 | | " container route-selection-options {\n" |
148 | | " description\n" |
149 | | " \"Parameters relating to options for route selection.\";\n" |
150 | | " leaf always-compare-med {\n" |
151 | | " type boolean;\n" |
152 | | " default \"false\";\n" |
153 | | " description\n" |
154 | | " \"Compare multi-exit discriminator (MED) value from\n" |
155 | | " different ASes when selecting the best route. The\n" |
156 | | " default behaviour is to only compare MEDs for paths\n" |
157 | | " received from the same AS.\";\n" |
158 | | " }\n" |
159 | | "\n" |
160 | | " leaf deterministic-med {\n" |
161 | | " type boolean;\n" |
162 | | " default \"false\";\n" |
163 | | " description\n" |
164 | | " \"Compare multi-exit discriminator (MED) value from\n" |
165 | | " Same ASes when selecting the best route.\";\n" |
166 | | " }\n" |
167 | | "\n" |
168 | | " leaf confed-med {\n" |
169 | | " type boolean;\n" |
170 | | " default \"false\";\n" |
171 | | " description\n" |
172 | | " \"Compare multi-exit discriminator (MED) value from\n" |
173 | | " different Sub ASes when selecting the best route.\";\n" |
174 | | " }\n" |
175 | | "\n" |
176 | | " leaf missing-as-worst-med {\n" |
177 | | " type boolean;\n" |
178 | | " default \"false\";\n" |
179 | | " description\n" |
180 | | " \"Missing multi-exit discriminator (MED) value is\n" |
181 | | " considered as value of infinity, making the path\n" |
182 | | " least desirable when selecting the best route.\";\n" |
183 | | " }\n" |
184 | | "\n" |
185 | | " leaf aspath-confed {\n" |
186 | | " type boolean;\n" |
187 | | " default \"false\";\n" |
188 | | " description\n" |
189 | | " \"Compare path lengths including confederation sets\n" |
190 | | " and sequences in selecting a route.\";\n" |
191 | | " }\n" |
192 | | "\n" |
193 | | " leaf ignore-as-path-length {\n" |
194 | | " type boolean;\n" |
195 | | " default \"false\";\n" |
196 | | " description\n" |
197 | | " \"Ignore the AS path length when selecting the best path.\n" |
198 | | " The default is to use the AS path length and prefer paths\n" |
199 | | " with shorter length.\";\n" |
200 | | " }\n" |
201 | | "\n" |
202 | | " leaf external-compare-router-id {\n" |
203 | | " type boolean;\n" |
204 | | " default \"false\";\n" |
205 | | " description\n" |
206 | | " \"When comparing similar routes received from external BGP\n" |
207 | | " peers, use the router-id as a criterion to select the\n" |
208 | | " active path.\";\n" |
209 | | " }\n" |
210 | | "\n" |
211 | | " leaf allow-multiple-as {\n" |
212 | | " type boolean;\n" |
213 | | " default \"false\";\n" |
214 | | " description\n" |
215 | | " \"Allow multi-path to use paths from different neighbouring\n" |
216 | | " ASes. The default is to only consider multiple paths\n" |
217 | | " from the same neighbouring AS.\";\n" |
218 | | " }\n" |
219 | | "\n" |
220 | | " leaf multi-path-as-set {\n" |
221 | | " when \"../allow-multiple-as = \'true\'\";\n" |
222 | | " type boolean;\n" |
223 | | " default \"false\";\n" |
224 | | " description\n" |
225 | | " \"Multi-path with AS-SET, When set to \'true\' it adds AS set\n" |
226 | | " information for aggregate routes, When set to \'false\' it\n" |
227 | | " prevents AS set generation.\";\n" |
228 | | " }\n" |
229 | | " }\n" |
230 | | " }\n" |
231 | | "\n" |
232 | | " grouping med-config {\n" |
233 | | " description\n" |
234 | | " \"Configuration relating to MED.\";\n" |
235 | | " container med-config {\n" |
236 | | " leaf enable-med-admin {\n" |
237 | | " type boolean;\n" |
238 | | " default \"false\";\n" |
239 | | " description\n" |
240 | | " \"Flag to enable receiving of MED metric attribute\n" |
241 | | " in routing updates.\";\n" |
242 | | " }\n" |
243 | | " leaf max-med-admin {\n" |
244 | | " type uint32 {\n" |
245 | | " range \"0..4294967295\";\n" |
246 | | " }\n" |
247 | | " default \"4294967294\";\n" |
248 | | " description\n" |
249 | | " \"Tells the router to announce routes with this MED value\n" |
250 | | " This MED value is applicable for indefinite time.\";\n" |
251 | | " }\n" |
252 | | "\n" |
253 | | " leaf max-med-onstart-up-time {\n" |
254 | | " type uint32 {\n" |
255 | | " range \"5..86400\";\n" |
256 | | " }\n" |
257 | | " units \"seconds\";\n" |
258 | | " description\n" |
259 | | " \"Tells the router to announce routes with MED value,\n" |
260 | | " This MED value is applicable for this duration during\n" |
261 | | " start-up.\";\n" |
262 | | " }\n" |
263 | | "\n" |
264 | | " leaf max-med-onstart-up-value {\n" |
265 | | " type uint32 {\n" |
266 | | " range \"0..4294967295\";\n" |
267 | | " }\n" |
268 | | " default \"4294967294\";\n" |
269 | | " description\n" |
270 | | " \"Tells the router to announce routes with this MED value\n" |
271 | | " This MED value is applicable for start-up time.\";\n" |
272 | | " }\n" |
273 | | " }\n" |
274 | | " }\n" |
275 | | "\n" |
276 | | " grouping route-reflector-config {\n" |
277 | | " description\n" |
278 | | " \"Grouping used to include route reflector\n" |
279 | | " configuration for BGP global.\";\n" |
280 | | " container route-reflector {\n" |
281 | | " description\n" |
282 | | " \"Route reflector parameters for the BGP global.\";\n" |
283 | | " leaf route-reflector-cluster-id {\n" |
284 | | " type bt:rr-cluster-id-type;\n" |
285 | | " description\n" |
286 | | " \"Route Reflector cluster ID to use when local router is\n" |
287 | | " configured as a route reflector. Commonly set at the\n" |
288 | | " group level, but allows a different cluster ID to be set\n" |
289 | | " for each neighbor.\";\n" |
290 | | " reference\n" |
291 | | " \"RFC 4456: BGP Route Reflection: An Alternative to\n" |
292 | | " Full Mesh.\";\n" |
293 | | " }\n" |
294 | | "\n" |
295 | | " leaf no-client-reflect {\n" |
296 | | " type boolean;\n" |
297 | | " default \"false\";\n" |
298 | | " description\n" |
299 | | " \"When set to \'true\', this disables route redistribution\n" |
300 | | " by the Route Reflector. It is set \'true\' when the client is\n" |
301 | | " fully meshed to prevent sending of redundant route\n" |
302 | | " advertisements.\";\n" |
303 | | " reference\n" |
304 | | " \"TODO: Add reference when IETF writes a draft describing\n" |
305 | | " this.\";\n" |
306 | | " }\n" |
307 | | "\n" |
308 | | " leaf allow-outbound-policy {\n" |
309 | | " type boolean;\n" |
310 | | " default \"false\";\n" |
311 | | " description\n" |
312 | | " \"When set to \'true\', this allow RR to modify the attributes of the\n" |
313 | | " reflected IBGP routes as per the out route-map. It is set \'false\'\n" |
314 | | " RR will not modify the attributes of the reflected IBGP routes as\n" |
315 | | " per the out route-map rules.\";\n" |
316 | | " }\n" |
317 | | " }\n" |
318 | | " }\n" |
319 | | "\n" |
320 | | " grouping global-bgp-config {\n" |
321 | | " leaf instance-type-view {\n" |
322 | | " type boolean;\n" |
323 | | " default \"false\";\n" |
324 | | " description\n" |
325 | | " \"When set to \'true\' BGP instance type is view.\n" |
326 | | " When set to \'false\' BGP instance type is regular.\";\n" |
327 | | " }\n" |
328 | | "\n" |
329 | | " leaf ebgp-multihop-connected-route-check {\n" |
330 | | " type boolean;\n" |
331 | | " default \"false\";\n" |
332 | | " description\n" |
333 | | " \"When set to \'true\' it will disable checking if nexthop is connected\n" |
334 | | " on EBGP sessions. When set to \'false\' it will enable checking if\n" |
335 | | " nexthop is connected on EBGP sessions.\";\n" |
336 | | " }\n" |
337 | | "\n" |
338 | | " leaf fast-external-failover {\n" |
339 | | " type boolean;\n" |
340 | | " default \"true\";\n" |
341 | | " description\n" |
342 | | " \"It\'s an interface tracking mechanism. When set to \'true\' don\'t\n" |
343 | | " immediately reset session if a link to a directly connected\n" |
344 | | " external peer goes down. When set to \'false\' it will immediately\n" |
345 | | " reset session if a link to a directly connected external peer goes down.\";\n" |
346 | | " }\n" |
347 | | "\n" |
348 | | " leaf local-pref {\n" |
349 | | " type uint32;\n" |
350 | | " default \"100\";\n" |
351 | | " description\n" |
352 | | " \"BGP local preference attribute sent to internal peers to\n" |
353 | | " indicate the degree of preference for externally learned\n" |
354 | | " routes. The route with the highest local preference\n" |
355 | | " value is preferred.\";\n" |
356 | | " reference\n" |
357 | | " \"RFC 4271.\";\n" |
358 | | " }\n" |
359 | | "\n" |
360 | | " leaf default-shutdown {\n" |
361 | | " type boolean;\n" |
362 | | " default \"false\";\n" |
363 | | " description\n" |
364 | | " \"Apply administrative shutdown to newly configured peers.\";\n" |
365 | | " }\n" |
366 | | "\n" |
367 | | " leaf suppress-duplicates {\n" |
368 | | " type boolean;\n" |
369 | | " default \"true\";\n" |
370 | | " description\n" |
371 | | " \"Suppress duplicate updates if the route actually not changed.\";\n" |
372 | | " }\n" |
373 | | "\n" |
374 | | " leaf ebgp-requires-policy {\n" |
375 | | " type boolean;\n" |
376 | | " default \"true\";\n" |
377 | | " description\n" |
378 | | " \"When set to \'true\' BGP speaker requires in and out policy\n" |
379 | | " for EBGP peers (RFC8212).\";\n" |
380 | | " }\n" |
381 | | "\n" |
382 | | " leaf show-hostname {\n" |
383 | | " type boolean;\n" |
384 | | " default \"false\";\n" |
385 | | " description\n" |
386 | | " \"When set to \'true\' BGP show hostname in certain command outputs.\";\n" |
387 | | " }\n" |
388 | | "\n" |
389 | | " leaf show-nexthop-hostname {\n" |
390 | | " type boolean;\n" |
391 | | " default \"false\";\n" |
392 | | " description\n" |
393 | | " \"When set to \'true\' BGP show hostname for nexthop in certain\n" |
394 | | " command outputs.\";\n" |
395 | | " }\n" |
396 | | " }\n" |
397 | | "\n" |
398 | | " grouping global-neighbor-config {\n" |
399 | | " container global-neighbor-config {\n" |
400 | | " leaf dynamic-neighbors-limit {\n" |
401 | | " type uint32 {\n" |
402 | | " range \"1..65535\";\n" |
403 | | " }\n" |
404 | | " description\n" |
405 | | " \"Maximum number of BGP Dynamic Neighbors that can be created.\";\n" |
406 | | " }\n" |
407 | | "\n" |
408 | | " leaf log-neighbor-changes {\n" |
409 | | " type boolean;\n" |
410 | | " default \"false\";\n" |
411 | | " description\n" |
412 | | " \"When set to \'true\' BGP will start logging neighbor up/down and reset reason.\n" |
413 | | " When set to \'false\' BGP will stop logging neighbor up/down and reset reason.\";\n" |
414 | | " }\n" |
415 | | "\n" |
416 | | " container packet-quanta-config {\n" |
417 | | " leaf wpkt-quanta {\n" |
418 | | " type uint32 {\n" |
419 | | " range \"1..64\";\n" |
420 | | " }\n" |
421 | | " default \"64\";\n" |
422 | | " description\n" |
423 | | " \"How many packets to write to peer socket per run.\";\n" |
424 | | " }\n" |
425 | | "\n" |
426 | | " leaf rpkt-quanta {\n" |
427 | | " type uint32 {\n" |
428 | | " range \"1..10\";\n" |
429 | | " }\n" |
430 | | " default \"10\";\n" |
431 | | " description\n" |
432 | | " \"How many packets to read from peer socket per I/O cycle.\";\n" |
433 | | " }\n" |
434 | | " }\n" |
435 | | " }\n" |
436 | | " }\n" |
437 | | "\n" |
438 | | " grouping global-update-group-config {\n" |
439 | | " container global-update-group-config {\n" |
440 | | " leaf subgroup-pkt-queue-size {\n" |
441 | | " type uint32 {\n" |
442 | | " range \"20..100\";\n" |
443 | | " }\n" |
444 | | " default \"40\";\n" |
445 | | " description\n" |
446 | | " \"Subgroup packet queue size.\";\n" |
447 | | " }\n" |
448 | | "\n" |
449 | | " leaf coalesce-time {\n" |
450 | | " type uint32 {\n" |
451 | | " range \"0..4294967295\";\n" |
452 | | " }\n" |
453 | | " units \"milliseconds\";\n" |
454 | | " default \"1000\";\n" |
455 | | " description\n" |
456 | | " \"Configures the Subgroup coalesce timer.\";\n" |
457 | | " }\n" |
458 | | " }\n" |
459 | | " }\n" |
460 | | "\n" |
461 | | " grouping global-network-config {\n" |
462 | | " leaf import-check {\n" |
463 | | " type boolean;\n" |
464 | | " default \"true\";\n" |
465 | | " description\n" |
466 | | " \"When set to \'true\' bgp creates entries for network statements\n" |
467 | | " if a matching prefix exists in the rib. When set to \'false\' bgp\n" |
468 | | " creates entries for networks that the router cannot reach.\n" |
469 | | "\n" |
470 | | " In FRR versions < 7.4 this used to default to \'false\' this is an\n" |
471 | | " incompatible backward change\";\n" |
472 | | " }\n" |
473 | | " }\n" |
474 | | "\n" |
475 | | " grouping neighbor-timers {\n" |
476 | | " leaf hold-time {\n" |
477 | | " type uint16 {\n" |
478 | | " range \"0 | 3..65535\";\n" |
479 | | " }\n" |
480 | | " units \"seconds\";\n" |
481 | | " default \"180\";\n" |
482 | | " description\n" |
483 | | " \"Time interval (in seconds) for the HoldTimer established\n" |
484 | | " with the peer. When read as operational data (ro), the\n" |
485 | | " value of this object is calculated by this BGP speaker,\n" |
486 | | " using the smaller of the values in hold-time that was\n" |
487 | | " configured (rw) in the running datastore and the Hold Time\n" |
488 | | " received in the OPEN message.\n" |
489 | | "\n" |
490 | | " This value must be at least three seconds\n" |
491 | | " if it is not zero (0).\n" |
492 | | "\n" |
493 | | " If the Hold Timer has not been established\n" |
494 | | " with the peer this object MUST have a value\n" |
495 | | " of zero (0).\n" |
496 | | "\n" |
497 | | " If the configured value of hold-time object was\n" |
498 | | " a value of (0), then when read this object MUST have a\n" |
499 | | " value of (0) also.\";\n" |
500 | | " reference\n" |
501 | | " \"RFC 4271\";\n" |
502 | | " }\n" |
503 | | "\n" |
504 | | " leaf keepalive {\n" |
505 | | " type uint16 {\n" |
506 | | " range \"0..65535\";\n" |
507 | | " }\n" |
508 | | " units \"seconds\";\n" |
509 | | " default \"60\";\n" |
510 | | " description\n" |
511 | | " \"When used as a configuration (rw) value, this Time interval\n" |
512 | | " (in seconds) for the KeepAlive timer configured for this BGP\n" |
513 | | " speaker with this peer. The value of this object will only\n" |
514 | | " determine the KEEPALIVE messages\' frequency relative to\n" |
515 | | " the value specified in configured value for hold-time.\n" |
516 | | "\n" |
517 | | " If the value of this object is zero (0), no periodical\n" |
518 | | " KEEPALIVE messages are sent to the peer after the BGP\n" |
519 | | " connection has been established. The suggested value for\n" |
520 | | " this timer is 30 seconds.;\n" |
521 | | "\n" |
522 | | " The actual time interval for the KEEPALIVE messages is\n" |
523 | | " indicated by operational value of keepalive. That value\n" |
524 | | " of this object is calculated by this BGP speaker such that,\n" |
525 | | " when compared with hold-time, it has the same proportion\n" |
526 | | " that keepalive has, compared with hold-time. A\n" |
527 | | " reasonable maximum value for this timer would be one third\n" |
528 | | " of that of hold-time.\";\n" |
529 | | " reference\n" |
530 | | " \"RFC 4271\";\n" |
531 | | " }\n" |
532 | | " }\n" |
533 | | "\n" |
534 | | " grouping global-config-timers {\n" |
535 | | " container global-config-timers {\n" |
536 | | " leaf rmap-delay-time {\n" |
537 | | " type uint16 {\n" |
538 | | " range \"0..600\";\n" |
539 | | " }\n" |
540 | | " units \"seconds\";\n" |
541 | | " default \"5\";\n" |
542 | | " description\n" |
543 | | " \"Time to wait before processing route-map changes.\";\n" |
544 | | " }\n" |
545 | | "\n" |
546 | | " leaf update-delay-time {\n" |
547 | | " type uint16 {\n" |
548 | | " range \"0..3600\";\n" |
549 | | " }\n" |
550 | | " units \"seconds\";\n" |
551 | | " description\n" |
552 | | " \"Time to force initial delay for best-path and updates.\";\n" |
553 | | " }\n" |
554 | | "\n" |
555 | | " leaf establish-wait-time {\n" |
556 | | " type uint16 {\n" |
557 | | " range \"1..3600\";\n" |
558 | | " }\n" |
559 | | " units \"seconds\";\n" |
560 | | " description\n" |
561 | | " \"Time to force initial delay for updates.\";\n" |
562 | | " }\n" |
563 | | "\n" |
564 | | " leaf connect-retry-interval {\n" |
565 | | " type uint16 {\n" |
566 | | " range \"1..max\";\n" |
567 | | " }\n" |
568 | | " units \"seconds\";\n" |
569 | | " default \"120\";\n" |
570 | | " description\n" |
571 | | " \"Time interval (in seconds) for the ConnectRetryTimer. The\n" |
572 | | " suggested value for this timer is 120 seconds.\";\n" |
573 | | " reference\n" |
574 | | " \"RFC 4271, This is the value used\n" |
575 | | " to initialize the \'ConnectRetryTimer\'.\";\n" |
576 | | " }\n" |
577 | | "\n" |
578 | | " uses neighbor-timers;\n" |
579 | | " }\n" |
580 | | " }\n" |
581 | | "\n" |
582 | | " grouping graceful-restart-config {\n" |
583 | | " description\n" |
584 | | " \"Configuration parameters relating to BGP graceful restart.\";\n" |
585 | | " choice mode {\n" |
586 | | " case graceful-restart-mode {\n" |
587 | | " leaf enabled {\n" |
588 | | " type boolean;\n" |
589 | | " default \"false\";\n" |
590 | | " description\n" |
591 | | " \"Enable or disable the graceful-restart capability. When set to \'true\'\n" |
592 | | " it will enable graceful restart and helper both globally. When set\n" |
593 | | " to \'false\' it will enable the default behaviour global helper mode.\";\n" |
594 | | " }\n" |
595 | | " }\n" |
596 | | "\n" |
597 | | " case graceful-restart-disable-mode {\n" |
598 | | " leaf graceful-restart-disable {\n" |
599 | | " type boolean;\n" |
600 | | " default \"false\";\n" |
601 | | " description\n" |
602 | | " \"When set to \'true\' it will disable graceful restart and helper both\n" |
603 | | " globally. when set to \'false\' it will enable the default behaviour\n" |
604 | | " global helper mode.\";\n" |
605 | | " }\n" |
606 | | " }\n" |
607 | | " }\n" |
608 | | "\n" |
609 | | " leaf preserve-fw-entry {\n" |
610 | | " type boolean;\n" |
611 | | " default \"false\";\n" |
612 | | " description\n" |
613 | | " \"Sets F-bit indication that fib is preserved while doing Graceful Restart.\n" |
614 | | " When set to \'true\' Zebra would preserve the FIB entry on the restarting\n" |
615 | | " node.\";\n" |
616 | | " }\n" |
617 | | "\n" |
618 | | " leaf restart-time {\n" |
619 | | " type uint16 {\n" |
620 | | " range \"1..3600\";\n" |
621 | | " }\n" |
622 | | " units \"seconds\";\n" |
623 | | " default \"120\";\n" |
624 | | " description\n" |
625 | | " \"Estimated time (in seconds) for the local BGP speaker to\n" |
626 | | " restart a session. This value is advertise in the graceful\n" |
627 | | " restart BGP capability. This is a 12-bit value, referred to\n" |
628 | | " as Restart Time in RFC4724. Per RFC4724, the suggested\n" |
629 | | " default value is <= the hold-time value. This timer is\n" |
630 | | " applicable for helper node.\";\n" |
631 | | " reference\n" |
632 | | " \"RFC 4724: Graceful Restart Mechanism for BGP.\";\n" |
633 | | " }\n" |
634 | | "\n" |
635 | | " leaf stale-routes-time {\n" |
636 | | " type uint16 {\n" |
637 | | " range \"1..3600\";\n" |
638 | | " }\n" |
639 | | " units \"seconds\";\n" |
640 | | " default \"360\";\n" |
641 | | " description\n" |
642 | | " \"An upper-bound on the time that stale routes will be\n" |
643 | | " retained by a router after a session is restarted. If an\n" |
644 | | " End-of-RIB (EOR) marker is received prior to this timer\n" |
645 | | " expiring stale-routes will be flushed upon its receipt - if\n" |
646 | | " no EOR is received, then when this timer expires stale paths\n" |
647 | | " will be purged. This timer is applicable for restarting node.\";\n" |
648 | | " reference\n" |
649 | | " \"RFC 4724: Graceful Restart Mechanism for BGP.\";\n" |
650 | | " }\n" |
651 | | "\n" |
652 | | " leaf selection-deferral-time {\n" |
653 | | " type uint16 {\n" |
654 | | " range \"0..3600\";\n" |
655 | | " }\n" |
656 | | " units \"seconds\";\n" |
657 | | " default \"360\";\n" |
658 | | " description\n" |
659 | | " \"An upper-bound on the time that restarting router defers\n" |
660 | | " the route selection process after restart.\";\n" |
661 | | " reference\n" |
662 | | " \"RFC 4724: Graceful Restart Mechanism for BGP.\";\n" |
663 | | " }\n" |
664 | | "\n" |
665 | | " leaf rib-stale-time {\n" |
666 | | " type uint16 {\n" |
667 | | " range \"1..3600\";\n" |
668 | | " }\n" |
669 | | " units \"seconds\";\n" |
670 | | " default \"500\";\n" |
671 | | " description\n" |
672 | | " \"An upper-bound on the time that helper router holds the\n" |
673 | | " stale routes in Zebra, When this timer gets expired Zebra\n" |
674 | | " removes the stale routes.\";\n" |
675 | | " }\n" |
676 | | " }\n" |
677 | | "\n" |
678 | | " grouping global-group-use-multiple-paths {\n" |
679 | | " description\n" |
680 | | " \"Common grouping used for both global and groups which provides\n" |
681 | | " configuration parameters relating to use of multiple paths.\";\n" |
682 | | " container use-multiple-paths {\n" |
683 | | " description\n" |
684 | | " \"Parameters related to the use of multiple paths for the\n" |
685 | | " same NLRI.\";\n" |
686 | | " container ebgp {\n" |
687 | | " description\n" |
688 | | " \"Multi-Path parameters for EBGP.\";\n" |
689 | | " leaf maximum-paths {\n" |
690 | | " type uint16;\n" |
691 | | " default \"64\";\n" |
692 | | " description\n" |
693 | | " \"Maximum number of parallel paths to consider when using\n" |
694 | | " BGP multi-path. The default is use a single path.\";\n" |
695 | | " }\n" |
696 | | " }\n" |
697 | | "\n" |
698 | | " container ibgp {\n" |
699 | | " description\n" |
700 | | " \"Multi-Path parameters for IBGP.\";\n" |
701 | | " leaf maximum-paths {\n" |
702 | | " type uint16;\n" |
703 | | " default \"64\";\n" |
704 | | " description\n" |
705 | | " \"Maximum number of parallel paths to consider when using\n" |
706 | | " IBGP multi-path. The default is to use a single path.\";\n" |
707 | | " }\n" |
708 | | "\n" |
709 | | " leaf cluster-length-list {\n" |
710 | | " when \"../maximum-paths != 0\";\n" |
711 | | " type boolean;\n" |
712 | | " default \"false\";\n" |
713 | | " description\n" |
714 | | " \"When set to \'true\' route with the shortest cluster-list\n" |
715 | | " length is used. The cluster-list reflects the IBGP\n" |
716 | | " reflection path the route has taken. It\'s the part\n" |
717 | | " of route selection algo.\";\n" |
718 | | " }\n" |
719 | | " }\n" |
720 | | " }\n" |
721 | | " }\n" |
722 | | "\n" |
723 | | " grouping global-redistribute {\n" |
724 | | " description\n" |
725 | | " \"List of route redistribution per AFI.\";\n" |
726 | | " list redistribution-list {\n" |
727 | | " key \"route-type route-instance\";\n" |
728 | | " leaf route-type {\n" |
729 | | " type frr-rt-type:frr-route-types;\n" |
730 | | " description\n" |
731 | | " \"Protocol route type.\";\n" |
732 | | " }\n" |
733 | | "\n" |
734 | | " leaf route-instance {\n" |
735 | | " type uint16 {\n" |
736 | | " range \"0..65535\";\n" |
737 | | " }\n" |
738 | | " description\n" |
739 | | " \"Protocol Instance.\";\n" |
740 | | " }\n" |
741 | | "\n" |
742 | | " leaf metric {\n" |
743 | | " type uint32 {\n" |
744 | | " range \"0..4294967295\";\n" |
745 | | " }\n" |
746 | | " description\n" |
747 | | " \"Metric for redistributed routes.\";\n" |
748 | | " }\n" |
749 | | "\n" |
750 | | " leaf rmap-policy-import {\n" |
751 | | " type frr-route-map:route-map-ref;\n" |
752 | | " description\n" |
753 | | " \"Route-map to be applied for redistributed routes into the bgp.\";\n" |
754 | | " }\n" |
755 | | " }\n" |
756 | | " }\n" |
757 | | "\n" |
758 | | " grouping mp-afi-safi-network-config {\n" |
759 | | " leaf label-index {\n" |
760 | | " type rt-types:mpls-label;\n" |
761 | | " description\n" |
762 | | " \"Label index to associate with the prefix.\";\n" |
763 | | " }\n" |
764 | | "\n" |
765 | | " leaf rmap-policy-export {\n" |
766 | | " type frr-route-map:route-map-ref;\n" |
767 | | " description\n" |
768 | | " \"Route-map to modify the attributes for Routes going out\n" |
769 | | " via BGP updates.\";\n" |
770 | | " }\n" |
771 | | " }\n" |
772 | | "\n" |
773 | | " grouping mp-afi-safi-agg-route-config {\n" |
774 | | " leaf as-set {\n" |
775 | | " type boolean;\n" |
776 | | " default \"false\";\n" |
777 | | " description\n" |
778 | | " \"When set to \'true\' AS set path information is generated\n" |
779 | | " for aggregate address. When set to \'false\' AS set path\n" |
780 | | " information is not generated.\";\n" |
781 | | " }\n" |
782 | | "\n" |
783 | | " leaf summary-only {\n" |
784 | | " type boolean;\n" |
785 | | " default \"false\";\n" |
786 | | " description\n" |
787 | | " \"When set to \'true\' it advertise only the aggregate route\n" |
788 | | " and suppress the advertisement of all the component routes.\n" |
789 | | " When set to \'false\' all more-specific routes summarized\n" |
790 | | " by the aggregate route are advertised.\";\n" |
791 | | " }\n" |
792 | | "\n" |
793 | | " leaf rmap-policy-export {\n" |
794 | | " type frr-route-map:route-map-ref;\n" |
795 | | " description\n" |
796 | | " \"Apply route map to aggregate network.\";\n" |
797 | | " }\n" |
798 | | "\n" |
799 | | " leaf origin {\n" |
800 | | " type enumeration {\n" |
801 | | " enum \"igp\" {\n" |
802 | | " value 0;\n" |
803 | | " description\n" |
804 | | " \"Local IGP.\";\n" |
805 | | " }\n" |
806 | | " enum \"egp\" {\n" |
807 | | " value 1;\n" |
808 | | " description\n" |
809 | | " \"Remote EGP.\";\n" |
810 | | " }\n" |
811 | | " enum \"incomplete\" {\n" |
812 | | " value 2;\n" |
813 | | " description\n" |
814 | | " \"Unknown heritage.\";\n" |
815 | | " }\n" |
816 | | " enum \"unspecified\" {\n" |
817 | | " value 255;\n" |
818 | | " description\n" |
819 | | " \"Unspecified.\";\n" |
820 | | " }\n" |
821 | | " }\n" |
822 | | " default \"unspecified\";\n" |
823 | | " description\n" |
824 | | " \"BGP origin type.\";\n" |
825 | | " }\n" |
826 | | "\n" |
827 | | " leaf match-med {\n" |
828 | | " type boolean;\n" |
829 | | " default \"false\";\n" |
830 | | " description\n" |
831 | | " \"When set to \'true\' aggregate-route matches only\n" |
832 | | " med.\";\n" |
833 | | " }\n" |
834 | | "\n" |
835 | | " leaf suppress-map {\n" |
836 | | " type string;\n" |
837 | | " description\n" |
838 | | " \"Suppress more specific routes specified in route-map.\";\n" |
839 | | " }\n" |
840 | | " }\n" |
841 | | "\n" |
842 | | " grouping admin-distance {\n" |
843 | | " container admin-distance {\n" |
844 | | " description\n" |
845 | | " \"Administrative distance (or preference) assigned to\n" |
846 | | " routes received from different sources\n" |
847 | | " (external, internal, and local).\";\n" |
848 | | " leaf external {\n" |
849 | | " type uint8 {\n" |
850 | | " range \"1..255\";\n" |
851 | | " }\n" |
852 | | " default \"20\";\n" |
853 | | " description\n" |
854 | | " \"Administrative distance for routes learned from\n" |
855 | | " external BGP (EBGP).\";\n" |
856 | | " }\n" |
857 | | "\n" |
858 | | " leaf internal {\n" |
859 | | " type uint8 {\n" |
860 | | " range \"1..255\";\n" |
861 | | " }\n" |
862 | | " default \"200\";\n" |
863 | | " description\n" |
864 | | " \"Administrative distance for routes learned from\n" |
865 | | " internal BGP (IBGP).\";\n" |
866 | | " }\n" |
867 | | "\n" |
868 | | " leaf local {\n" |
869 | | " type uint8 {\n" |
870 | | " range \"1..255\";\n" |
871 | | " }\n" |
872 | | " default \"200\";\n" |
873 | | " description\n" |
874 | | " \"Administrative distance for routes learned from\n" |
875 | | " local.\";\n" |
876 | | " }\n" |
877 | | " }\n" |
878 | | " }\n" |
879 | | "\n" |
880 | | " grouping distance-per-route-config {\n" |
881 | | " leaf distance {\n" |
882 | | " type uint8 {\n" |
883 | | " range \"1..255\";\n" |
884 | | " }\n" |
885 | | " mandatory true;\n" |
886 | | " description\n" |
887 | | " \"Administrative distance for route.\";\n" |
888 | | " }\n" |
889 | | "\n" |
890 | | " leaf access-list-policy-export {\n" |
891 | | " type frr-bt:access-list-ref;\n" |
892 | | " description\n" |
893 | | " \"Access-list policy applied on routes going from BGP to Zebra.\";\n" |
894 | | " }\n" |
895 | | " }\n" |
896 | | "\n" |
897 | | " grouping route-flap-dampening {\n" |
898 | | " container route-flap-dampening {\n" |
899 | | " description\n" |
900 | | " \"Dampening feature\";\n" |
901 | | " leaf enable {\n" |
902 | | " type boolean;\n" |
903 | | " default \"false\";\n" |
904 | | " description\n" |
905 | | " \"Enable route flap dampening.\";\n" |
906 | | " }\n" |
907 | | "\n" |
908 | | " leaf reach-decay {\n" |
909 | | " when \"../enable = \'true\'\";\n" |
910 | | " type uint8 {\n" |
911 | | " range \"1..45\";\n" |
912 | | " }\n" |
913 | | " units \"seconds\";\n" |
914 | | " default \"15\";\n" |
915 | | " description\n" |
916 | | " \"This value specifies the time desired for the instability\n" |
917 | | " metric value to reach one-half of its current value when\n" |
918 | | " the route is reachable. This half-life value determines\n" |
919 | | " the rate at which the metric value is decayed. A smaller\n" |
920 | | " half-life value makes a suppressed route reusable sooner\n" |
921 | | " than a larger value. The accumulated penalty will be reduced\n" |
922 | | " to half after this duration.\";\n" |
923 | | " }\n" |
924 | | "\n" |
925 | | " leaf reuse-above {\n" |
926 | | " when \"../enable = \'true\'\";\n" |
927 | | " type uint16 {\n" |
928 | | " range \"1..20000\";\n" |
929 | | " }\n" |
930 | | " default \"750\";\n" |
931 | | " description\n" |
932 | | " \"This is the value of the instability metric at which a\n" |
933 | | " suppressed route becomes unsuppressed if it is reachable\n" |
934 | | " but currently suppressed. The value assigned to\n" |
935 | | " reuse-below must be less than suppress-above.\";\n" |
936 | | " }\n" |
937 | | "\n" |
938 | | " leaf suppress-above {\n" |
939 | | " when \"../enable = \'true\'\";\n" |
940 | | " type uint16 {\n" |
941 | | " range \"1..20000\";\n" |
942 | | " }\n" |
943 | | " default \"2000\";\n" |
944 | | " description\n" |
945 | | " \"This is the value of the instability metric at which\n" |
946 | | " route suppression takes place. A route is not installed\n" |
947 | | " in the forwarding information base (FIB), or announced\n" |
948 | | " even if it is reachable during the period that it is\n" |
949 | | " suppressed.\";\n" |
950 | | " }\n" |
951 | | "\n" |
952 | | " leaf unreach-decay {\n" |
953 | | " when \"../enable = \'true\'\";\n" |
954 | | " type uint8 {\n" |
955 | | " range \"1..255\";\n" |
956 | | " }\n" |
957 | | " units \"seconds\";\n" |
958 | | " default \"60\";\n" |
959 | | " description\n" |
960 | | " \"This value acts the same as reach-decay except that it\n" |
961 | | " specifies the rate at which the instability metric is\n" |
962 | | " decayed when a route is unreachable. It should have a\n" |
963 | | " value greater than or equal to reach-decay.\";\n" |
964 | | " }\n" |
965 | | " }\n" |
966 | | " }\n" |
967 | | "\n" |
968 | | " grouping flow-spec-config {\n" |
969 | | " container flow-spec-config {\n" |
970 | | " description\n" |
971 | | " \"Flow spec feature.\";\n" |
972 | | " leaf interface {\n" |
973 | | " type frr-interface:interface-ref {\n" |
974 | | " require-instance false;\n" |
975 | | " }\n" |
976 | | " description\n" |
977 | | " \"The local interface.\";\n" |
978 | | " }\n" |
979 | | " }\n" |
980 | | " }\n" |
981 | | "\n" |
982 | | " grouping global-graceful-shutdown {\n" |
983 | | " description\n" |
984 | | " \"Structural grouping used to include graceful-shutdown\n" |
985 | | " configuration for both BGP neighbors and peer groups.\";\n" |
986 | | " container graceful-shutdown {\n" |
987 | | " description\n" |
988 | | " \"BGP Graceful shutdown feature.\";\n" |
989 | | " leaf enable {\n" |
990 | | " type boolean;\n" |
991 | | " default \"false\";\n" |
992 | | " description\n" |
993 | | " \"Enable graceful-shutdown feature.\";\n" |
994 | | " }\n" |
995 | | " }\n" |
996 | | " }\n" |
997 | | "\n" |
998 | | " grouping global-filter-config {\n" |
999 | | " description\n" |
1000 | | " \"Structural grouping used to include filter\n" |
1001 | | " configuration for BGP RIB table.\";\n" |
1002 | | " container filter-config {\n" |
1003 | | " description\n" |
1004 | | " \"BGP table to RIB route download filter.\";\n" |
1005 | | " uses rmap-policy-export;\n" |
1006 | | " }\n" |
1007 | | " }\n" |
1008 | | "\n" |
1009 | | " grouping route-distinguisher-params {\n" |
1010 | | " description\n" |
1011 | | " \"Route distinguisher value as per RFC4364.\";\n" |
1012 | | " leaf rd {\n" |
1013 | | " type rt-types:route-distinguisher;\n" |
1014 | | " description\n" |
1015 | | " \"Route distinguisher value as per RFC4364.\";\n" |
1016 | | " }\n" |
1017 | | " }\n" |
1018 | | "\n" |
1019 | | " grouping vpn-label-params {\n" |
1020 | | " description\n" |
1021 | | " \"Label value for VRF.\";\n" |
1022 | | " choice label-allocation-mode {\n" |
1023 | | " case manual {\n" |
1024 | | " leaf label {\n" |
1025 | | " type rt-types:mpls-label;\n" |
1026 | | " description\n" |
1027 | | " \"Label index to associate with the prefix.\";\n" |
1028 | | " }\n" |
1029 | | " }\n" |
1030 | | "\n" |
1031 | | " case auto {\n" |
1032 | | " leaf label-auto {\n" |
1033 | | " type boolean;\n" |
1034 | | " default \"false\";\n" |
1035 | | " description\n" |
1036 | | " \"Automatically assign a label.\";\n" |
1037 | | " }\n" |
1038 | | " }\n" |
1039 | | " }\n" |
1040 | | " }\n" |
1041 | | "\n" |
1042 | | " grouping vpn-nexthop-params {\n" |
1043 | | " description\n" |
1044 | | " \"Specify next hop to use for VRF advertised prefixes.\";\n" |
1045 | | " leaf nexthop {\n" |
1046 | | " type inet:ip-address;\n" |
1047 | | " description\n" |
1048 | | " \"Nexthop IP address.\";\n" |
1049 | | " }\n" |
1050 | | " }\n" |
1051 | | "\n" |
1052 | | " grouping rt-list {\n" |
1053 | | " description\n" |
1054 | | " \"Route Target list\";\n" |
1055 | | " leaf-list import-rt-list {\n" |
1056 | | " type rt-types:route-target;\n" |
1057 | | " description\n" |
1058 | | " \"For routes leaked from vpn to current address-family: match any.\";\n" |
1059 | | " }\n" |
1060 | | "\n" |
1061 | | " leaf-list export-rt-list {\n" |
1062 | | " type rt-types:route-target;\n" |
1063 | | " description\n" |
1064 | | " \"For routes leaked from current address-family to vpn: set.\";\n" |
1065 | | " }\n" |
1066 | | " }\n" |
1067 | | "\n" |
1068 | | " grouping vpn-route-target-params {\n" |
1069 | | " description\n" |
1070 | | " \"Route Target value.\";\n" |
1071 | | " leaf redirect-rt {\n" |
1072 | | " type rt-types:route-target;\n" |
1073 | | " description\n" |
1074 | | " \"Flow-spec redirect type route target.\";\n" |
1075 | | " }\n" |
1076 | | "\n" |
1077 | | " choice rt-direction {\n" |
1078 | | " case import-export {\n" |
1079 | | " uses rt-list;\n" |
1080 | | " }\n" |
1081 | | "\n" |
1082 | | " case both {\n" |
1083 | | " leaf-list rt-list {\n" |
1084 | | " type rt-types:route-target;\n" |
1085 | | " description\n" |
1086 | | " \"Both import: match any and export: set.\";\n" |
1087 | | " }\n" |
1088 | | " }\n" |
1089 | | " }\n" |
1090 | | " }\n" |
1091 | | "\n" |
1092 | | " grouping vpn-import-params {\n" |
1093 | | " description\n" |
1094 | | " \"VPN route leaking parameters.\";\n" |
1095 | | " leaf import-vpn {\n" |
1096 | | " type boolean;\n" |
1097 | | " default \"false\";\n" |
1098 | | " description\n" |
1099 | | " \"Import routes from default instance VPN RIB.\";\n" |
1100 | | " }\n" |
1101 | | "\n" |
1102 | | " leaf export-vpn {\n" |
1103 | | " type boolean;\n" |
1104 | | " default \"false\";\n" |
1105 | | " description\n" |
1106 | | " \"Export routes to default instance VPN RIB.\";\n" |
1107 | | " }\n" |
1108 | | "\n" |
1109 | | " list import-vrf-list {\n" |
1110 | | " key \"vrf\";\n" |
1111 | | " description\n" |
1112 | | " \"List of VRFs to import routes from.\";\n" |
1113 | | " leaf vrf {\n" |
1114 | | " type frr-vrf:vrf-ref {\n" |
1115 | | " require-instance false;\n" |
1116 | | " }\n" |
1117 | | " description\n" |
1118 | | " \"Routing instance.\";\n" |
1119 | | " }\n" |
1120 | | " }\n" |
1121 | | "\n" |
1122 | | " uses rmap-policy-import;\n" |
1123 | | "\n" |
1124 | | " uses rmap-policy-export;\n" |
1125 | | " }\n" |
1126 | | "\n" |
1127 | | " grouping global-afi-safi-vpn-config {\n" |
1128 | | " container vpn-config {\n" |
1129 | | " leaf rd {\n" |
1130 | | " type string;\n" |
1131 | | " description\n" |
1132 | | " \"Route distinguisher value as per RFC4364.\";\n" |
1133 | | " }\n" |
1134 | | "\n" |
1135 | | " uses vpn-label-params;\n" |
1136 | | "\n" |
1137 | | " uses vpn-nexthop-params;\n" |
1138 | | "\n" |
1139 | | " uses vpn-import-params;\n" |
1140 | | "\n" |
1141 | | " uses vpn-route-target-params;\n" |
1142 | | " }\n" |
1143 | | " }\n" |
1144 | | "\n" |
1145 | | " grouping global-afi-safi-vpn-network-config {\n" |
1146 | | " list network-config {\n" |
1147 | | " key \"rd\";\n" |
1148 | | " description\n" |
1149 | | " \"A list of rd.\";\n" |
1150 | | " uses route-distinguisher-params;\n" |
1151 | | "\n" |
1152 | | " list prefix-list {\n" |
1153 | | " key \"prefix\";\n" |
1154 | | " description\n" |
1155 | | " \"A list of prefix.\";\n" |
1156 | | " leaf prefix {\n" |
1157 | | " type inet:ip-prefix;\n" |
1158 | | " description\n" |
1159 | | " \"IP destination prefix.\";\n" |
1160 | | " }\n" |
1161 | | "\n" |
1162 | | " leaf label-index {\n" |
1163 | | " type uint32;\n" |
1164 | | " mandatory true;\n" |
1165 | | " description\n" |
1166 | | " \"Label index to associate with the prefix.\";\n" |
1167 | | " }\n" |
1168 | | "\n" |
1169 | | " leaf rmap-policy-export {\n" |
1170 | | " type frr-route-map:route-map-ref;\n" |
1171 | | " description\n" |
1172 | | " \"Route-map to modify the attributes for Routes going out\n" |
1173 | | " via BGP updates.\";\n" |
1174 | | " }\n" |
1175 | | " }\n" |
1176 | | " }\n" |
1177 | | " }\n" |
1178 | | "}\n" |
1179 | | ""; |
1180 | | |
1181 | | static struct yang_module_embed embed = { |
1182 | | .mod_name = "frr-bgp", |
1183 | | .mod_rev = "", |
1184 | | .sub_mod_name = "frr-bgp-common", |
1185 | | .sub_mod_rev = "2019-12-03", |
1186 | | .data = model, |
1187 | | .format = LYS_IN_YANG, |
1188 | | }; |
1189 | | |
1190 | | static void embed_register(void) __attribute__((_CONSTRUCTOR(2000))); |
1191 | | static void embed_register(void) |
1192 | 1 | { |
1193 | 1 | yang_module_embed(&embed); |
1194 | 1 | } |