]> git.proxmox.com Git - mirror_frr.git/blob - yang/frr-bgp-route-map.yang
Merge pull request #11910 from fdumontet6WIND/NAI_Adj
[mirror_frr.git] / yang / frr-bgp-route-map.yang
1 module frr-bgp-route-map {
2 yang-version 1.1;
3 namespace "http://frrouting.org/yang/bgp-route-map";
4 prefix frr-bgp-route-map;
5
6 import ietf-inet-types {
7 prefix inet;
8 }
9
10 import frr-route-map {
11 prefix frr-route-map;
12 }
13
14 import frr-filter {
15 prefix filter;
16 }
17
18 import frr-bgp-filter {
19 prefix bgp-filter;
20 }
21
22 import ietf-routing-types {
23 prefix rt-types;
24 }
25
26 organization
27 "Free Range Routing";
28 contact
29 "FRR Users List: <mailto:frog@lists.frrouting.org>
30 FRR Development List: <mailto:dev@lists.frrouting.org>";
31 description
32 "This module defines bgp route map settings";
33
34 revision 2020-01-02 {
35 description
36 "Initial revision";
37 }
38
39 identity match-alias {
40 base frr-route-map:rmap-match-type;
41 description
42 "Match BGP community alias name";
43 }
44
45 identity match-local-preference {
46 base frr-route-map:rmap-match-type;
47 description
48 "Match local-preference of routes";
49 }
50
51 identity match-script {
52 base frr-route-map:rmap-match-type;
53 description
54 "Match script of routes";
55 }
56
57 identity match-origin {
58 base frr-route-map:rmap-match-type;
59 description
60 "Match BGP route origin code";
61 }
62
63 identity rpki {
64 base frr-route-map:rmap-match-type;
65 description
66 "Control rpki specific settings";
67 }
68
69 identity rpki-extcommunity {
70 base frr-route-map:rmap-match-type;
71 description
72 "Control rpki specific settings derived from extended community";
73 }
74
75 identity probability {
76 base frr-route-map:rmap-match-type;
77 description
78 "Match portion of routes defined by percentage value";
79 }
80
81 identity source-vrf {
82 base frr-route-map:rmap-match-type;
83 description
84 "Match source vrf of routes";
85 }
86
87 identity peer {
88 base frr-route-map:rmap-match-type;
89 description
90 "Match peer address";
91 }
92
93 identity mac-address-list {
94 base frr-route-map:rmap-match-type;
95 description
96 "Match MAC address access-list";
97 }
98
99 identity ip-route-source {
100 base frr-route-map:rmap-match-type;
101 description
102 "Match advertising source address of route";
103 }
104
105 identity ip-route-source-prefix-list {
106 base frr-route-map:rmap-match-type;
107 description
108 "Match advertising source address of route";
109 }
110
111 identity evpn-route-type {
112 base frr-route-map:rmap-match-type;
113 description
114 "Match EVPN route type";
115 }
116
117 identity evpn-default-route {
118 base frr-route-map:rmap-match-type;
119 description
120 "Match EVPN default Type-5 route";
121 }
122
123 identity evpn-vni {
124 base frr-route-map:rmap-match-type;
125 description
126 "Match EVPN VNI";
127 }
128
129 identity evpn-rd {
130 base frr-route-map:rmap-match-type;
131 description
132 "Match EVPN route distinguisher";
133 }
134
135 identity match-community {
136 base frr-route-map:rmap-match-type;
137 description
138 "Match BGP community list";
139 }
140
141 identity match-large-community {
142 base frr-route-map:rmap-match-type;
143 description
144 "Match BGP large-community list";
145 }
146
147 identity match-extcommunity {
148 base frr-route-map:rmap-match-type;
149 description
150 "Match BGP extcommunity list";
151 }
152
153 identity as-path-list {
154 base frr-route-map:rmap-match-type;
155 description
156 "Match BGP AS path list";
157 }
158
159 identity ipv4-nexthop {
160 base frr-route-map:rmap-match-type;
161 description
162 "Match IPv4 next hop address";
163 }
164
165 identity ipv6-nexthop {
166 base frr-route-map:rmap-match-type;
167 description
168 "Match IPv6 next hop address";
169 }
170
171 identity distance {
172 base frr-route-map:rmap-set-type;
173 description
174 "Set BGP administrative distance to use";
175 }
176
177 identity set-extcommunity-none {
178 base frr-route-map:rmap-set-type;
179 description
180 "Set BGP extended community attribute";
181 }
182
183 identity set-extcommunity-rt {
184 base frr-route-map:rmap-set-type;
185 description
186 "Set BGP extended community attribute";
187 }
188
189 identity set-extcommunity-soo {
190 base frr-route-map:rmap-set-type;
191 description
192 "Set BGP extended community attribute";
193 }
194
195 identity set-extcommunity-lb {
196 base frr-route-map:rmap-set-type;
197 description
198 "Set BGP extended community attribute";
199 }
200
201 identity set-ipv4-nexthop {
202 base frr-route-map:rmap-set-type;
203 description
204 "Set the IPv4 next-hop to peer-address/unchanged";
205 }
206
207 identity ipv4-vpn-address {
208 base frr-route-map:rmap-set-type;
209 description
210 "Set IPv4 VPN next-hop address";
211 }
212
213 identity ipv6-nexthop-global {
214 base frr-route-map:rmap-set-type;
215 description
216 "Set IPv6 next-hop global address";
217 }
218
219 identity ipv6-prefer-global {
220 base frr-route-map:rmap-set-type;
221 description
222 "Set IPv6 next-hop to prefer global address";
223 }
224
225 identity ipv6-peer-address {
226 base frr-route-map:rmap-set-type;
227 description
228 "Set IPv6 next-hop peer address";
229 }
230
231 identity ipv6-vpn-address {
232 base frr-route-map:rmap-set-type;
233 description
234 "Set IPv6 VPN next-hop address";
235 }
236
237 identity label-index {
238 base frr-route-map:rmap-set-type;
239 description
240 "Set the label index to associate with the prefixs";
241 }
242
243 identity set-local-preference {
244 base frr-route-map:rmap-set-type;
245 description
246 "Set the BGP local preference path attribute";
247 }
248
249 identity set-origin {
250 base frr-route-map:rmap-set-type;
251 description
252 "Set BGP route origin code";
253 }
254
255 identity weight {
256 base frr-route-map:rmap-set-type;
257 description
258 "Set the BGP weight attribute";
259 }
260
261 identity originator-id {
262 base frr-route-map:rmap-set-type;
263 description
264 "Set the BGP originator ID attribute";
265 }
266
267 identity table {
268 base frr-route-map:rmap-set-type;
269 description
270 "Export route to non-main kernel table";
271 }
272
273 identity atomic-aggregate {
274 base frr-route-map:rmap-set-type;
275 description
276 "Set BGP atomic-aggregate attribute";
277 }
278
279 identity as-path-prepend {
280 base frr-route-map:rmap-set-type;
281 description
282 "Set the BGP AS-path attribute";
283 }
284
285 identity as-path-exclude {
286 base frr-route-map:rmap-set-type;
287 description
288 "Set the BGP AS-path attribute";
289 }
290
291 identity as-path-replace {
292 base frr-route-map:rmap-set-type;
293 description
294 "Replace ASNs to local AS number";
295 }
296
297 identity set-community {
298 base frr-route-map:rmap-set-type;
299 description
300 "Set the BGP community attribute";
301 }
302
303 identity set-large-community {
304 base frr-route-map:rmap-set-type;
305 description
306 "Set the BGP large-community attribute";
307 }
308
309 identity aggregator {
310 base frr-route-map:rmap-set-type;
311 description
312 "Set the BGP aggregator attribute";
313 }
314
315 identity comm-list-delete {
316 base frr-route-map:rmap-set-type;
317 description
318 "Set BGP community list (for deletion)";
319 }
320
321 identity large-comm-list-delete {
322 base frr-route-map:rmap-set-type;
323 description
324 "Set BGP large community list (for deletion)";
325 }
326
327 identity set-evpn-gateway-ip-ipv4 {
328 base frr-route-map:rmap-set-type;
329 description
330 "Set EVPN gateway IP overlay index IPv4";
331 }
332
333 identity set-evpn-gateway-ip-ipv6 {
334 base frr-route-map:rmap-set-type;
335 description
336 "Set EVPN gateway IP overlay index IPv6";
337 }
338
339 identity set-l3vpn-nexthop-encapsulation {
340 base frr-route-map:rmap-set-type;
341 description
342 "Accept L3VPN traffic over other than LSP encapsulation";
343 }
344
345 grouping extcommunity-non-transitive-types {
346 leaf two-octet-as-specific {
347 type boolean;
348 description
349 "Non-Transitive Two-Octet AS-Specific Extended Community";
350 }
351 }
352
353 typedef extcommunity-lb-type {
354 type enumeration {
355 enum "explicit-bandwidth" {
356 value 0;
357 description
358 "Bandwidth value in Mbps";
359 }
360 enum "cumulative-bandwidth" {
361 value 1;
362 description
363 "Cumulative bandwidth of all multipaths (outbound-only)";
364 }
365 enum "computed-bandwidth" {
366 value 2;
367 description
368 "Internally computed bandwidth based on number of multipaths (outbound-only)";
369 }
370 }
371 description
372 "ext-community link bandwidth types.";
373 }
374
375 augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition" {
376 case local-preference {
377 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-local-preference')";
378 leaf local-preference {
379 type uint32 {
380 range "0..4294967295";
381 }
382 }
383 }
384
385 case alias {
386 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-alias')";
387 leaf alias {
388 type string;
389 }
390 }
391
392 case script {
393 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-script')";
394 leaf script {
395 type string;
396 }
397 }
398
399 case origin {
400 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-origin')";
401 leaf origin {
402 type enumeration {
403 enum "egp" {
404 value 0;
405 description
406 "Remote EGP";
407 }
408 enum "igp" {
409 value 1;
410 description
411 "Local IGP";
412 }
413 enum "incomplete" {
414 value 2;
415 description
416 "Unknown heritage";
417 }
418 }
419 }
420 }
421
422 case rpki {
423 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:rpki')";
424 leaf rpki {
425 type enumeration {
426 enum "invalid" {
427 value 0;
428 description
429 "Invalid prefix";
430 }
431 enum "notfound" {
432 value 1;
433 description
434 "Prefix not found";
435 }
436 enum "valid" {
437 value 2;
438 description
439 "Valid prefix";
440 }
441 }
442 }
443 }
444
445 case rpki-extcommunity {
446 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:rpki-extcommunity')";
447 leaf rpki-extcommunity {
448 type enumeration {
449 enum "valid" {
450 value 0;
451 description
452 "Valid prefix";
453 }
454 enum "notfound" {
455 value 1;
456 description
457 "Prefix not found";
458 }
459 enum "invalid" {
460 value 2;
461 description
462 "Invalid prefix";
463 }
464 }
465 }
466 }
467
468 case probability {
469 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:probability')";
470 leaf probability {
471 type uint8 {
472 range "0..100";
473 }
474 }
475 }
476
477 case source-vrf {
478 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:source-vrf')";
479 leaf source-vrf {
480 type string;
481 }
482 }
483
484 case peer {
485 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:peer')";
486 choice peer {
487 description
488 "Value of the peer";
489 case peer-ipv4-address {
490 description
491 "IP address of peer";
492 leaf peer-ipv4-address {
493 type inet:ipv4-address;
494 }
495 }
496
497 case peer-interface {
498 description
499 "Interface name of peer";
500 leaf peer-interface {
501 type string;
502 }
503 }
504
505 case peer-ipv6-address {
506 description
507 "IPv6 address of peer";
508 leaf peer-ipv6-address {
509 type inet:ipv6-address;
510 }
511 }
512
513 case peer-local {
514 description
515 "Static or Redistributed routes";
516 leaf peer-local {
517 type boolean;
518 }
519 }
520 }
521 }
522
523 case access-list-name {
524 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:mac-address-list') or "
525 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:as-path-list') or "
526 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ip-route-source') or "
527 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ip-route-source-prefix-list')";
528 description
529 "Access-list name";
530 leaf list-name {
531 type filter:access-list-name;
532 }
533 }
534
535 case evpn-default-route {
536 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-default-route')";
537 description
538 "Match default EVPN type-5 route";
539 leaf evpn-default-route {
540 type empty;
541 }
542 }
543
544 case evpn-vni {
545 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-vni')";
546 description
547 "Match eVPN VNI";
548 leaf evpn-vni {
549 type uint32 {
550 range "1..16777215";
551 }
552 }
553 }
554
555 case evpn-route-type {
556 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-route-type')";
557 description
558 "Match eVPN route-type";
559 leaf evpn-route-type {
560 type enumeration {
561 enum "macip" {
562 value 0;
563 description
564 "Mac-IP route";
565 }
566 enum "multicast" {
567 value 1;
568 description
569 "IMET route";
570 }
571 enum "prefix" {
572 value 2;
573 description
574 "Prefix route";
575 }
576 enum "ead" {
577 value 3;
578 description
579 "Ethernet Auto-Discovery route";
580 }
581 enum "es" {
582 value 4;
583 description
584 "Ethernet Segment route";
585 }
586 }
587 }
588 }
589
590 case evpn-rd {
591 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-rd')";
592 description
593 "Match eVPN route-distinguisher";
594 leaf route-distinguisher {
595 type rt-types:route-distinguisher;
596 }
597 }
598
599 case comm-list-name {
600 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-community') or "
601 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-large-community') or "
602 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-extcommunity')";
603 container comm-list {
604 leaf comm-list-name {
605 type bgp-filter:bgp-list-name;
606 }
607
608 leaf comm-list-name-exact-match {
609 type boolean;
610 description
611 "Do exact matching of communities";
612 }
613 }
614 }
615
616 case ipv4-address {
617 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ipv4-nexthop')";
618 leaf ipv4-address {
619 type inet:ipv4-address;
620 description
621 "IPv4 address";
622 }
623 }
624
625 case ipv6-address {
626 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ipv6-nexthop')";
627 leaf ipv6-address {
628 type inet:ipv6-address;
629 description
630 "IPv6 address";
631 }
632 }
633 }
634
635 augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:rmap-set-action/frr-route-map:set-action" {
636 case distance {
637 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:distance')";
638 leaf distance {
639 type uint8 {
640 range "0..255";
641 }
642 }
643 }
644
645 case extcommunity-none {
646 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-none')";
647 description
648 "Value of the BGP extended community attribute";
649 leaf extcommunity-none {
650 type boolean;
651 description "No extended community attribute";
652 }
653 }
654
655 case extcommunity-rt {
656 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-rt')";
657 description
658 "Value of the ext-community";
659 leaf extcommunity-rt {
660 type string;
661 description
662 "Set BGP ext-community route-target attribute";
663 }
664 }
665
666 case extcommunity-soo {
667 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-soo')";
668 description
669 "Value of the ext-community";
670 leaf extcommunity-soo {
671 type string;
672 description
673 "Set BGP ext-community site-of-origin attribute";
674 }
675 }
676
677 case extcommunity-lb {
678 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-lb')";
679 container extcommunity-lb {
680 description
681 "Value of the ext-community.";
682 leaf lb-type {
683 type frr-bgp-route-map:extcommunity-lb-type;
684 }
685
686 leaf bandwidth {
687 when "../lb-type = 'explicit-bandwidth'";
688 type uint16 {
689 range "1..25600";
690 }
691 description
692 "Bandwidth value in Mbps";
693 }
694 uses extcommunity-non-transitive-types;
695 }
696 }
697
698 case ipv4-address {
699 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv4-vpn-address')";
700 description
701 "Set the IPv4 address";
702 leaf ipv4-address {
703 type inet:ipv4-address;
704 }
705 }
706
707 case ipv4-nexthop {
708 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-ipv4-nexthop')";
709 leaf ipv4-nexthop {
710 type string;
711 }
712 }
713
714 case ipv6-address {
715 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-nexthop-global') or "
716 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-vpn-address')";
717 description
718 "Set the IPv6 address";
719 leaf ipv6-address {
720 type inet:ipv6-address;
721 }
722 }
723
724 case preference {
725 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-prefer-global') or "
726 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-peer-address')";
727 leaf preference {
728 type boolean;
729 }
730 }
731
732 case label-index {
733 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:label-index')";
734 leaf label-index {
735 type uint32 {
736 range "0..1048560";
737 }
738 }
739 }
740
741 case local-pref {
742 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-local-preference')";
743 leaf local-pref {
744 type string;
745 }
746 }
747
748 case weight {
749 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:weight')";
750 leaf weight {
751 type uint32 {
752 range "0..4294967295";
753 }
754 }
755 }
756
757 case origin {
758 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-origin')";
759 leaf origin {
760 type enumeration {
761 enum "egp" {
762 value 0;
763 description
764 "Remote EGP";
765 }
766 enum "igp" {
767 value 1;
768 description
769 "Local IGP";
770 }
771 enum "incomplete" {
772 value 2;
773 description
774 "Unknown heritage";
775 }
776 }
777 }
778 }
779
780 case originator-id {
781 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:originator-id')";
782 leaf originator-id {
783 type inet:ipv4-address;
784 }
785 }
786
787 case table {
788 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:table')";
789 leaf table {
790 type uint32 {
791 range "1..4294967295";
792 }
793 }
794 }
795
796 case atomic-aggregate {
797 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:atomic-aggregate')";
798 leaf atomic-aggregate {
799 type empty;
800 }
801 }
802
803 case as-path-prepend {
804 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-prepend')";
805 choice as-path-prepend {
806 description
807 "Value of the BGP AS-path attribute";
808 case prepend-as {
809 description
810 "Prepend the mentioned AS-path";
811 leaf prepend-as-path {
812 type string;
813 }
814 }
815
816 case last-as {
817 description
818 "Prepend the last ASN in the AS-path";
819 leaf last-as {
820 type uint8 {
821 range "1..10";
822 }
823 }
824 }
825 }
826 }
827
828 case as-path-exclude {
829 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-exclude')";
830 leaf exclude-as-path {
831 type string;
832 description
833 "Exclude the mentioned AS-path";
834 }
835 }
836
837 case as-path-replace {
838 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-replace')";
839 leaf replace-as-path {
840 type string;
841 description
842 "Replace ASNs to local AS number";
843 }
844 }
845
846 case community {
847 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-community')";
848 choice community {
849 description
850 "Value of the BGP community attribute";
851 case none {
852 description
853 "No community attribute";
854 leaf community-none {
855 type boolean;
856 }
857 }
858
859 case community-string {
860 description
861 "Community string";
862 leaf community-string {
863 type string;
864 }
865 }
866 }
867 }
868
869 case large-community {
870 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-large-community')";
871 choice large-community {
872 description
873 "Value of the BGP large-community attribute";
874 case none {
875 description
876 "No large-community attribute";
877 leaf large-community-none {
878 type boolean;
879 }
880 }
881
882 case large-community-string {
883 description
884 "Large-Community string";
885 leaf large-community-string {
886 type string;
887 }
888 }
889 }
890 }
891
892 case aggregator {
893 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:aggregator')";
894 container aggregator {
895 leaf aggregator-asn {
896 type uint32 {
897 range "1..4294967295";
898 }
899 description
900 "ASN of the aggregator";
901 }
902
903 leaf aggregator-address {
904 when "../aggregator-asn > 0 or "
905 + "../aggregator-asn <= 4294967295";
906 type inet:ipv4-address;
907 description
908 "IPv4 address of the aggregator";
909 }
910 }
911 }
912
913 case comm-list-name {
914 when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:comm-list-delete') or "
915 + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:large-comm-list-delete')";
916 leaf comm-list-name {
917 type bgp-filter:bgp-list-name;
918 }
919 }
920 case evpn-gateway-ip-ipv4 {
921 when
922 "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action,
923 'frr-bgp-route-map:set-evpn-gateway-ip-ipv4')";
924 description
925 "Set EVPN gateway IP overlay index IPv4";
926 leaf evpn-gateway-ip-ipv4 {
927 type inet:ipv4-address;
928 }
929 }
930 case evpn-gateway-ip-ipv6 {
931 when
932 "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action,
933 'frr-bgp-route-map:set-evpn-gateway-ip-ipv6')";
934 description
935 "Set EVPN gateway IP overlay index IPv6";
936 leaf evpn-gateway-ip-ipv6 {
937 type inet:ipv6-address;
938 }
939 }
940 case l3vpn-nexthop-encapsulation {
941 when
942 "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action,
943 'frr-bgp-route-map:set-l3vpn-nexthop-encapsulation')";
944 description
945 "Accept L3VPN traffic over other than LSP encapsulation";
946 leaf l3vpn-nexthop-encapsulation {
947 type enumeration {
948 enum "gre" {
949 value 0;
950 description
951 "GRE protocol";
952 }
953 }
954 }
955 }
956 }
957 }