1 module frr-bgp-route-map {
3 namespace "http://frrouting.org/yang/bgp-route-map";
4 prefix frr-bgp-route-map;
6 import ietf-inet-types {
10 import frr-route-map {
18 import frr-bgp-filter {
22 import ietf-routing-types {
26 import frr-route-types {
27 prefix frr-route-types;
33 "FRR Users List: <mailto:frog@lists.frrouting.org>
34 FRR Development List: <mailto:dev@lists.frrouting.org>";
36 "This module defines bgp route map settings";
43 identity match-alias {
44 base frr-route-map:rmap-match-type;
46 "Match BGP community alias name";
49 identity match-local-preference {
50 base frr-route-map:rmap-match-type;
52 "Match local-preference of routes";
55 identity match-script {
56 base frr-route-map:rmap-match-type;
58 "Match script of routes";
61 identity match-origin {
62 base frr-route-map:rmap-match-type;
64 "Match BGP route origin code";
68 base frr-route-map:rmap-match-type;
70 "Control rpki specific settings";
73 identity rpki-extcommunity {
74 base frr-route-map:rmap-match-type;
76 "Control rpki specific settings derived from extended community";
79 identity probability {
80 base frr-route-map:rmap-match-type;
82 "Match portion of routes defined by percentage value";
86 base frr-route-map:rmap-match-type;
88 "Match source vrf of routes";
92 base frr-route-map:rmap-match-type;
97 identity mac-address-list {
98 base frr-route-map:rmap-match-type;
100 "Match MAC address access-list";
103 identity ip-route-source {
104 base frr-route-map:rmap-match-type;
106 "Match advertising source address of route";
109 identity ip-route-source-prefix-list {
110 base frr-route-map:rmap-match-type;
112 "Match advertising source address of route";
115 identity evpn-route-type {
116 base frr-route-map:rmap-match-type;
118 "Match EVPN route type";
121 identity evpn-default-route {
122 base frr-route-map:rmap-match-type;
124 "Match EVPN default Type-5 route";
128 base frr-route-map:rmap-match-type;
134 base frr-route-map:rmap-match-type;
136 "Match EVPN route distinguisher";
139 identity match-community {
140 base frr-route-map:rmap-match-type;
142 "Match BGP community list";
145 identity match-large-community {
146 base frr-route-map:rmap-match-type;
148 "Match BGP large-community list";
151 identity match-extcommunity {
152 base frr-route-map:rmap-match-type;
154 "Match BGP extcommunity list";
157 identity as-path-list {
158 base frr-route-map:rmap-match-type;
160 "Match BGP AS path list";
163 identity ipv4-nexthop {
164 base frr-route-map:rmap-match-type;
166 "Match IPv4 next hop address";
169 identity ipv6-nexthop {
170 base frr-route-map:rmap-match-type;
172 "Match IPv6 next hop address";
175 identity source-protocol {
176 base frr-route-map:rmap-match-type;
178 "Match protocol via which the route was learnt";
182 base frr-route-map:rmap-set-type;
184 "Set BGP administrative distance to use";
187 identity set-extcommunity-none {
188 base frr-route-map:rmap-set-type;
190 "Set BGP extended community attribute";
193 identity set-extcommunity-rt {
194 base frr-route-map:rmap-set-type;
196 "Set BGP extended community attribute";
199 identity set-extcommunity-nt {
200 base frr-route-map:rmap-set-type;
202 "Set BGP extended community attribute";
205 identity set-extcommunity-soo {
206 base frr-route-map:rmap-set-type;
208 "Set BGP extended community attribute";
211 identity set-extcommunity-lb {
212 base frr-route-map:rmap-set-type;
214 "Set BGP extended community attribute";
217 identity set-ipv4-nexthop {
218 base frr-route-map:rmap-set-type;
220 "Set the IPv4 next-hop to peer-address/unchanged";
223 identity ipv4-vpn-address {
224 base frr-route-map:rmap-set-type;
226 "Set IPv4 VPN next-hop address";
229 identity ipv6-nexthop-global {
230 base frr-route-map:rmap-set-type;
232 "Set IPv6 next-hop global address";
235 identity ipv6-prefer-global {
236 base frr-route-map:rmap-set-type;
238 "Set IPv6 next-hop to prefer global address";
241 identity ipv6-peer-address {
242 base frr-route-map:rmap-set-type;
244 "Set IPv6 next-hop peer address";
247 identity ipv6-vpn-address {
248 base frr-route-map:rmap-set-type;
250 "Set IPv6 VPN next-hop address";
253 identity label-index {
254 base frr-route-map:rmap-set-type;
256 "Set the label index to associate with the prefixs";
259 identity set-local-preference {
260 base frr-route-map:rmap-set-type;
262 "Set the BGP local preference path attribute";
265 identity set-origin {
266 base frr-route-map:rmap-set-type;
268 "Set BGP route origin code";
272 base frr-route-map:rmap-set-type;
274 "Set the BGP weight attribute";
277 identity originator-id {
278 base frr-route-map:rmap-set-type;
280 "Set the BGP originator ID attribute";
284 base frr-route-map:rmap-set-type;
286 "Export route to non-main kernel table";
289 identity atomic-aggregate {
290 base frr-route-map:rmap-set-type;
292 "Set BGP atomic-aggregate attribute";
295 identity aigp-metric {
296 base frr-route-map:rmap-set-type;
298 "Set BGP AIGP attribute (AIGP TLV Metric)";
301 identity as-path-prepend {
302 base frr-route-map:rmap-set-type;
304 "Set the BGP AS-path attribute";
307 identity as-path-exclude {
308 base frr-route-map:rmap-set-type;
310 "Set the BGP AS-path attribute";
313 identity as-path-replace {
314 base frr-route-map:rmap-set-type;
316 "Replace ASNs to local AS number";
319 identity set-community {
320 base frr-route-map:rmap-set-type;
322 "Set the BGP community attribute";
325 identity set-large-community {
326 base frr-route-map:rmap-set-type;
328 "Set the BGP large-community attribute";
331 identity aggregator {
332 base frr-route-map:rmap-set-type;
334 "Set the BGP aggregator attribute";
337 identity comm-list-delete {
338 base frr-route-map:rmap-set-type;
340 "Set BGP community list (for deletion)";
343 identity large-comm-list-delete {
344 base frr-route-map:rmap-set-type;
346 "Set BGP large community list (for deletion)";
349 identity set-evpn-gateway-ip-ipv4 {
350 base frr-route-map:rmap-set-type;
352 "Set EVPN gateway IP overlay index IPv4";
355 identity set-evpn-gateway-ip-ipv6 {
356 base frr-route-map:rmap-set-type;
358 "Set EVPN gateway IP overlay index IPv6";
361 identity set-l3vpn-nexthop-encapsulation {
362 base frr-route-map:rmap-set-type;
364 "Accept L3VPN traffic over other than LSP encapsulation";
367 grouping extcommunity-non-transitive-types {
368 leaf two-octet-as-specific {
371 "Non-Transitive Two-Octet AS-Specific Extended Community";
375 typedef route-distinguisher {
378 '(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
380 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|'
381 + '42949672[0-8][0-9]|'
382 + '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|'
383 + '42949[0-5][0-9]{4}|'
384 + '4294[0-8][0-9]{5}|429[0-3][0-9]{6}|'
385 + '42[0-8][0-9]{7}|4[01][0-9]{8}|'
386 + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))|'
387 + '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|'
388 + '25[0-5])\.){3}([0-9]|[1-9][0-9]|'
389 + '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|'
391 + '65[0-4][0-9]{2}|6[0-4][0-9]{3}|'
392 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
393 + '(2:(429496729[0-5]|42949672[0-8][0-9]|'
394 + '4294967[01][0-9]{2}|'
395 + '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|'
396 + '4294[0-8][0-9]{5}|'
397 + '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|'
398 + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):'
399 + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
401 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
402 + '(6(:[a-fA-F0-9]{2}){6})|'
403 + '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):'
404 + '[0-9a-fA-F]{1,12})|'
405 + '((6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
407 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|'
408 + '42949672[0-8][0-9]|'
409 + '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|'
410 + '42949[0-5][0-9]{4}|'
411 + '4294[0-8][0-9]{5}|429[0-3][0-9]{6}|'
412 + '42[0-8][0-9]{7}|4[01][0-9]{8}|'
413 + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0)|'
414 + '((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|'
415 + '25[0-5])\.){3}([0-9]|[1-9][0-9]|'
416 + '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|'
418 + '65[0-4][0-9]{2}|6[0-4][0-9]{3}|'
419 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
420 + '((429496729[0-5]|42949672[0-8][0-9]|'
421 + '4294967[01][0-9]{2}|'
422 + '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|'
423 + '4294[0-8][0-9]{5}|'
424 + '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|'
425 + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):'
426 + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
428 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
429 + '((6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
431 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0).'
432 + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
434 + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):'
435 + '(429496729[0-5]|42949672[0-8][0-9]|'
436 + '4294967[01][0-9]{2}|'
437 + '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|'
438 + '4294[0-8][0-9]{5}|'
439 + '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|'
440 + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))';
444 "A Route Distinguisher is an 8-octet value used to
445 distinguish routes from different BGP VPNs (RFC 4364).
446 A Route Distinguisher will have the same format as a
447 Route Target as per RFC 4360 and will consist of
448 two or three fields: a 2-octet Type field, an administrator
449 field, and, optionally, an assigned number field.
450 According to the data formats for types 0, 1, 2, and 6 as
451 defined in RFC 4360, RFC 5668, and RFC 7432, the encoding
452 pattern is defined as:
453 0:2-octet-asn:4-octet-number
454 1:4-octet-ipv4addr:2-octet-number
455 2:4-octet-asn:2-octet-number
456 6:6-octet-mac-address
457 Additionally, a generic pattern is defined for future
458 route discriminator types:
459 2-octet-other-hex-number:6-octet-hex-number
460 Some valid examples are 0:100:100, 1:1.1.1.1:100,
461 2:1234567890:203, and 6:26:00:08:92:78:00.
462 The following route distinguisher with two fields are also
463 accepted : 10000:44 1.2.3.4:44.";
465 "RFC 4360: BGP Extended Communities Attribute.
466 RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).
467 RFC 5668: 4-Octet AS Specific BGP Extended Community.
468 RFC 7432: BGP MPLS-Based Ethernet VPN.";
471 typedef extcommunity-lb-type {
473 enum "explicit-bandwidth" {
476 "Bandwidth value in Mbps";
478 enum "cumulative-bandwidth" {
481 "Cumulative bandwidth of all multipaths (outbound-only)";
483 enum "computed-bandwidth" {
486 "Internally computed bandwidth based on number of multipaths (outbound-only)";
490 "ext-community link bandwidth types.";
496 range "1..4294967295";
499 pattern '(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|'
500 + '6[0-4][0-9]{3}|65[0-4][0-9]{2}|'
501 + '655[0-2][0-9]|6553[0-5])\.'
502 + '(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|'
503 + '65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])' {
504 error-message "AS dot should be in the form [0..65535].[0..65535].";
507 modifier "invert-match";
508 error-message "AS dot can't be equal to 0.0.";
514 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" {
515 case local-preference {
516 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')";
517 leaf local-preference {
519 range "0..4294967295";
525 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')";
532 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')";
539 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')";
562 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')";
584 case rpki-extcommunity {
585 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')";
586 leaf rpki-extcommunity {
608 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')";
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:source-vrf')";
624 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')";
628 case peer-ipv4-address {
630 "IP address of peer";
631 leaf peer-ipv4-address {
632 type inet:ipv4-address;
636 case peer-interface {
638 "Interface name of peer";
639 leaf peer-interface {
644 case peer-ipv6-address {
646 "IPv6 address of peer";
647 leaf peer-ipv6-address {
648 type inet:ipv6-address;
654 "Static or Redistributed routes";
662 case access-list-name {
663 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 "
664 + "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 "
665 + "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 "
666 + "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')";
670 type filter:access-list-name;
674 case evpn-default-route {
675 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')";
677 "Match default EVPN type-5 route";
678 leaf evpn-default-route {
684 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')";
694 case evpn-route-type {
695 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')";
697 "Match eVPN route-type";
698 leaf evpn-route-type {
718 "Ethernet Auto-Discovery route";
723 "Ethernet Segment route";
730 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')";
732 "Match eVPN route-distinguisher";
733 leaf route-distinguisher {
734 type route-distinguisher;
738 case comm-list-name {
739 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 "
740 + "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 "
741 + "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')";
742 container comm-list {
743 leaf comm-list-name {
744 type bgp-filter:bgp-list-name;
747 leaf comm-list-name-exact-match {
750 "Do exact matching of communities";
756 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')";
758 type inet:ipv4-address;
765 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')";
767 type inet:ipv6-address;
773 case source-protocol {
774 when "derived-from-or-self(../frr-route-map:condition, 'frr-bgp-route-map:source-protocol')";
775 leaf source-protocol {
776 type frr-route-types:frr-route-types;
781 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" {
783 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')";
791 case extcommunity-none {
792 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')";
794 "Value of the BGP extended community attribute";
795 leaf extcommunity-none {
797 description "No extended community attribute";
801 case extcommunity-rt {
802 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')";
804 "Value of the ext-community";
805 leaf extcommunity-rt {
808 "Set BGP ext-community route-target attribute";
812 case extcommunity-nt {
813 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-nt')";
815 "Value of the ext-community";
816 leaf extcommunity-nt {
819 "Set BGP ext-community node-target attribute";
823 case extcommunity-soo {
824 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')";
826 "Value of the ext-community";
827 leaf extcommunity-soo {
830 "Set BGP ext-community site-of-origin attribute";
834 case extcommunity-lb {
835 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')";
836 container extcommunity-lb {
838 "Value of the ext-community.";
840 type frr-bgp-route-map:extcommunity-lb-type;
844 when "../lb-type = 'explicit-bandwidth'";
849 "Bandwidth value in Mbps";
851 uses extcommunity-non-transitive-types;
856 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')";
858 "Set the IPv4 address";
860 type inet:ipv4-address;
865 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')";
872 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 "
873 + "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')";
875 "Set the IPv6 address";
877 type inet:ipv6-address;
882 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 "
883 + "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')";
890 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')";
899 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')";
906 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')";
909 range "0..4294967295";
915 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')";
938 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')";
940 type inet:ipv4-address;
945 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')";
948 range "1..4294967295";
953 case atomic-aggregate {
954 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')";
955 leaf atomic-aggregate {
961 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:aigp-metric')";
965 "Set BGP AIGP attribute (AIGP Metric TLV)";
969 case as-path-prepend {
970 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')";
971 choice as-path-prepend {
973 "Value of the BGP AS-path attribute";
976 "Prepend the mentioned AS-path";
977 leaf prepend-as-path {
984 "Prepend the last ASN in the AS-path";
994 case as-path-exclude {
995 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')";
996 leaf exclude-as-path {
999 "Exclude the mentioned AS-path";
1003 case as-path-replace {
1004 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')";
1005 leaf replace-as-path {
1008 "Replace ASNs to local AS number";
1013 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')";
1016 "Value of the BGP community attribute";
1019 "No community attribute";
1020 leaf community-none {
1025 case community-string {
1028 leaf community-string {
1035 case large-community {
1036 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')";
1037 choice large-community {
1039 "Value of the BGP large-community attribute";
1042 "No large-community attribute";
1043 leaf large-community-none {
1048 case large-community-string {
1050 "Large-Community string";
1051 leaf large-community-string {
1059 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')";
1060 container aggregator {
1061 leaf aggregator-asn {
1064 "ASN of the aggregator";
1067 leaf aggregator-address {
1068 type inet:ipv4-address;
1070 "IPv4 address of the aggregator";
1075 case comm-list-name {
1076 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 "
1077 + "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')";
1078 leaf comm-list-name {
1079 type bgp-filter:bgp-list-name;
1082 case evpn-gateway-ip-ipv4 {
1084 "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,
1085 'frr-bgp-route-map:set-evpn-gateway-ip-ipv4')";
1087 "Set EVPN gateway IP overlay index IPv4";
1088 leaf evpn-gateway-ip-ipv4 {
1089 type inet:ipv4-address;
1092 case evpn-gateway-ip-ipv6 {
1094 "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,
1095 'frr-bgp-route-map:set-evpn-gateway-ip-ipv6')";
1097 "Set EVPN gateway IP overlay index IPv6";
1098 leaf evpn-gateway-ip-ipv6 {
1099 type inet:ipv6-address;
1102 case l3vpn-nexthop-encapsulation {
1104 "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,
1105 'frr-bgp-route-map:set-l3vpn-nexthop-encapsulation')";
1107 "Accept L3VPN traffic over other than LSP encapsulation";
1108 leaf l3vpn-nexthop-encapsulation {