This module contains a collection of YANG definitions for Cisco IOS-XR l2vpn package configuration. This YANG module augments t...
Version: 2021-05-10
module Cisco-IOS-XR-um-l2vpn-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-l2vpn-cfg"; prefix um-l2vpn-cfg; import Cisco-IOS-XR-types { prefix xr; } import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } import Cisco-IOS-XR-um-interface-cfg { prefix a1; } import Cisco-IOS-XR-um-snmp-server-cfg { prefix a2; } import Cisco-IOS-XR-um-vrf-cfg { prefix a3; } import tailf-common { prefix tailf; } import cisco-semver { prefix semver; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 West Tasman Drive San Jose, CA 95134 Tel: +1 800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for Cisco IOS-XR l2vpn package configuration. This YANG module augments the modules with configuration data. Copyright (c) 2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-05-10" { description "Initial release"; } semver:module-version "1.0.0"; feature l2vpn_evpn_not_nve_intf { description "l2vpn evpn not nve intf"; } feature l2vpn_evpn_is_bundle_intf { description "l2vpn evpn is bundle intf"; } feature l2vpn_platform_srv6_supported { description "l2vpn platform srv6 supported"; } feature l2vpn_iflist_intf_supported { description "l2vpn iflist intf supported"; } feature l2vpn_is_cli_supported { description "l2vpn is cli supported"; } feature l2vpn_bd_non_ether_ac_supported { description "l2vpn bd non ether ac supported"; } feature l2vpn_pw_p2mp_supported { description "l2vpn pw p2mp supported"; } feature l2vpn_cem_func_supported { description "l2vpn cem func supported"; } feature l2vpn_platform_vpws_seamless_integration_supported { description "l2vpn platform vpws seamless integration supported"; } feature l2vpn_p2p_backup_supported { description "l2vpn p2p backup supported"; } feature l2vpn_cfg_ipv6_pw_supported { description "l2vpn cfg ipv6 pw supported"; } container evpn { presence "Indicates a evpn node is configured."; description "Configure E-VPN commands"; container interface { description "Assign interface to EVPN"; list interface { key "interface-name"; description "Specify interface name"; leaf interface-name { type xr:Interface-name; description "Specify interface name"; } container mac-flush { description "MAC Flush mode"; container mvrp { presence "Indicates a mvrp node is configured."; description "MAC Flush over MVRP"; } // container mvrp } // container mac-flush container timers { presence "Indicates a timers node is configured."; description "Configure interface-specific EVPN timers"; leaf peering { type uint32 { range "0..300"; } description "Interface-specific peering timer"; } leaf recovery { type uint32 { range "0..3600"; } description "Interface-specific recovery timer"; } leaf carving { type uint32 { range "0..300"; } description "Interface-specific carving timer"; } leaf ac-debounce { type uint32 { range "0..300000"; } description "Interface-specific AC Debounce timer"; } } // container timers container ethernet-segment { presence "Indicates a ethernet-segment node is configured."; description "Ethernet Segment configuration commands"; container identifier { description "Ethernet Segment identifier (ESI)"; container type { description "ESI Type"; container zero { presence "Indicates a zero node is configured."; description "Type 0 (arbitrary 9-octet ESI value)"; leaf bytes-1 { type xr:Hex-integer-8; mandatory true; description "1st Byte"; } leaf bytes-23 { type xr:Hex-integer-16; units "byte"; mandatory true; description "2nd and 3rd Bytes"; } leaf bytes-45 { type xr:Hex-integer-16; units "byte"; mandatory true; description "4th and 5th Bytes"; } leaf bytes-67 { type xr:Hex-integer-16; units "byte"; mandatory true; description "6th and 7th Bytes"; } leaf bytes-89 { type xr:Hex-integer-16; units "byte"; mandatory true; description "8th and 9th Bytes"; } } // container zero } // container type } // container identifier container load-balancing-mode { description "Specify load balancing mode"; container all-active { must "not(../port-active or ../single-active or ../single-flow-active)"; presence "Indicates a all-active node is configured."; description "All-Active load balancing"; } // container all-active container port-active { must "not(../all-active or ../single-active or ../single-flow-active)"; presence "Indicates a port-active node is configured."; description "Port-Active load balancing"; } // container port-active container single-active { must "not(../all-active or ../port-active or ../single-flow-active)"; presence "Indicates a single-active node is configured."; description "Single-Active load balancing"; } // container single-active container single-flow-active { must "not(../all-active or ../port-active or ../single-active)"; presence "Indicates a single-flow-active node is configured."; description "Single-Flow-Active load balancing"; } // container single-flow-active } // container load-balancing-mode leaf backbone-source-mac { type yang:mac-address; description "Backbone Source MAC (PBB Only)"; } container force { description "Forced attributes for this ethernet segment"; container single-homed { presence "Indicates a single-homed node is configured."; description "Ethernet segment is to remain single-home"; } // container single-homed } // container force container service-carving { description "Specify service carving"; container manual { presence "Indicates a manual node is configured."; description "Configure EVPN Manual services list"; leaf primary { type string { length "1..150"; } must "../secondary"; description "Primary services list"; } leaf secondary { type string { length "1..150"; } must "../primary"; description "Secondary services list"; } } // container manual container hrw { presence "Indicates a hrw node is configured."; description "HRW mode of carving services"; } // container hrw container multicast { description "Multicast specific service carving"; container hrw-s-g { must "not(../hrw-g)"; presence "Indicates a hrw-s-g node is configured."; description "HRW s,g mode"; } // container hrw-s-g container hrw-g { must "not(../hrw-s-g)"; presence "Indicates a hrw-g node is configured."; description "HRW *,g mode"; } // container hrw-g } // container multicast container preference-based { presence "Indicates a preference-based node is configured."; description "Configure EVPN Preference-Based"; leaf weight { type uint32 { range "0..65535"; } description "Preference value"; } container access-driven { presence "Indicates a access-driven node is configured."; description "Access-Driven DF Election"; } // container access-driven } // container preference-based } // container service-carving container bgp { description "Configure BGP"; leaf route-target { type yang:mac-address; description "Set ES-Import Route Target"; } } // container bgp container convergence { presence "Indicates a convergence node is configured."; description "Specify convergence mode(s) and options"; container reroute { presence "Indicates a reroute node is configured."; description "Redirect unicast traffic to backup peer"; } // container reroute container mac-mobility { presence "Indicates a mac-mobility node is configured."; description "MAC-Mobility triggered reconvergence"; } // container mac-mobility container nexthop-tracking { presence "Indicates a nexthop-tracking node is configured."; description "Enable EVPN procedures to be influenced by BGP nexthop reachability"; } // container nexthop-tracking } // container convergence } // container ethernet-segment leaf core-isolation-group { if-feature l2vpn_evpn_is_bundle_intf; type uint32 { range "1..4294967295"; } description "Core isolation group"; } container access-signal { if-feature l2vpn_evpn_is_bundle_intf; description "Override default signal sent to bring down access circuit"; container bundle-down { presence "Indicates a bundle-down node is configured."; description "Signal Bundle Down"; } // container bundle-down } // container access-signal container virtual-ethernet-segment { presence "Indicates a virtual-ethernet-segment node is configured."; description "Virtual Ethernet Segment configuration commands"; container identifier { description "VES identifier (6 byte value in MAC format)"; container type { description "ESI Type"; leaf three { type yang:mac-address; description "Type 3 (6-byte value in MAC format)"; } } // container type } // container identifier } // container virtual-ethernet-segment } // list interface } // container interface container virtual { description "Virtual Access Segment to EVPN"; container neighbor { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "IPv4 address of the peer"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container timers { presence "Indicates a timers node is configured."; description "Configure access PW-specific EVPN timers"; leaf peering { type uint32 { range "0..300"; } description "Access PW-specific peering timer"; } leaf recovery { type uint32 { range "0..3600"; } description "Access PW-specific recovery timer"; } leaf carving { type uint32 { range "0..300"; } description "Access PW-specific carving timer"; } leaf ac-debounce { type uint32 { range "0..300000"; } description "Access PW-specific AC Debounce timer"; } } // container timers container ethernet-segment { presence "Indicates a ethernet-segment node is configured."; description "Ethernet Segment configuration commands"; container identifier { description "Ethernet Segment identifier (ESI)"; container type { description "ESI Type"; container zero { presence "Indicates a zero node is configured."; description "Type 0 (arbitrary 9-octet ESI value)"; leaf bytes-1 { type xr:Hex-integer-8; mandatory true; description "1st Byte"; } leaf bytes-23 { type xr:Hex-integer-16; units "byte"; mandatory true; description "2nd and 3rd Bytes"; } leaf bytes-45 { type xr:Hex-integer-16; units "byte"; mandatory true; description "4th and 5th Bytes"; } leaf bytes-67 { type xr:Hex-integer-16; units "byte"; mandatory true; description "6th and 7th Bytes"; } leaf bytes-89 { type xr:Hex-integer-16; units "byte"; mandatory true; description "8th and 9th Bytes"; } } // container zero } // container type } // container identifier container service-carving { description "Specify service carving"; container manual { presence "Indicates a manual node is configured."; description "Configure EVPN Manual services list"; leaf primary { type string { length "1..150"; } must "../secondary"; description "Primary services list"; } leaf secondary { type string { length "1..150"; } must "../primary"; description "Secondary services list"; } } // container manual container hrw { presence "Indicates a hrw node is configured."; description "HRW mode of carving services"; } // container hrw container multicast { description "Multicast specific service carving"; container hrw-s-g { must "not(../hrw-g)"; presence "Indicates a hrw-s-g node is configured."; description "HRW s,g mode"; } // container hrw-s-g container hrw-g { must "not(../hrw-s-g)"; presence "Indicates a hrw-g node is configured."; description "HRW *,g mode"; } // container hrw-g } // container multicast container preference-based { presence "Indicates a preference-based node is configured."; description "Configure EVPN Preference-Based"; leaf weight { type uint32 { range "0..65535"; } description "Preference value"; } container access-driven { presence "Indicates a access-driven node is configured."; description "Access-Driven DF Election"; } // container access-driven } // container preference-based } // container service-carving container bgp { description "Configure BGP"; leaf route-target { type yang:mac-address; description "Set ES-Import Route Target"; } } // container bgp } // container ethernet-segment } // list neighbor } // container neighbor container vfis { description "Specify the virtual forwarding interface name"; list vfi { key "vfi-name"; description "Specify the virtual forwarding interface name"; leaf vfi-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify the virtual forwarding interface name"; } container timers { presence "Indicates a timers node is configured."; description "Configure access VFI-specific EVPN timers"; leaf peering { type uint32 { range "0..300"; } description "Access VFI-specific peering timer"; } leaf recovery { type uint32 { range "0..3600"; } description "Access VFI-specific recovery timer"; } leaf carving { type uint32 { range "0..300"; } description "Access VFI-specific carving timer"; } leaf ac-debounce { type uint32 { range "0..300000"; } description "Access VFI-specific AC Debounce timer"; } } // container timers container ethernet-segment { presence "Indicates a ethernet-segment node is configured."; description "Ethernet Segment configuration commands"; container identifier { description "Ethernet Segment identifier (ESI)"; container type { description "ESI Type"; container zero { presence "Indicates a zero node is configured."; description "Type 0 (arbitrary 9-octet ESI value)"; leaf bytes-1 { type xr:Hex-integer-8; mandatory true; description "1st Byte"; } leaf bytes-23 { type xr:Hex-integer-16; units "byte"; mandatory true; description "2nd and 3rd Bytes"; } leaf bytes-45 { type xr:Hex-integer-16; units "byte"; mandatory true; description "4th and 5th Bytes"; } leaf bytes-67 { type xr:Hex-integer-16; units "byte"; mandatory true; description "6th and 7th Bytes"; } leaf bytes-89 { type xr:Hex-integer-16; units "byte"; mandatory true; description "8th and 9th Bytes"; } } // container zero } // container type } // container identifier container service-carving { description "Specify service carving"; container manual { presence "Indicates a manual node is configured."; description "Configure EVPN Manual services list"; leaf primary { type string { length "1..150"; } must "../secondary"; description "Primary services list"; } leaf secondary { type string { length "1..150"; } must "../primary"; description "Secondary services list"; } } // container manual container hrw { presence "Indicates a hrw node is configured."; description "HRW mode of carving services"; } // container hrw container preference-based { presence "Indicates a preference-based node is configured."; description "Configure EVPN Preference-Based"; leaf weight { type uint32 { range "0..65535"; } description "Preference value"; } container access-driven { presence "Indicates a access-driven node is configured."; description "Access-Driven DF Election"; } // container access-driven } // container preference-based } // container service-carving container bgp { description "Configure BGP"; leaf route-target { type yang:mac-address; description "Set ES-Import Route Target"; } } // container bgp } // container ethernet-segment } // list vfi } // container vfis container access-evi { presence "Indicates a access-evi node is configured."; description "Virtual access EVI interface"; container ethernet-segment { presence "Indicates a ethernet-segment node is configured."; description "Ethernet Segment configuration commands"; container identifier { description "Ethernet Segment identifier (ESI)"; container type { description "ESI Type"; container zero { presence "Indicates a zero node is configured."; description "Type 0 (arbitrary 9-octet ESI value)"; leaf bytes-1 { type xr:Hex-integer-8; mandatory true; description "1st Byte"; } leaf bytes-23 { type xr:Hex-integer-16; units "byte"; mandatory true; description "2nd and 3rd Bytes"; } leaf bytes-45 { type xr:Hex-integer-16; units "byte"; mandatory true; description "4th and 5th Bytes"; } leaf bytes-67 { type xr:Hex-integer-16; units "byte"; mandatory true; description "6th and 7th Bytes"; } leaf bytes-89 { type xr:Hex-integer-16; units "byte"; mandatory true; description "8th and 9th Bytes"; } } // container zero } // container type } // container identifier container bgp { description "Configure BGP"; leaf route-target { type yang:mac-address; description "Set ES-Import Route Target"; } } // container bgp } // container ethernet-segment } // container access-evi } // container virtual container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd } // container bgp container timers { presence "Indicates a timers node is configured."; description "Configure global EVPN timers"; leaf recovery { type uint32 { range "0..3600"; } description "Global recovery timer"; } leaf peering { type uint32 { range "0..300"; } description "Global peering timer"; } leaf carving { type uint32 { range "0..300"; } description "Global carving timer"; } leaf ac-debounce { type uint32 { range "0..300000"; } description "Global AC Debounce timer"; } leaf backup-replacement-delay { type uint32 { range "0..300000"; } description "When receiving a new backup route, delay installation for this amount of time timer"; } leaf mac-postpone { type uint32 { range "0..300"; } description "Global MAC withdraw postpone timer"; } } // container timers container load-balancing { presence "Indicates a load-balancing node is configured."; description "Configure EVPN Global load-balancing"; container flow-label { description "PBB-EVPN Flow Label load balancing"; container static { presence "Indicates a static node is configured."; description "Static configuration of Flow Label"; } // container static } // container flow-label } // container load-balancing container source { description "Configure EVPN source interface"; leaf interface { type xr:Interface-name; description "Configure EVPN router-id implicitly through Loopback Interface"; } } // container source container cost-out { presence "Indicates a cost-out node is configured."; description "Configure global EVPN cost-out"; } // container cost-out leaf startup-cost-in { type uint32 { range "30..86400"; } description "Cost-in after reload timer"; } leaf staggered-bringup-timer { type uint32 { range "0..300000"; } description "Staggered bringup timer delay timer"; } container logging { presence "Indicates a logging node is configured."; description "Configure evpn logging commands"; container df-election { presence "Indicates a df-election node is configured."; description "Enable Designated Forwarder election logging"; } // container df-election } // container logging container ethernet-segment { presence "Indicates a ethernet-segment node is configured."; description "Configure global ethernet-segment commands"; container type { description "ESI type"; container one { description "LACP ESI-auto-generation"; container auto-generation-disable { presence "Indicates a auto-generation-disable node is configured."; description "Disable ESI auto-generation"; } // container auto-generation-disable } // container one } // container type } // container ethernet-segment container groups { description "Configure EVPN group"; list group { key "group-name"; description "Configure EVPN group"; leaf group-name { type uint32 { range "1..4294967295"; } description "Configure EVPN group"; } container core { description "configure EVPN group core interface"; list interface { key "interface-name"; description "configure EVPN group core interface"; leaf interface-name { type xr:Interface-name; description "configure EVPN group core interface"; } } // list interface } // container core } // list group } // container groups container evis { description "Configure EVPN Instance VPN ID"; container segment-routing { if-feature l2vpn_platform_srv6_supported; description "Configure Segment Routing EVPN Instance"; container srv6 { description "Configure SRv6 EVPN Instance"; list evi { key "vpn-id"; description "Configure EVPN Instance VPN ID"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container load-balancing { presence "Indicates a load-balancing node is configured."; description "Configure EVPN Instance load-balancing"; container flow-label { description "Flow Label load balancing"; container static { presence "Indicates a static node is configured."; description "Static configuration of Flow Label"; } // container static } // container flow-label } // container load-balancing container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container control-word-disable { presence "Indicates a control-word-disable node is configured."; description "Disabling control-word"; } // container control-word-disable container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container vrf { description "Enable EVPN instance for layer-3 route synchronization."; container default { presence "Indicates a default node is configured."; description "EVPN Instance for the default VRF"; } // container default } // container vrf container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container etree { presence "Indicates a etree node is configured."; description "Configure EVPN Instance E-Tree"; container leaf { presence "Indicates a leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Leaf Site"; } // container leaf container rt-leaf { presence "Indicates a rt-leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; } // container rt-leaf } // container etree leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "EVI locator to use for EVPN SID allocation"; } container vpws-single-active-backup-suppression { presence "Indicates a vpws-single-active-backup-suppression node is configured."; description "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; } // container vpws-single-active-backup-suppression container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list evi } // container srv6 } // container segment-routing container segment-routing-srv6-stitching { if-feature l2vpn_platform_srv6_supported; description "Configure Segment Routing EVPN Instance with SRv6 stitching"; list evi { key "vpn-id"; description "Configure EVPN Instance VPN ID"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..1024"; } description "Description for this EVPN Instance"; } container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure locally-learned MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "EVI locator to use for EVPN SID allocation"; } } // list evi } // container segment-routing-srv6-stitching container stitching { description "Treat EVPN Instance as Stitching side"; list evi { key "vpn-id"; description "Configure EVPN Instance VPN ID"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container load-balancing { presence "Indicates a load-balancing node is configured."; description "Configure EVPN Instance load-balancing"; container flow-label { description "Flow Label load balancing"; container static { presence "Indicates a static node is configured."; description "Static configuration of Flow Label"; } // container static } // container flow-label } // container load-balancing container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container control-word-disable { presence "Indicates a control-word-disable node is configured."; description "Disabling control-word"; } // container control-word-disable container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container vrf { description "Enable EVPN instance for layer-3 route synchronization."; container default { presence "Indicates a default node is configured."; description "EVPN Instance for the default VRF"; } // container default } // container vrf container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container etree { presence "Indicates a etree node is configured."; description "Configure EVPN Instance E-Tree"; container leaf { presence "Indicates a leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Leaf Site"; } // container leaf container rt-leaf { presence "Indicates a rt-leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; } // container rt-leaf } // container etree leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "EVI locator to use for EVPN SID allocation"; } container vpws-single-active-backup-suppression { presence "Indicates a vpws-single-active-backup-suppression node is configured."; description "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; } // container vpws-single-active-backup-suppression container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list evi } // container stitching list evi { key "vpn-id"; description "Configure EVPN Instance VPN ID"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container load-balancing { presence "Indicates a load-balancing node is configured."; description "Configure EVPN Instance load-balancing"; container flow-label { description "Flow Label load balancing"; container static { presence "Indicates a static node is configured."; description "Static configuration of Flow Label"; } // container static } // container flow-label } // container load-balancing container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container control-word-disable { presence "Indicates a control-word-disable node is configured."; description "Disabling control-word"; } // container control-word-disable container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container vrf { description "Enable EVPN instance for layer-3 route synchronization."; container default { presence "Indicates a default node is configured."; description "EVPN Instance for the default VRF"; } // container default } // container vrf container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container etree { presence "Indicates a etree node is configured."; description "Configure EVPN Instance E-Tree"; container leaf { presence "Indicates a leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Leaf Site"; } // container leaf container rt-leaf { presence "Indicates a rt-leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; } // container rt-leaf } // container etree leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "EVI locator to use for EVPN SID allocation"; } container vpws-single-active-backup-suppression { presence "Indicates a vpws-single-active-backup-suppression node is configured."; description "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; } // container vpws-single-active-backup-suppression container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list evi } // container evis container route-sync { description "Configure vrf route-sync EVPN Instance VPN ID"; container stitching { description "Treat EVPN Instance as Stitching side"; list evi { key "vpn-id"; description "Configure EVPN Instance VPN ID"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container load-balancing { presence "Indicates a load-balancing node is configured."; description "Configure EVPN Instance load-balancing"; container flow-label { description "Flow Label load balancing"; container static { presence "Indicates a static node is configured."; description "Static configuration of Flow Label"; } // container static } // container flow-label } // container load-balancing container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container control-word-disable { presence "Indicates a control-word-disable node is configured."; description "Disabling control-word"; } // container control-word-disable container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container vrf { description "Enable EVPN instance for layer-3 route synchronization."; container default { presence "Indicates a default node is configured."; description "EVPN Instance for the default VRF"; } // container default } // container vrf container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container etree { presence "Indicates a etree node is configured."; description "Configure EVPN Instance E-Tree"; container leaf { presence "Indicates a leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Leaf Site"; } // container leaf container rt-leaf { presence "Indicates a rt-leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; } // container rt-leaf } // container etree leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "EVI locator to use for EVPN SID allocation"; } container vpws-single-active-backup-suppression { presence "Indicates a vpws-single-active-backup-suppression node is configured."; description "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; } // container vpws-single-active-backup-suppression container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list evi } // container stitching list evi { key "vpn-id"; description "Configure EVPN Instance VPN ID"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container load-balancing { presence "Indicates a load-balancing node is configured."; description "Configure EVPN Instance load-balancing"; container flow-label { description "Flow Label load balancing"; container static { presence "Indicates a static node is configured."; description "Static configuration of Flow Label"; } // container static } // container flow-label } // container load-balancing container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container control-word-disable { presence "Indicates a control-word-disable node is configured."; description "Disabling control-word"; } // container control-word-disable container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container vrf { description "Enable EVPN instance for layer-3 route synchronization."; container default { presence "Indicates a default node is configured."; description "EVPN Instance for the default VRF"; } // container default } // container vrf container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container etree { presence "Indicates a etree node is configured."; description "Configure EVPN Instance E-Tree"; container leaf { presence "Indicates a leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Leaf Site"; } // container leaf container rt-leaf { presence "Indicates a rt-leaf node is configured."; description "Designate EVPN Instance as EVPN E-Tree Route-Target Leaf Site"; } // container rt-leaf } // container etree leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "EVI locator to use for EVPN SID allocation"; } container vpws-single-active-backup-suppression { presence "Indicates a vpws-single-active-backup-suppression node is configured."; description "Disables Non-DF EVI/EAD routes from being advertised in EVPN-VPWS Single-Active. Used for backwards-compatibility."; } // container vpws-single-active-backup-suppression container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list evi } // container route-sync container vnis { description "Configure EVPN VNI"; container stitching { description "Treat EVPN Instance as Stitching side"; list vni { key "vni-id"; description "Configure EVPN VNI"; leaf vni-id { type uint32 { range "1..16777215"; } description "Configure EVPN VNI"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list vni } // container stitching list vni { key "vni-id"; description "Configure EVPN VNI"; leaf vni-id { type uint32 { range "1..16777215"; } description "Configure EVPN VNI"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Set the Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts container none { presence "Indicates a none node is configured."; description "Withhold BGP RTs"; } // container none } // container export } // container route-target leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container implicit-import-disable { presence "Indicates a implicit-import-disable node is configured."; description "Disable BGP implicit import"; } // container implicit-import-disable container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } leaf import { type xr:Route-policy-name; description "Import route policy"; } } // container route-policy } // container bgp leaf description { type string { length "1..64"; } description "Description for this EVPN Instance"; } container ecmp-disable-deprecated { presence "Indicates a ecmp-disable-deprecated node is configured."; description "Deprecated: migrate to <evpn evi N preferrred-nexthop modulo>"; } // container ecmp-disable-deprecated container preferred-nexthop { description "Elect unique active path from ECMP candidate list"; container lowest-ip { must "not(../highest-ip or ../modulo)"; presence "Indicates a lowest-ip node is configured."; description "Lowest nexthop IP is active"; } // container lowest-ip container highest-ip { must "not(../lowest-ip or ../modulo)"; presence "Indicates a highest-ip node is configured."; description "Highest nexthop IP is active"; } // container highest-ip container modulo { must "not(../lowest-ip or ../highest-ip)"; presence "Indicates a modulo node is configured."; description "EVI modulo of nexthops cardinality is active"; } // container modulo } // container preferred-nexthop container advertise-mac { presence "Indicates a advertise-mac node is configured."; description "Configure EVPN Instance MAC advertisement"; container bvi-mac { presence "Indicates a bvi-mac node is configured."; description "Advertise local MAC and BVI MAC routes"; } // container bvi-mac } // container advertise-mac container unknown-unicast-suppression { presence "Indicates a unknown-unicast-suppression node is configured."; description "Enabling unknown unicast suppression"; } // container unknown-unicast-suppression container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; container disable { presence "Indicates a disable node is configured."; description "Disables ingoring mismatch of local and remote MTUs"; } // container disable } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; container disable { presence "Indicates a disable node is configured."; description "Disables transmitting MTU zero to remote instead of actual local MTU"; } // container disable } // container transmit-mtu-zero container re-origination-disable { presence "Indicates a re-origination-disable node is configured."; description "Disable route re-origination"; } // container re-origination-disable container multicast { presence "Indicates a multicast node is configured."; description "Configure EVPN Instance Multicast"; container source-connected { presence "Indicates a source-connected node is configured."; description "Multicast traffic source connected"; } // container source-connected } // container multicast container proxy { presence "Indicates a proxy node is configured."; description "Configure EVPN Instance Proxy"; container igmp-snooping { presence "Indicates a igmp-snooping node is configured."; description "Proxy mode for IGMP-Snooping (selective multicast)"; } // container igmp-snooping } // container proxy container bvi-coupled-mode { presence "Indicates a bvi-coupled-mode node is configured."; description "Couples BVI state to the core EVPN Instance state"; } // container bvi-coupled-mode } // list vni } // container vnis container segment-routing { if-feature l2vpn_platform_srv6_supported; description "Segment routing configuration for EVPN"; container srv6 { presence "Indicates a srv6 node is configured."; description "SRv6 configuration for EVPN"; leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "Default locator to use for EVPN SID allocation"; } } // container srv6 } // container segment-routing container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore mismatch of local and remote MTUs"; } // container ignore-mtu-mismatch container transmit-mtu-zero { presence "Indicates a transmit-mtu-zero node is configured."; description "Transmit MTU zero to remote instead of actual local MTU"; } // container transmit-mtu-zero } // container evpn container generic-interface-lists { description "Interface list"; list generic-interface-list { key "generic-interface-list-name"; description "Interface list"; leaf generic-interface-list-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Interface list"; } container interfaces { description "Specify an interface"; list interface { if-feature l2vpn_iflist_intf_supported; key "interface-name"; description "Specify interface name"; leaf interface-name { type xr:Interface-name; description "Specify interface name"; } } // list interface } // container interfaces } // list generic-interface-list } // container generic-interface-lists container l2vpn { presence "Indicates a l2vpn node is configured."; description "Configure l2vpn commands"; container bridge { description "Configure bridge commands"; container groups { description "Specify the group the bridge belongs to"; list group { key "group-name"; description "Specify the group the bridge belongs to"; leaf group-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify the group the bridge belongs to"; } container bridge-domains { description "Configure bridge domain"; list bridge-domain { key "bridge-domain-name"; description "Configure bridge domain"; leaf bridge-domain-name { type xr:Cisco-ios-xr-string { length "1..27"; } description "Configure bridge domain"; } container evis { description "Ethernet VPN identifier"; list evi { key "vpn-id"; description "Ethernet VPN identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN identifier"; } } // list evi } // container evis container vnis { description "VxLAN VPN identifier"; list vni { key "vni-id"; description "VxLAN VPN identifier"; leaf vni-id { type uint32 { range "1..16777215"; } description "VxLAN VPN identifier"; } } // list vni } // container vnis leaf mtu { type uint32 { range "46..65535"; } description "Maximum transmission unit (payload) for this Bridge Domain"; } container coupled-mode { if-feature l2vpn_is_cli_supported; presence "Indicates a coupled-mode node is configured."; description "Enable coupled mode for the Bridge Domain"; } // container coupled-mode container transport-mode { description "Bridge domain transport mode"; container vlan { description "Vlan tagged mode"; container passthrough { presence "Indicates a passthrough node is configured."; description "passthrough incoming tags"; } // container passthrough } // container vlan } // container transport-mode container flooding { description "Traffic flooding"; container disable { presence "Indicates a disable node is configured."; description "Disable flooding"; } // container disable container unknown-unicast { description "Traffic flooding unknown unicast"; container disable { presence "Indicates a disable node is configured."; description "Disable Unknown Unicast flooding"; } // container disable } // container unknown-unicast } // container flooding container dynamic-arp-inspection { presence "Indicates a dynamic-arp-inspection node is configured."; description "Dynamic ARP Inspection"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; } // container logging container address-validation { presence "Indicates a address-validation node is configured."; description "Address Validation Configurations"; container src-mac { presence "Indicates a src-mac node is configured."; description "Match Source MAC Address"; } // container src-mac container dst-mac { presence "Indicates a dst-mac node is configured."; description "Match Destination MAC Address"; } // container dst-mac container ipv4 { presence "Indicates a ipv4 node is configured."; description "Match IPv4 Address"; } // container ipv4 } // container address-validation } // container dynamic-arp-inspection container ip-source-guard { presence "Indicates a ip-source-guard node is configured."; description "IP Source Guard"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; } // container logging } // container ip-source-guard container dhcp { description "DHCP protocol"; container ipv4 { description "IP Version 4"; container snoop { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop } // container ipv4 } // container dhcp container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } container disable { presence "Indicates a disable node is configured."; description "disable IGMP snooping for the current bridge domain"; } // container disable } // container snooping } // container igmp container mld { description "MLD protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a MLD profile"; } } // container snooping } // container mld container storm-control { description "Storm Control"; container broadcast { description "Broadcast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container broadcast container multicast { description "Multicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container multicast container unknown-unicast { description "Unknown-unicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container unknown-unicast } // container storm-control container multicast-source { description "Multicast Source Traffic"; container ipv4 { must "not(../ipv6 or ../ipv4-ipv6)"; presence "Indicates a ipv4 node is configured."; description "Traffic Type IPv4"; } // container ipv4 container ipv6 { must "not(../ipv4 or ../ipv4-ipv6)"; presence "Indicates a ipv6 node is configured."; description "Traffic Type IPv6"; } // container ipv6 container ipv4-ipv6 { must "not(../ipv4 or ../ipv6)"; presence "Indicates a ipv4-ipv6 node is configured."; description "Traffic Type IPv4 and IPv6"; } // container ipv4-ipv6 } // container multicast-source container interfaces { description "Assign interface to bridge domain"; list interface { if-feature l2vpn_iflist_intf_supported; key "interface-name"; description "Specify interface name"; leaf interface-name { type xr:Interface-name; description "Specify interface name"; } container dhcp { description "DHCP protocol"; container ipv4 { description "IP Version 4"; container none { presence "Indicates a none node is configured."; description "Disable DHCP snooping"; } // container none container snoop { presence "Indicates a snoop node is configured."; description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop } // container ipv4 } // container dhcp container dynamic-arp-inspection { presence "Indicates a dynamic-arp-inspection node is configured."; description "Dynamic ARP Inspection"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; container disable { presence "Indicates a disable node is configured."; description "disable logging"; } // container disable } // container logging container disable { presence "Indicates a disable node is configured."; description "Disable Dynamic Arp Inspection"; } // container disable container address-validation { presence "Indicates a address-validation node is configured."; description "Address Validation Configurations"; container src-mac { presence "Indicates a src-mac node is configured."; description "Match Source MAC Address"; container disable { presence "Indicates a disable node is configured."; description "disable Source MAC Address check"; } // container disable } // container src-mac container dst-mac { presence "Indicates a dst-mac node is configured."; description "Match Destination MAC Address"; container disable { presence "Indicates a disable node is configured."; description "disable Destimation MAC Address check"; } // container disable } // container dst-mac container ipv4 { presence "Indicates a ipv4 node is configured."; description "Match IPv4 Address"; container disable { presence "Indicates a disable node is configured."; description "disable IPV4 Address check"; } // container disable } // container ipv4 } // container address-validation } // container dynamic-arp-inspection container flooding { description "Traffic flooding"; container disable { presence "Indicates a disable node is configured."; description "Disable flooding"; } // container disable container unknown-unicast { description "Traffic flooding unknown unicast"; container disable { presence "Indicates a disable node is configured."; description "Disable Unknown Unicast flooding"; } // container disable } // container unknown-unicast } // container flooding container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } } // container snooping } // container igmp container ip-source-guard { presence "Indicates a ip-source-guard node is configured."; description "IP Source Guard"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; container disable { presence "Indicates a disable node is configured."; description "disable logging"; } // container disable } // container logging container disable { presence "Indicates a disable node is configured."; description "Disable IP Source Guard"; } // container disable } // container ip-source-guard container mac { description "MAC configuration commands"; container aging { if-feature l2vpn_is_cli_supported; description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute container inactivity { must "not(../absolute)"; presence "Indicates a inactivity node is configured."; description "Inactivity aging type"; } // container inactivity } // container type } // container aging container learning { presence "Indicates a learning node is configured."; description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning container limit { description "MAC-Limit configuration commands"; leaf maximum { type uint32 { range "0..4294967295"; } description "Number of MAC addresses after which MAC limit action is taken"; } container action { description "MAC address limit enforcement action"; container flood { must "not(../no-flood or ../shutdown or ../none)"; presence "Indicates a flood node is configured."; description "Stop learning but continue flooding"; } // container flood container no-flood { must "not(../flood or ../shutdown or ../none)"; presence "Indicates a no-flood node is configured."; description "Stop learning and stop flooding"; } // container no-flood container shutdown { must "not(../flood or ../no-flood or ../none)"; presence "Indicates a shutdown node is configured."; description "Stop forwarding"; } // container shutdown container none { must "not(../flood or ../no-flood or ../shutdown)"; presence "Indicates a none node is configured."; description "No action"; } // container none } // container action container notification { description "MAC address limit notification action"; container trap { must "not(../both or ../none or ../syslog)"; presence "Indicates a trap node is configured."; description "Generate SNMP trap"; } // container trap container both { must "not(../trap or ../none or ../syslog)"; presence "Indicates a both node is configured."; description "Generate syslog message and SNMP trap"; } // container both container none { must "not(../trap or ../both or ../syslog)"; presence "Indicates a none node is configured."; description "No notification"; } // container none container syslog { must "not(../trap or ../both or ../none)"; presence "Indicates a syslog node is configured."; description "Generate syslog message"; } // container syslog } // container notification } // container limit container port-down { description "Configure action when port goes down"; container flush { description "Configure MAC flush when port goes down"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC flush when port goes down"; } // container disable } // container flush } // container port-down container secure { presence "Indicates a secure node is configured."; description "MAC Secure configuration commands"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; container disable { presence "Indicates a disable node is configured."; description "disable logging"; } // container disable } // container logging container action { description "MAC secure enforcement action"; container none { must "not(../shutdown)"; presence "Indicates a none node is configured."; description "Forward the violating packet and allow the MAC to be relearned"; } // container none container shutdown { must "not(../none)"; presence "Indicates a shutdown node is configured."; description "Shutdown the violating bridge port"; } // container shutdown container restrict { must "not(../none or ../shutdown)"; presence "Indicates a restrict node is configured."; description "Drop the violating packet and not allow the MAC to be relearned"; } // container restrict } // container action container disable { presence "Indicates a disable node is configured."; description "Disable MAC Secure"; } // container disable container shutdown-recovery-timeout { description "Recovery-timer to automatically revert shutdown action"; container disable { must "not(../recovery-timer-in-second)"; presence "Indicates a disable node is configured."; description "Disable shutdown recovery timer"; } // container disable leaf recovery-timer-in-second { type uint32 { range "10..3600"; } must "not(../disable)"; description "Recovery timer in second"; } } // container shutdown-recovery-timeout } // container secure } // container mac container mld { description "MLD protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a MLD profile"; } } // container snooping } // container mld container storm-control { description "Storm Control"; container broadcast { description "Broadcast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container broadcast container multicast { description "Multicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container multicast container unknown-unicast { description "Unknown-unicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container unknown-unicast } // container storm-control container split-horizon { description "Configure split-horizon group"; container group { description "Configure split-horizon group"; } // container group } // container split-horizon container static-mac-addresses { description "Static MAC address"; list static-mac-address { key "mac-address"; description "Static MAC address"; leaf mac-address { type yang:mac-address; description "Static MAC address"; } } // list static-mac-address } // container static-mac-addresses } // list interface } // container interfaces container routed { description "Bridge domain L3 interface"; list interface { key "interface-name"; description "Assign interface to bridge domain"; leaf interface-name { type xr:Interface-name; description "Assign interface to bridge domain"; } container split-horizon { description "Configure split-horizon group"; container group { description "Configure split-horizon group"; container core { presence "Indicates a core node is configured."; description "Configure BVI under SHG 1"; } // container core } // container group } // container split-horizon } // list interface } // container routed container shutdown { presence "Indicates a shutdown node is configured."; description "shutdown the Bridge Domain"; } // container shutdown container vfis { description "Specify the virtual forwarding interface name"; list vfi { key "vfi-name"; description "Specify the virtual forwarding interface name"; leaf vfi-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify the virtual forwarding interface name"; } leaf vpn-id { type uint32 { range "1..4294967295"; } description "VPN Identifier (VPN ID)"; } container shutdown { presence "Indicates a shutdown node is configured."; description "shutdown the Virtual Forwarding Interface"; } // container shutdown container autodiscovery { description "Enable auto-discovery in this VFI"; container bgp { presence "Indicates a bgp node is configured."; description "Enable BGP auto-discovery in this VFI"; container rd { description "route distinguisher"; container auto { must "not(../two-byte-as-number or ../four-byte-as-number or ../ipv4-address)"; presence "Indicates a auto node is configured."; description "Automatic route distinguisher"; } // container auto leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Route Target"; container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts } // container export container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts } // container route-target container control-word { presence "Indicates a control-word node is configured."; description "Enable control-word for BGP-Autodiscovered PWs for this VFI"; } // container control-word container signaling-protocol { description "Enable signaling protocol for this VFI"; container bgp { presence "Indicates a bgp node is configured."; description "Enable BGP signaling protocol for this VFI"; leaf ve-id { type uint32 { range "1..16384"; } description "Local Virtual Edge Identifier (VE ID)"; } leaf ve-range { if-feature l2vpn_is_cli_supported; type uint32 { range "11..100"; } description "Local Virtual Edge Block Configurable Range"; } container load-balancing { description "Load Balancing"; container flow-label { description "Flow label based load balancing setting"; container transmit { must "not(../receive or ../both)"; presence "Indicates a transmit node is configured."; description "Insert Flow label when transmit "; } // container transmit container receive { must "not(../transmit or ../both)"; presence "Indicates a receive node is configured."; description "Discard Flow label when receive"; } // container receive container both { must "not(../transmit or ../receive)"; presence "Indicates a both node is configured."; description "Insert/Discard Flow label when transmit/recceive"; } // container both container static { must "../transmit or ../receive or ../both"; presence "Indicates a static node is configured."; description "Set Flow label parameters statically"; } // container static } // container flow-label } // container load-balancing } // container bgp container ldp { presence "Indicates a ldp node is configured."; description "Enable LDP signaling protocol for this VFI"; container vpls-id { if-feature l2vpn_is_cli_supported; description "VPLS ID"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../ipv4-address)"; description "Two Byte AS number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..32767"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } container load-balancing { description "Load Balancing"; container flow-label { description "Flow label based load balancing setting"; container transmit { must "not(../receive or ../both)"; presence "Indicates a transmit node is configured."; description "Insert Flow label when transmit "; } // container transmit container receive { must "not(../transmit or ../both)"; presence "Indicates a receive node is configured."; description "Discard Flow label when receive"; } // container receive container both { must "not(../transmit or ../receive)"; presence "Indicates a both node is configured."; description "Insert/Discard Flow label when transmit/recceive"; } // container both container static { must "../transmit or ../receive or ../both"; presence "Indicates a static node is configured."; description "Set Flow label parameters statically"; } // container static } // container flow-label } // container load-balancing } // container vpls-id } // container ldp } // container signaling-protocol leaf table-policy { type xr:Route-policy-name; description "Configure policy for installation of forwarding data to L2FIB"; } container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } } // container route-policy } // container bgp } // container autodiscovery container multicast { if-feature l2vpn_pw_p2mp_supported; description "Point to multi-point pseudowire"; container p2mp { presence "Indicates a p2mp node is configured."; description "Enable point to multi-point pseudowire in this VFI"; container transport { description "Transport type selection"; container rsvp-te { presence "Indicates a rsvp-te node is configured."; description "Use RSVP-TE as transport"; container attribute-set { description "TE attribute set parameters"; leaf p2mp-te { type xr:Cisco-ios-xr-string { length "1..64"; } description "TE tunnel attribute set name"; } } // container attribute-set } // container rsvp-te } // container transport container signaling-protocol { description "Signaling protocol selection"; container bgp { presence "Indicates a bgp node is configured."; description "Use BGP for signaling"; } // container bgp } // container signaling-protocol } // container p2mp } // container multicast container neighbors { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "IPv4 address of the peer"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container static-mac-addresses { description "Static MAC address"; list static-mac-address { key "mac-address"; description "Static MAC address"; leaf mac-address { type yang:mac-address; description "Static MAC address"; } } // list static-mac-address } // container static-mac-addresses container mpls { description "MPLS L2VPN PW command"; container static { description "MPLS L2VPN static settings"; container label { description "MPLS L2VPN static labels"; leaf local { type uint32 { range "16..1048575"; } must "../remote"; description "Local pseudowire label"; } leaf remote { type uint32 { range "16..1048575"; } must "../local"; description "Remote pseudowire label"; } } // container label } // container static } // container mpls leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this pseudowire"; } container dhcp { presence "Indicates a dhcp node is configured."; description "DHCP protocol"; container ipv4 { description "IP Version 4"; container snoop { presence "Indicates a snoop node is configured."; description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop container none { presence "Indicates a none node is configured."; description "Disable DHCP snooping"; } // container none } // container ipv4 } // container dhcp container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } } // container snooping } // container igmp container mld { description "MLD protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a MLD profile"; } } // container snooping } // container mld } // list neighbor } // container neighbors } // list vfi } // container vfis container access-vfis { description "Specify the access virtual forwarding interface name"; list access-vfi { key "access-vfi-name"; description "Specify the access virtual forwarding interface name"; leaf access-vfi-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify the access virtual forwarding interface name"; } container shutdown { presence "Indicates a shutdown node is configured."; description "shutdown the Access Virtual Forwarding Interface"; } // container shutdown container neighbors { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "IPv4 address of the peer"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container static-mac-addresses { description "Static MAC address"; list static-mac-address { key "mac-address"; description "Static MAC address"; leaf mac-address { type yang:mac-address; description "Static MAC address"; } } // list static-mac-address } // container static-mac-addresses leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this pseudowire"; } } // list neighbor } // container neighbors } // list access-vfi } // container access-vfis container mac { description "MAC configuration commands"; container aging { if-feature l2vpn_is_cli_supported; description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute } // container type container static-addresses { description "Static MAC address for filtering"; list static-address { must "drop"; key "mac-address"; description "Static MAC address for filtering"; leaf mac-address { type yang:mac-address; description "Static MAC address for filtering"; } container drop { presence "Indicates a drop node is configured."; description "Drop matching packets"; } // container drop } // list static-address } // container static-addresses container learning { description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning container withdraw { description "MAC withdraw"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC withdraw"; } // container disable container access-pw { description "MAC withdraw sent to Access PWs "; container disable { presence "Indicates a disable node is configured."; description "Disable MAC withdraw on Access PW"; } // container disable } // container access-pw container relay { presence "Indicates a relay node is configured."; description "MAC withdraw relayed to Access PWs "; } // container relay container state-down { must "not(../optimize)"; presence "Indicates a state-down node is configured."; description "MAC withdraw sent on bridge port down"; } // container state-down container optimize { must "not(../state-down)"; presence "Indicates a optimize node is configured."; description "Optimized LDP MAC withdraw (when port goes down)"; } // container optimize } // container withdraw container limit { description "MAC-Limit configuration commands"; leaf maximum { type uint32 { range "0..4294967295"; } description "Number of MAC addresses after which MAC limit action is taken"; } container action { description "MAC address limit enforcement action"; container flood { must "not(../no-flood or ../shutdown)"; presence "Indicates a flood node is configured."; description "Stop learning but continue flooding"; } // container flood container no-flood { must "not(../flood or ../shutdown)"; presence "Indicates a no-flood node is configured."; description "Stop learning and stop flooding"; } // container no-flood container shutdown { must "not(../flood or ../no-flood)"; presence "Indicates a shutdown node is configured."; description "Stop forwarding"; } // container shutdown } // container action container notification { description "MAC address limit notification action"; container trap { must "not(../both or ../none)"; presence "Indicates a trap node is configured."; description "Generate SNMP trap"; } // container trap container both { must "not(../trap or ../none)"; presence "Indicates a both node is configured."; description "Generate syslog message and SNMP trap"; } // container both container none { must "not(../trap or ../both)"; presence "Indicates a none node is configured."; description "No notification"; } // container none } // container notification } // container limit container port-down { description "Configure action when port goes down"; container flush { description "Configure MAC flush when port goes down"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC flush when port goes down"; } // container disable } // container flush } // container port-down container secure { presence "Indicates a secure node is configured."; description "MAC Secure configuration commands"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; } // container logging container threshold { presence "Indicates a threshold node is configured."; description "Threshold based mac secure"; } // container threshold container action { description "MAC secure enforcement action"; container none { must "not(../shutdown)"; presence "Indicates a none node is configured."; description "Forward the violating packet and allow the MAC to be relearned"; } // container none container shutdown { must "not(../none)"; presence "Indicates a shutdown node is configured."; description "Shutdown the violating bridge port"; } // container shutdown } // container action leaf shutdown-recovery-timeout { type uint32 { range "10..3600"; } description "Recovery-timer to automatically revert shutdown action"; } } // container secure } // container aging } // container mac container access-evis { description "Specify the virtual access EVI"; list access-evi { key "access-evi-id"; description "Specify the virtual access EVI"; leaf access-evi-id { type uint32 { range "1..65534"; } description "Specify the virtual access EVI"; } } // list access-evi } // container access-evis container neighbors { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "IPv4 address of the peer"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container flooding { if-feature l2vpn_is_cli_supported; presence "Indicates a flooding node is configured."; description "Traffic flooding"; container disable { presence "Indicates a disable node is configured."; description "Disable flooding"; } // container disable container unknown-unicast { presence "Indicates a unknown-unicast node is configured."; description "Traffic flooding unknown unicast"; container disable { presence "Indicates a disable node is configured."; description "Disable Unknow Unicast flooding"; } // container disable } // container unknown-unicast container static-mac-addresses { description "Static MAC address"; list static-mac-address { key "mac-address"; description "Static MAC address"; leaf mac-address { type yang:mac-address; description "Static MAC address"; } } // list static-mac-address } // container static-mac-addresses container mpls { description "MPLS L2VPN PW command"; container static { description "MPLS L2VPN static settings"; container label { description "MPLS L2VPN static labels"; leaf local { type uint32 { range "16..1048575"; } must "../remote"; description "Local pseudowire label"; } leaf remote { type uint32 { range "16..1048575"; } must "../local"; description "Remote pseudowire label"; } } // container label } // container static } // container mpls leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this pseudowire"; } container split-horizon { description "Configure split horizon group"; container group { presence "Indicates a group node is configured."; description "Configure split horizon group"; } // container group } // container split-horizon container storm-control { description "Storm Control"; container broadcast { description "Broadcast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container broadcast container multicast { description "Multicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container multicast container unknown-unicast { description "Unknown-unicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container unknown-unicast } // container storm-control container mac { description "MAC configuration commands"; container aging { description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { must "not(../inactivity)"; presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute container inactivity { must "not(../absolute)"; presence "Indicates a inactivity node is configured."; description "Inactivity aging type"; } // container inactivity } // container type } // container aging container learning { presence "Indicates a learning node is configured."; description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning container limit { description "MAC-Limit configuration commands"; leaf maximum { type uint32 { range "0..4294967295"; } description "Number of MAC addresses after which MAC limit action is taken"; } container action { description "MAC address limit enforcement action"; container flood { must "not(../no-flood or ../shutdown or ../none)"; presence "Indicates a flood node is configured."; description "Stop learning but continue flooding"; } // container flood container no-flood { must "not(../flood or ../shutdown or ../none)"; presence "Indicates a no-flood node is configured."; description "Stop learning and stop flooding"; } // container no-flood container shutdown { must "not(../flood or ../no-flood or ../none)"; presence "Indicates a shutdown node is configured."; description "Stop forwarding"; } // container shutdown container none { must "not(../flood or ../no-flood or ../shutdown)"; presence "Indicates a none node is configured."; description "No action"; } // container none } // container action container notification { description "MAC address limit notification action"; container trap { must "not(../both or ../none or ../syslog)"; presence "Indicates a trap node is configured."; description "Generate SNMP trap"; } // container trap container both { must "not(../trap or ../none or ../syslog)"; presence "Indicates a both node is configured."; description "Generate syslog message and SNMP trap"; } // container both container none { must "not(../trap or ../both or ../syslog)"; presence "Indicates a none node is configured."; description "No notification"; } // container none container syslog { must "not(../trap or ../both or ../none)"; presence "Indicates a syslog node is configured."; description "Generate syslog message"; } // container syslog } // container notification } // container limit container port-down { description "Configure action when port goes down"; container flush { presence "Indicates a flush node is configured."; description "Configure MAC flush when port goes down"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC flush when port goes down"; } // container disable } // container flush } // container port-down container secure { presence "Indicates a secure node is configured."; description "MAC Secure configuration commands"; container logging { presence "Indicates a logging node is configured."; description "Logging"; container disable { presence "Indicates a disable node is configured."; description "disable logging"; } // container disable } // container logging container action { description "MAC secure enforcement action"; container none { must "not(../shutdown or ../restrict)"; presence "Indicates a none node is configured."; description "Forward the violating packet and allow the MAC to be relearned"; } // container none container shutdown { must "not(../none or ../restrict)"; presence "Indicates a shutdown node is configured."; description "Shutdown the violating bridge port"; } // container shutdown container restrict { must "not(../none or ../shutdown)"; presence "Indicates a restrict node is configured."; description "Drop the violating packet and not allow the MAC to be relearned"; } // container restrict } // container action container shutdown-recovery-timeout { description "Recovery-timer to automatically revert shutdown action"; container disable { must "not(../recovery-timer-in-second)"; presence "Indicates a disable node is configured."; description "Disable shutdown recovery timer"; } // container disable leaf recovery-timer-in-second { type uint32 { range "10..3600"; } must "not(../disable)"; description "Recovery timer in second"; } } // container shutdown-recovery-timeout container disable { presence "Indicates a disable node is configured."; description "Disable MAC Secure"; } // container disable } // container secure } // container mac container dhcp { presence "Indicates a dhcp node is configured."; description "DHCP protocol"; container ipv4 { description "IP Version 4"; container snoop { presence "Indicates a snoop node is configured."; description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop container none { presence "Indicates a none node is configured."; description "Disable DHCP snooping"; } // container none } // container ipv4 } // container dhcp container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } } // container snooping } // container igmp container mld { description "MLD protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a MLD profile"; } } // container snooping } // container mld } // container flooding container backup { description "Backup pseudowire for the access pseudowire"; container neighbors { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "IPv4 address of the peer"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this pseudowire"; } } // list neighbor } // container neighbors } // container backup } // list neighbor container evpn { description "Specify the Ethernet VPN"; list evi { key "vpn-id target"; description "Ethernet VPN Identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Configure EVPN Instance VPN ID"; } leaf target { type uint32 { range "1..16777215"; } description "Specify remote attachment circuit identifier"; } } // list evi } // container evpn } // container neighbors leaf description { if-feature l2vpn_is_cli_supported; type string { length "1..64"; } description "Description for Bridge-Domain"; } container efp-visibility { presence "Indicates a efp-visibility node is configured."; description "Enable multicast for multiple VLANs in the bridge of a BVI"; } // container efp-visibility container etree { presence "Indicates a etree node is configured."; description "Configure Bridge Domain EVPN E-Tree"; container leaf { presence "Indicates a leaf node is configured."; description "Designate Bridge Domain as EVPN E-Tree Leaf"; } // container leaf } // container etree container member { description "Bridge domain member"; container vnis { description "Assign VxLAN Network Identifier to bridge domain"; list vni { key "vni-id"; description "Assign VxLAN Network Identifier to bridge domain"; leaf vni-id { type uint32 { range "1..16777215"; } description "Assign VxLAN Network Identifier to bridge domain"; } container static-mac-addresses { description "Static MAC address"; list static-mac-address { key "mac-address"; description "Static MAC address"; leaf mac-address { type yang:mac-address; description "Static MAC address"; } leaf next-hop { type inet:ipv4-address-no-zone; description "Specify the next hop IP address"; } } // list static-mac-address } // container static-mac-addresses } // list vni } // container vnis } // container member container pbb { description "Configure Provider Backbone Bridge"; container core { presence "Indicates a core node is configured."; description "PBB core bridge domain"; container rewrite { description "Set the tag rewriting policy"; container ingress { description "Set the tag rewriting policy"; container tag { description "Set the tag rewriting policy"; container push { description "Push one or more tags"; leaf dot1ad { type uint32 { range "1..4094"; } description "Push a Dot1ad tag"; } } // container push } // container tag } // container ingress } // container rewrite container mac { description "MAC configuration commands"; container aging { description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { must "not(../inactivity)"; presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute container inactivity { must "not(../absolute)"; presence "Indicates a inactivity node is configured."; description "Inactivity aging type"; } // container inactivity } // container type } // container aging container learning { presence "Indicates a learning node is configured."; description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning } // container mac container mmrp-flood-optimization { presence "Indicates a mmrp-flood-optimization node is configured."; description "Enable flood optimization for MMRP"; } // container mmrp-flood-optimization container evis { description "Ethernet VPN identifier"; list evi { key "vpn-id"; description "Ethernet VPN identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN identifier"; } } // list evi } // container evis } // container core container edge { description "PBB edge bridge domain"; list i-sid { key "instance-id core-bridge-name"; description "Configure Service Instance Identifier"; leaf instance-id { type uint32 { range "256..16777214"; } description "Configure Service Instance Identifier"; } leaf core-bridge-name { type xr:Cisco-ios-xr-string { length "1..27"; } description "Specifiy PBB core bridge domain to associate with"; } container static-mac-addresses { description "Static customer MAC address"; list static-mac-address { key "mac-address"; description "Static customer MAC address"; leaf mac-address { type yang:mac-address; description "Static customer MAC address"; } leaf bmac { type yang:mac-address; mandatory true; description "Static backbone MAC address to map with"; } } // list static-mac-address } // container static-mac-addresses leaf unknown-unicast-bmac { type yang:mac-address; description "Unknown Unicast backbone MAC address"; } container split-horizon { description "Configure split horizon option"; container group { description "Configure split horizon group option"; container vfi { description "Configure split horizon group vfi option"; container disable { presence "Indicates a disable node is configured."; description "Configure split horizon group vfi disable"; } // container disable } // container vfi } // container group } // container split-horizon container mac { description "MAC configuration commands"; container aging { description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { must "not(../inactivity)"; presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute container inactivity { must "not(../absolute)"; presence "Indicates a inactivity node is configured."; description "Inactivity aging type"; } // container inactivity } // container type } // container aging container learning { presence "Indicates a learning node is configured."; description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning container limit { description "MAC-Limit configuration commands"; leaf maximum { type uint32 { range "0..4294967295"; } description "Number of MAC addresses after which MAC limit action is taken"; } container action { description "MAC address limit enforcement action"; container flood { must "not(../no-flood or ../shutdown or ../none)"; presence "Indicates a flood node is configured."; description "Stop learning but continue flooding"; } // container flood container no-flood { must "not(../flood or ../shutdown or ../none)"; presence "Indicates a no-flood node is configured."; description "Stop learning and stop flooding"; } // container no-flood container shutdown { must "not(../flood or ../no-flood or ../none)"; presence "Indicates a shutdown node is configured."; description "Stop forwarding"; } // container shutdown container none { must "not(../flood or ../no-flood or ../shutdown)"; presence "Indicates a none node is configured."; description "No action"; } // container none } // container action container notification { description "MAC address limit notification action"; container trap { must "not(../both or ../none or ../syslog)"; presence "Indicates a trap node is configured."; description "Generate SNMP trap"; } // container trap container both { must "not(../trap or ../none or ../syslog)"; presence "Indicates a both node is configured."; description "Generate syslog message and SNMP trap"; } // container both container none { must "not(../trap or ../both or ../syslog)"; presence "Indicates a none node is configured."; description "No notification"; } // container none container syslog { must "not(../trap or ../both or ../none)"; presence "Indicates a syslog node is configured."; description "Generate syslog message"; } // container syslog } // container notification } // container limit container secure { presence "Indicates a secure node is configured."; description "MAC Secure configuration commands"; container logging { presence "Indicates a logging node is configured."; description "Logging"; container disable { presence "Indicates a disable node is configured."; description "disable logging"; } // container disable } // container logging container action { description "MAC secure enforcement action"; container none { must "not(../shutdown or ../restrict)"; presence "Indicates a none node is configured."; description "Forward the violating packet and allow the MAC to be relearned"; } // container none container shutdown { must "not(../none or ../restrict)"; presence "Indicates a shutdown node is configured."; description "Shutdown the violating bridge port"; } // container shutdown container restrict { must "not(../none or ../shutdown)"; presence "Indicates a restrict node is configured."; description "Drop the violating packet and not allow the MAC to be relearned"; } // container restrict } // container action container disable { presence "Indicates a disable node is configured."; description "Disable MAC Secure"; } // container disable container accept-shutdown { presence "Indicates a accept-shutdown node is configured."; description "Accept shutdown action to be taken due to MAC violation"; } // container accept-shutdown } // container secure } // container mac container dhcp { presence "Indicates a dhcp node is configured."; description "DHCP protocol"; container ipv4 { description "IP Version 4"; container snoop { presence "Indicates a snoop node is configured."; description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop container none { presence "Indicates a none node is configured."; description "Disable DHCP snooping"; } // container none } // container ipv4 } // container dhcp container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } } // container snooping } // container igmp } // list i-sid } // container edge } // container pbb container nv { description "Configure nV Satellite Settings"; container satellite { presence "Indicates a satellite node is configured."; description "Configure nV Satellite Settings"; container offload { description "Hardware offloading"; container ipv4 { description "IPv4"; container multicast { description "Multicast"; container enable { presence "Indicates a enable node is configured."; description "Enable IPv4 Multicast Offloading"; } // container enable } // container multicast } // container ipv4 } // container offload } // container satellite } // container nv container flood { description "Flooding Capability"; container mode { description "Choose Flooding Mode"; container ac-ingress-replication { presence "Indicates a ac-ingress-replication node is configured."; description "Ingress replication of Atachment circuits"; } // container ac-ingress-replication } // container mode } // container flood } // list bridge-domain } // container bridge-domains } // list group } // container groups } // container bridge container pbb { description "PBB configuration commands"; leaf backbone-source-mac { type yang:mac-address; description "Backbone Source MAC"; } } // container pbb container redundancy { presence "Indicates a redundancy node is configured."; description "Redundancy"; container iccp { description "Inter-Chassis Communication Protocol"; container groups { description "Group configuration"; list group { key "group-number"; description "Group configuration"; leaf group-number { type uint32 { range "1..4294967295"; } description "Group configuration"; } list interface { key "interface-name"; description "Interface name"; leaf interface-name { type xr:Interface-name; description "Interface name"; } container primary { description "Primary VLAN configuration"; leaf vlan { type xr:Cisco-ios-xr-string { length "1..800"; } description "Assign primary VLANs"; } } // container primary container secondary { description "Secondary VLAN configuration"; leaf vlan { type xr:Cisco-ios-xr-string { length "1..800"; } description "Assign secondary VLANs"; } } // container secondary container mac-flush { description "Enable STP TCN MAC flushing. Default is MVRP"; container stp-tcn { presence "Indicates a stp-tcn node is configured."; description "STP topology change notification"; } // container stp-tcn } // container mac-flush container recovery { description "Failure recovery reversion delay timer. Default is revertive after 180 seconds."; leaf delay { type uint32 { range "30..3600"; } description "Specify delay before recovery reversion after failure clears"; } } // container recovery } // list interface container multi-homing { description "ICCP-based service multi-homing"; leaf node-id { type uint32 { range "0..254"; } description "Enter multi-homing node ID"; } } // container multi-homing } // list group } // container groups } // container iccp } // container redundancy container ethernet { description "Ethernet"; container ring { description "Ring"; list g8032 { key "ethernet-ring-name"; description "Specify the g.8032 ethernet ring"; leaf ethernet-ring-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify the g.8032 ethernet ring"; } container port0 { description "Port0 of the local node connected to G.8032 ring"; list interface { key "interface-name"; description "Assign interface as port0"; leaf interface-name { type xr:Interface-name; description "Assign interface as port0"; } container monitor { description "Assign the monitor interface for g.8032 ring port0"; leaf interface { type xr:Interface-name; description "Assign the monitor interface"; } } // container monitor } // list interface } // container port0 container port1 { description "Port1 of the local node connected to G.8032 ring"; list interface { key "interface-name"; description "Assign port1 interface"; leaf interface-name { type xr:Interface-name; description "Assign port1 interface"; } container monitor { description "Assign the monitor interface for g.8032 ring port1"; leaf interface { type xr:Interface-name; description "Assign the monitor interface"; } } // container monitor } // list interface container none { presence "Indicates a none node is configured."; description "Assign port1 as none to enable g.8032 open-ring"; } // container none container virtual { presence "Indicates a virtual node is configured."; description "Assign port1 as virtual to enable g.8032 sub-ring"; } // container virtual } // container port1 container open-ring { presence "Indicates a open-ring node is configured."; description "Specify the g.8032 ring as open ring"; } // container open-ring container exclusion-list { description "Specifiy exclusion list not protected by ERP"; leaf vlan-ids { type xr:Cisco-ios-xr-string { length "1..800"; } description "Assign list of VLANs to the exclusion list"; } } // container exclusion-list container instances { description "Configure the g.8032 ethernet ring instance"; list instance { key "instance-id"; description "Configure the g.8032 ethernet ring instance"; leaf instance-id { type uint32 { range "1..2"; } description "Configure the g.8032 ethernet ring instance"; } leaf description { type string { length "1..32"; } description "Description for g.8032 ethernet ring instance"; } leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify associated g.8032 ethernet ring profile"; } container rpl { description "Specify RPL owner, neighbor or next-neighbor"; container port0 { presence "Indicates a port0 node is configured."; description "Assign port0 as RPL owner, neighbor or next-neighbor"; container owner { must "not(../neighbor or ../next-neighbor)"; presence "Indicates a owner node is configured."; description "RPL owner"; } // container owner container neighbor { must "not(../owner or ../next-neighbor)"; presence "Indicates a neighbor node is configured."; description "RPL neighbor"; } // container neighbor container next-neighbor { must "not(../owner or ../neighbor)"; presence "Indicates a next-neighbor node is configured."; description "RPL next neighbor"; } // container next-neighbor } // container port0 container port1 { presence "Indicates a port1 node is configured."; description "Assign port1 as RPL owner, neighbor or next-neighbor"; container owner { must "not(../neighbor or ../next-neighbor)"; presence "Indicates a owner node is configured."; description "RPL owner"; } // container owner container neighbor { must "not(../owner or ../next-neighbor)"; presence "Indicates a neighbor node is configured."; description "RPL neighbor"; } // container neighbor container next-neighbor { must "not(../owner or ../neighbor)"; presence "Indicates a next-neighbor node is configured."; description "RPL next neighbor"; } // container next-neighbor } // container port1 } // container rpl container inclusion-list { description "Specifiy inclusion list protected by ERP"; leaf vlan-ids { type string { length "1..800"; } description "Associates a set of VLAN IDs with the current instance"; } } // container inclusion-list container aps-channel { presence "Indicates a aps-channel node is configured."; description "Configure g.8032 instance aps-channel"; leaf level { type uint32 { range "0..7"; } description "Specify the aps message level"; } container port0 { description "Config g.8032 aps-channel info associated to port0"; leaf interface { type xr:Interface-name; description "Assign interface associated to port0"; } } // container port0 container port1 { description "Config g.8032 aps-channel info associated to port1"; leaf interface { type xr:Interface-name; must "not(../bridge-domain or ../xconnect or ../none)"; description "Assign interface associated to port1"; } leaf bridge-domain { type xr:Cisco-ios-xr-string { length "1..27"; } must "not(../interface or ../xconnect or ../none)"; description "Specify VPLS domain where virtual channel is connected"; } leaf xconnect { type xr:Cisco-ios-xr-string { length "1..38"; } must "not(../interface or ../bridge-domain or ../none)"; description "Specify VPWS xconnect where virtual channel is connected"; } container none { must "not(../interface or ../bridge-domain or ../xconnect)"; presence "Indicates a none node is configured."; description "Specify APS channel port1 as none"; } // container none } // container port1 } // container aps-channel } // list instance } // container instances } // list g8032 } // container ring } // container ethernet container flexible-xconnect-service { description "Configure flexible-xconnect-service"; container vlan-unawares { description "Configure in vlan-unaware mode"; list vlan-unaware { key "service-name"; description "Configure in vlan-unaware mode"; leaf service-name { type xr:Cisco-ios-xr-string { length "1..23"; } description "Configure in vlan-unaware mode"; } container interfaces { description "Specify the attachment circuit "; list interface { key "interface-name"; description "Specify sub-interface name to attach to flexible xconnect service"; leaf interface-name { type xr:Interface-name; description "Specify sub-interface name to attach to flexible xconnect service"; } } // list interface } // container interfaces container neighbor { description "Specify the peer to cross connect"; container evpn { description "Specify the Ethernet VPN"; container evis { description "Ethernet VPN Identifier"; list evi { key "vpn-id remote-ac-id"; description "Ethernet VPN Identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN Identifier"; } leaf remote-ac-id { type uint32 { range "1..16777215"; } description "Specify remote attachment circuit identifier"; } } // list evi } // container evis } // container evpn } // container neighbor } // list vlan-unaware } // container vlan-unawares container vlan-aware { description "Configure in vlan-aware mode"; container evis { description "Ethernet VPN Identifier"; list evi { key "vpn-id"; description "Ethernet VPN Identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN Identifier"; } container interfaces { description "Specify the attachment circuit "; list interface { key "interface-name"; description "Specify sub-interface name to attach to flexible xconnect service"; leaf interface-name { type xr:Interface-name; description "Specify sub-interface name to attach to flexible xconnect service"; } } // list interface } // container interfaces } // list evi } // container evis } // container vlan-aware } // container flexible-xconnect-service container vlan-switches { description "Configure a VLAN Switch"; list vlan-switch { key "vlan-switch-name"; description "Configure a VLAN Switch"; leaf vlan-switch-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Configure a VLAN Switch"; } container vlan { description "Configure VLAN IDs"; leaf vlan-id-range1-start { type uint32 { range "1..4094"; } description "Start of VLAN ID range"; } leaf vlan-id-range1-end { type uint32 { range "1..4094"; } must "../vlan-id-range1-start"; description "End of VLAN ID range"; } leaf vlan-id-range2-start { type uint32 { range "1..4094"; } must "../vlan-id-range1-start"; description "Start of VLAN ID range"; } leaf vlan-id-range2-end { type uint32 { range "1..4094"; } must "../vlan-id-range2-start"; description "End of VLAN ID range"; } leaf vlan-id-range3-start { type uint32 { range "1..4094"; } must "../vlan-id-range2-start"; description "Start of VLAN ID range"; } leaf vlan-id-range3-end { type uint32 { range "1..4094"; } must "../vlan-id-range3-start"; description "End of VLAN ID range"; } leaf vlan-id-range4-start { type uint32 { range "1..4094"; } must "../vlan-id-range3-start"; description "Start of VLAN ID range"; } leaf vlan-id-range4-end { type uint32 { range "1..4094"; } must "../vlan-id-range4-start"; description "End of VLAN ID range"; } leaf vlan-id-range5-start { type uint32 { range "1..4094"; } must "../vlan-id-range4-start"; description "Start of VLAN ID range"; } leaf vlan-id-range5-end { type uint32 { range "1..4094"; } must "../vlan-id-range5-start"; description "End of VLAN ID range"; } leaf vlan-id-range6-start { type uint32 { range "1..4094"; } must "../vlan-id-range5-start"; description "Start of VLAN ID range"; } leaf vlan-id-range6-end { type uint32 { range "1..4094"; } must "../vlan-id-range6-start"; description "End of VLAN ID range"; } leaf vlan-id-range7-start { type uint32 { range "1..4094"; } must "../vlan-id-range6-start"; description "Start of VLAN ID range"; } leaf vlan-id-range7-end { type uint32 { range "1..4094"; } must "../vlan-id-range7-start"; description "End of VLAN ID range"; } leaf vlan-id-range8-start { type uint32 { range "1..4094"; } must "../vlan-id-range7-start"; description "Start of VLAN ID range"; } leaf vlan-id-range8-end { type uint32 { range "1..4094"; } must "../vlan-id-range8-start"; description "End of VLAN ID range"; } leaf vlan-id-range9-start { type uint32 { range "1..4094"; } must "../vlan-id-range8-start"; description "Start of VLAN ID range"; } leaf vlan-id-range9-end { type uint32 { range "1..4094"; } must "../vlan-id-range9-start"; description "End of VLAN ID range"; } } // container vlan container interfaces { description "Assign VSP interface to VLAN Switch"; list interface { key "interface-name"; description "Specify interface name"; leaf interface-name { type xr:Interface-name; description "Specify interface name"; } } // list interface } // container interfaces container routed { description "VLAN Switch L3 interfaces"; container interface { description "Assign L3 interfaces to VLAN Switch"; container bvi { description "Assign BVI interfaces to VLAN Switch"; leaf interface-number-range1-start { type uint32 { range "1..4294967295"; } description "Start of interface number range"; } leaf interface-number-range1-end { type uint32 { range "1..4294967295"; } must "../interface-number-range1-start"; description "End of interface number range"; } leaf interface-number-range2-start { type uint32 { range "1..4294967295"; } must "../interface-number-range1-start"; description "Start of interface number range"; } leaf interface-number-range2-end { type uint32 { range "1..4294967295"; } must "../interface-number-range2-start"; description "End of interface number range"; } leaf interface-number-range3-start { type uint32 { range "1..4294967295"; } must "../interface-number-range2-start"; description "Start of interface number range"; } leaf interface-number-range3-end { type uint32 { range "1..4294967295"; } must "../interface-number-range3-start"; description "End of interface number range"; } leaf interface-number-range4-start { type uint32 { range "1..4294967295"; } must "../interface-number-range3-start"; description "Start of interface number range"; } leaf interface-number-range4-end { type uint32 { range "1..4294967295"; } must "../interface-number-range4-start"; description "End of interface number range"; } leaf interface-number-range5-start { type uint32 { range "1..4294967295"; } must "../interface-number-range4-start"; description "Start of interface number range"; } leaf interface-number-range5-end { type uint32 { range "1..4294967295"; } must "../interface-number-range4-start"; description "End of interface number range"; } leaf interface-number-range6-start { type uint32 { range "1..4294967295"; } must "../interface-number-range5-start"; description "Start of interface number range"; } leaf interface-number-range6-end { type uint32 { range "1..4294967295"; } must "../interface-number-range6-start"; description "End of interface number range"; } leaf interface-number-range7-start { type uint32 { range "1..4294967295"; } must "../interface-number-range6-start"; description "Start of interface number range"; } leaf interface-number-range7-end { type uint32 { range "1..4294967295"; } must "../interface-number-range7-start"; description "End of interface number range"; } leaf interface-number-range8-start { type uint32 { range "1..4294967295"; } must "../interface-number-range7-start"; description "Start of interface number range"; } leaf interface-number-range8-end { type uint32 { range "1..4294967295"; } must "../interface-number-range8-start"; description "End of interface number range"; } leaf interface-number-range9-start { type uint32 { range "1..4294967295"; } must "../interface-number-range8-start"; description "Start of interface number range"; } leaf interface-number-range9-end { type uint32 { range "1..4294967295"; } must "../interface-number-range9-start"; description "End of interface number range"; } } // container bvi } // container interface } // container routed container vni { description "Assign VxLAN Network Identifiers to VLAN Switch"; leaf vni-range1-start { type uint32 { range "1..16777215"; } description "Start of VNI range"; } leaf vni-range1-end { type uint32 { range "1..16777215"; } must "../vni-range1-start"; description "End of VNI range"; } leaf vni-range2-start { type uint32 { range "1..16777215"; } must "../vni-range1-start"; description "Start of VNI range"; } leaf vni-range2-end { type uint32 { range "1..16777215"; } must "../vni-range2-start"; description "End of VNI range"; } leaf vni-range3-start { type uint32 { range "1..16777215"; } must "../vni-range2-start"; description "Start of VNI range"; } leaf vni-range3-end { type uint32 { range "1..16777215"; } must "../vni-range3-start"; description "End of VNI range"; } leaf vni-range4-start { type uint32 { range "1..16777215"; } must "../vni-range3-start"; description "Start of VNI range"; } leaf vni-range4-end { type uint32 { range "1..16777215"; } must "../vni-range4-start"; description "End of VNI range"; } leaf vni-range5-start { type uint32 { range "1..16777215"; } must "../vni-range4-start"; description "Start of VNI range"; } leaf vni-range5-end { type uint32 { range "1..16777215"; } must "../vni-range5-start"; description "End of VNI range"; } leaf vni-range6-start { type uint32 { range "1..16777215"; } must "../vni-range5-start"; description "Start of VNI range"; } leaf vni-range6-end { type uint32 { range "1..16777215"; } must "../vni-range6-start"; description "End of VNI range"; } leaf vni-range7-start { type uint32 { range "1..16777215"; } must "../vni-range6-start"; description "Start of VNI range"; } leaf vni-range7-end { type uint32 { range "1..16777215"; } must "../vni-range7-start"; description "End of VNI range"; } leaf vni-range8-start { type uint32 { range "1..16777215"; } must "../vni-range7-start"; description "Start of VNI range"; } leaf vni-range8-end { type uint32 { range "1..16777215"; } must "../vni-range8-start"; description "End of VNI range"; } leaf vni-range9-start { type uint32 { range "1..16777215"; } must "../vni-range8-start"; description "Start of VNI range"; } leaf vni-range9-end { type uint32 { range "1..16777215"; } must "../vni-range9-start"; description "End of VNI range"; } } // container vni container bridge-domains { description "Configure bridge domain"; list bridge-domain { key "bridge-domain-name"; description "Configure bridge domain"; leaf bridge-domain-name { type xr:Cisco-ios-xr-string { length "1..27"; pattern 'vlan[0-9]+'; } description "Configure bridge domain"; } container evis { description "Ethernet VPN identifier"; list evi { key "vpn-id"; description "Ethernet VPN identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN identifier"; } } // list evi } // container evis container vnis { description "VxLAN VPN identifier"; list vni { key "vni-id"; description "VxLAN VPN identifier"; leaf vni-id { type uint32 { range "1..16777215"; } description "VxLAN VPN identifier"; } } // list vni } // container vnis container nv { description "Configure nV Satellite Settings"; container satellite { presence "Indicates a satellite node is configured."; description "Configure nV Satellite Settings"; container offload { description "Hardware offloading"; container ipv4 { description "IPv4"; container multicast { description "Multicast"; container enable { presence "Indicates a enable node is configured."; description "Enable IPv4 Multicast Offloading"; } // container enable } // container multicast } // container ipv4 } // container offload } // container satellite } // container nv container pbb { description "Configure Provider Backbone Bridge"; container core { presence "Indicates a core node is configured."; description "PBB core bridge domain"; container evis { description "Ethernet VPN identifier"; list evi { key "vpn-id"; description "Ethernet VPN identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN identifier"; } } // list evi } // container evis container rewrite { description "Set the tag rewriting policy"; container ingress { description "Set the tag rewriting policy"; container tag { description "Set the tag rewriting policy"; container push { description "Push one or more tags"; leaf dot1ad { type uint32 { range "1..4094"; } description "Push a Dot1ad tag"; } } // container push } // container tag } // container ingress } // container rewrite container mac { description "MAC configuration commands"; container aging { description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { must "not(../inactivity)"; presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute container inactivity { must "not(../absolute)"; presence "Indicates a inactivity node is configured."; description "Inactivity aging type"; } // container inactivity } // container type } // container aging container learning { presence "Indicates a learning node is configured."; description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning } // container mac container mmrp-flood-optimization { presence "Indicates a mmrp-flood-optimization node is configured."; description "Enable flood optimization for MMRP"; } // container mmrp-flood-optimization } // container core container edge { description "PBB edge bridge domain"; list i-sid { key "instance-id core-bridge-name"; description "Configure Service Instance Identifier"; leaf instance-id { type uint32 { range "256..16777214"; } description "Configure Service Instance Identifier"; } leaf core-bridge-name { type xr:Cisco-ios-xr-string { length "1..27"; } description "Specifiy PBB core bridge domain to associate with"; } container static-mac-addresses { description "Static customer MAC address"; list static-mac-address { key "mac-address"; description "Static customer MAC address"; leaf mac-address { type yang:mac-address; description "Static customer MAC address"; } leaf bmac { type yang:mac-address; mandatory true; description "Static backbone MAC address to map with"; } } // list static-mac-address } // container static-mac-addresses leaf unknown-unicast-bmac { type yang:mac-address; description "Unknown Unicast backbone MAC address"; } container split-horizon { description "Configure split horizon option"; container group { description "Configure split horizon group option"; container vfi { description "Configure split horizon group vfi option"; container disable { presence "Indicates a disable node is configured."; description "Configure split horizon group vfi disable"; } // container disable } // container vfi } // container group } // container split-horizon container mac { description "MAC configuration commands"; container aging { description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { must "not(../inactivity)"; presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute container inactivity { must "not(../absolute)"; presence "Indicates a inactivity node is configured."; description "Inactivity aging type"; } // container inactivity } // container type } // container aging container learning { presence "Indicates a learning node is configured."; description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning container limit { description "MAC-Limit configuration commands"; leaf maximum { type uint32 { range "0..4294967295"; } description "Number of MAC addresses after which MAC limit action is taken"; } container action { description "MAC address limit enforcement action"; container flood { must "not(../no-flood or ../shutdown or ../none)"; presence "Indicates a flood node is configured."; description "Stop learning but continue flooding"; } // container flood container no-flood { must "not(../flood or ../shutdown or ../none)"; presence "Indicates a no-flood node is configured."; description "Stop learning and stop flooding"; } // container no-flood container shutdown { must "not(../flood or ../no-flood or ../none)"; presence "Indicates a shutdown node is configured."; description "Stop forwarding"; } // container shutdown container none { must "not(../flood or ../no-flood or ../shutdown)"; presence "Indicates a none node is configured."; description "No action"; } // container none } // container action container notification { description "MAC address limit notification action"; container trap { must "not(../both or ../none or ../syslog)"; presence "Indicates a trap node is configured."; description "Generate SNMP trap"; } // container trap container both { must "not(../trap or ../none or ../syslog)"; presence "Indicates a both node is configured."; description "Generate syslog message and SNMP trap"; } // container both container none { must "not(../trap or ../both or ../syslog)"; presence "Indicates a none node is configured."; description "No notification"; } // container none container syslog { must "not(../trap or ../both or ../none)"; presence "Indicates a syslog node is configured."; description "Generate syslog message"; } // container syslog } // container notification } // container limit container secure { presence "Indicates a secure node is configured."; description "MAC Secure configuration commands"; container logging { presence "Indicates a logging node is configured."; description "Logging"; container disable { presence "Indicates a disable node is configured."; description "disable logging"; } // container disable } // container logging container action { description "MAC secure enforcement action"; container none { must "not(../shutdown or ../restrict)"; presence "Indicates a none node is configured."; description "Forward the violating packet and allow the MAC to be relearned"; } // container none container shutdown { must "not(../none or ../restrict)"; presence "Indicates a shutdown node is configured."; description "Shutdown the violating bridge port"; } // container shutdown container restrict { must "not(../none or ../shutdown)"; presence "Indicates a restrict node is configured."; description "Drop the violating packet and not allow the MAC to be relearned"; } // container restrict } // container action container disable { presence "Indicates a disable node is configured."; description "Disable MAC Secure"; } // container disable container accept-shutdown { presence "Indicates a accept-shutdown node is configured."; description "Accept shutdown action to be taken due to MAC violation"; } // container accept-shutdown } // container secure } // container mac container dhcp { presence "Indicates a dhcp node is configured."; description "DHCP protocol"; container ipv4 { description "IP Version 4"; container snoop { presence "Indicates a snoop node is configured."; description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop container none { presence "Indicates a none node is configured."; description "Disable DHCP snooping"; } // container none } // container ipv4 } // container dhcp container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } } // container snooping } // container igmp } // list i-sid } // container edge } // container pbb leaf mtu { type uint32 { range "46..65535"; } description "Maximum transmission unit (payload) for this Bridge Domain"; } container coupled-mode { if-feature l2vpn_is_cli_supported; presence "Indicates a coupled-mode node is configured."; description "Enable coupled mode for the Bridge Domain"; } // container coupled-mode container transport-mode { description "Bridge domain transport mode"; container vlan { description "Vlan tagged mode"; container passthrough { presence "Indicates a passthrough node is configured."; description "passthrough incoming tags"; } // container passthrough } // container vlan } // container transport-mode container flooding { description "Traffic flooding"; container disable { presence "Indicates a disable node is configured."; description "Disable flooding"; } // container disable container unknown-unicast { description "Traffic flooding unknown unicast"; container disable { presence "Indicates a disable node is configured."; description "Disable Unknown Unicast flooding"; } // container disable } // container unknown-unicast } // container flooding container dynamic-arp-inspection { presence "Indicates a dynamic-arp-inspection node is configured."; description "Dynamic ARP Inspection"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; } // container logging container address-validation { presence "Indicates a address-validation node is configured."; description "Address Validation Configurations"; container src-mac { presence "Indicates a src-mac node is configured."; description "Match Source MAC Address"; } // container src-mac container dst-mac { presence "Indicates a dst-mac node is configured."; description "Match Destination MAC Address"; } // container dst-mac container ipv4 { presence "Indicates a ipv4 node is configured."; description "Match IPv4 Address"; } // container ipv4 } // container address-validation } // container dynamic-arp-inspection container ip-source-guard { presence "Indicates a ip-source-guard node is configured."; description "IP Source Guard"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; } // container logging } // container ip-source-guard container dhcp { description "DHCP protocol"; container ipv4 { description "IP Version 4"; container snoop { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a DHCP profile"; } } // container snoop } // container ipv4 } // container dhcp container igmp { description "IGMP protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach an IGMP profile"; } container disable { presence "Indicates a disable node is configured."; description "disable IGMP snooping for the current bridge domain"; } // container disable } // container snooping } // container igmp container mld { description "MLD protocol"; container snooping { description "Set the snooping profile"; leaf profile { type xr:Cisco-ios-xr-string { length "1..32"; } description "Attach a MLD profile"; } } // container snooping } // container mld container storm-control { description "Storm Control"; container broadcast { description "Broadcast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container broadcast container multicast { description "Multicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container multicast container unknown-unicast { description "Unknown-unicast Storm Control"; leaf pps { type uint32 { range "1..160000"; } description "Set the storm control pps"; } leaf kbps { type uint32 { range "64..1280000"; } description "Set the storm control kbps"; } } // container unknown-unicast } // container storm-control container interface { description "Assign interface to bridge domain"; } // container interface container routed { description "Bridge domain L3 interface"; list interface { key "interface-name"; description "Assign interface to bridge domain"; leaf interface-name { type xr:Interface-name; description "Assign interface to bridge domain"; } container split-horizon { description "Configure split-horizon group"; container group { description "Configure split-horizon group"; container core { presence "Indicates a core node is configured."; description "Configure BVI under SHG 1"; } // container core } // container group } // container split-horizon } // list interface } // container routed container shutdown { presence "Indicates a shutdown node is configured."; description "shutdown the Bridge Domain"; } // container shutdown container mac { description "MAC configuration commands"; container aging { if-feature l2vpn_is_cli_supported; description "MAC-Aging configuration commands"; leaf time { type uint32 { range "300..30000"; } description "Mac aging"; } container type { description "MAC address aging type"; container absolute { presence "Indicates a absolute node is configured."; description "Absolute aging type"; } // container absolute } // container type container static-addresses { description "Static MAC address for filtering"; list static-address { must "drop"; key "mac-address"; description "Static MAC address for filtering"; leaf mac-address { type yang:mac-address; description "Static MAC address for filtering"; } container drop { presence "Indicates a drop node is configured."; description "Drop matching packets"; } // container drop } // list static-address } // container static-addresses container learning { description "MAC learning"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC learning"; } // container disable } // container learning container withdraw { description "MAC withdraw"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC withdraw"; } // container disable container access-pw { description "MAC withdraw sent to Access PWs "; container disable { presence "Indicates a disable node is configured."; description "Disable MAC withdraw on Access PW"; } // container disable } // container access-pw container relay { presence "Indicates a relay node is configured."; description "MAC withdraw relayed to Access PWs "; } // container relay container state-down { must "not(../optimize)"; presence "Indicates a state-down node is configured."; description "MAC withdraw sent on bridge port down"; } // container state-down container optimize { must "not(../state-down)"; presence "Indicates a optimize node is configured."; description "Optimized LDP MAC withdraw (when port goes down)"; } // container optimize } // container withdraw container limit { description "MAC-Limit configuration commands"; leaf maximum { type uint32 { range "0..4294967295"; } description "Number of MAC addresses after which MAC limit action is taken"; } container action { description "MAC address limit enforcement action"; container flood { must "not(../no-flood or ../shutdown)"; presence "Indicates a flood node is configured."; description "Stop learning but continue flooding"; } // container flood container no-flood { must "not(../flood or ../shutdown)"; presence "Indicates a no-flood node is configured."; description "Stop learning and stop flooding"; } // container no-flood container shutdown { must "not(../flood or ../no-flood)"; presence "Indicates a shutdown node is configured."; description "Stop forwarding"; } // container shutdown } // container action container notification { description "MAC address limit notification action"; container trap { must "not(../both or ../none)"; presence "Indicates a trap node is configured."; description "Generate SNMP trap"; } // container trap container both { must "not(../trap or ../none)"; presence "Indicates a both node is configured."; description "Generate syslog message and SNMP trap"; } // container both container none { must "not(../trap or ../both)"; presence "Indicates a none node is configured."; description "No notification"; } // container none } // container notification } // container limit container port-down { description "Configure action when port goes down"; container flush { description "Configure MAC flush when port goes down"; container disable { presence "Indicates a disable node is configured."; description "Disable MAC flush when port goes down"; } // container disable } // container flush } // container port-down container secure { presence "Indicates a secure node is configured."; description "MAC Secure configuration commands"; container logging { presence "Indicates a logging node is configured."; description "Enable Logging"; } // container logging container threshold { presence "Indicates a threshold node is configured."; description "Threshold based mac secure"; } // container threshold container action { description "MAC secure enforcement action"; container none { must "not(../shutdown)"; presence "Indicates a none node is configured."; description "Forward the violating packet and allow the MAC to be relearned"; } // container none container shutdown { must "not(../none)"; presence "Indicates a shutdown node is configured."; description "Shutdown the violating bridge port"; } // container shutdown } // container action } // container secure } // container aging } // container mac leaf description { type string { length "1..64"; } description "Description for Bridge-Domain"; } container member { description "Bridge domain member"; container vnis { description "Assign VxLAN Network Identifier to bridge domain"; list vni { key "vni-id"; description "Assign VxLAN Network Identifier to bridge domain"; leaf vni-id { type uint32 { range "1..16777215"; } description "Assign VxLAN Network Identifier to bridge domain"; } container static-mac-addresses { description "Static MAC address"; list static-mac-address { key "mac-address"; description "Static MAC address"; leaf mac-address { type yang:mac-address; description "Static MAC address"; } leaf next-hop { type inet:ipv4-address-no-zone; description "Specify the next hop IP address"; } } // list static-mac-address } // container static-mac-addresses } // list vni } // container vnis } // container member } // list bridge-domain } // container bridge-domains } // list vlan-switch } // container vlan-switches container pw-classes { description "Pseudowire class template"; list pw-class { key "pw-class-name"; description "Pseudowire class template"; leaf pw-class-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Pseudowire class template"; } container encapsulation { description "Pseudowire encapsulation"; container mpls { presence "Indicates a mpls node is configured."; description "Set pseudowire encapsulation to MPLS"; container protocol { description "Set the dynamic pseudowire signaling protocol"; container ldp { presence "Indicates a ldp node is configured."; description "Set LDP as the signaling protocol for this pseudowire class"; } // container ldp } // container protocol container control-word { presence "Indicates a control-word node is configured."; description "Enable Control word"; } // container control-word container transport-mode { if-feature l2vpn_is_cli_supported; description "Remote transport mode"; container ethernet { must "not(../vlan or ../passthrough)"; presence "Indicates a ethernet node is configured."; description "Ethernet port mode"; } // container ethernet container vlan { must "not(../ethernet or ../passthrough)"; presence "Indicates a vlan node is configured."; description "Vlan tagged mode"; } // container vlan container passthrough { must "not(../ethernet or ../vlan)"; presence "Indicates a passthrough node is configured."; description "passthrough incoming tags"; } // container passthrough } // container transport-mode container vccv { description "VCCV settings"; container verification-type { description "Enable or disable VCCV verification type"; container none { presence "Indicates a none node is configured."; description "No VCCV verification"; } // container none } // container verification-type } // container vccv container sequencing { description "Sequencing"; container transmit { must "not(../receive or ../both)"; presence "Indicates a transmit node is configured."; description "Sequencing on transmit side"; leaf resync { type uint32 { range "5..65535"; } description "Set the threshold for out-of-sequence packets before resync"; } } // container transmit container receive { must "not(../transmit or ../both)"; presence "Indicates a receive node is configured."; description "Sequencing on receive side"; leaf resync { type uint32 { range "5..65535"; } description "Set the threshold for out-of-sequence packets before resync"; } } // container receive container both { must "not(../transmit or ../receive)"; presence "Indicates a both node is configured."; description "Sequencing on both transmit and receive side"; leaf resync { type uint32 { range "5..65535"; } description "Set the threshold for out-of-sequence packets before resync"; } } // container both } // container sequencing container preferred-path { description "Preferred path tunnel settings"; container interface { description "Use tunnel interface for preferred path"; container tunnel-te { description "Specify TE tunnel interface name for preferred path"; leaf tunnel-number { type uint32 { range "0..65535"; } must "not(../tunnel-name or ../../tunnel-ip or ../../tunnel-tp or ../../../sr-te/policy)"; description "Specify tunnel number for preferred path"; } leaf tunnel-name { type xr:Cisco-ios-xr-string { length "1..60"; } must "not(../tunnel-number or ../../tunnel-ip or ../../tunnel-tp or ../../../sr-te/policy)"; description "Specify named tunnel for preferred path"; } } // container tunnel-te leaf tunnel-ip { type uint32 { range "0..65535"; } must "not(../tunnel-te/tunnel-number or ../tunnel-te/tunnel-name or ../tunnel-tp or ../../sr-te/policy)"; description "Specify IP tunnel interface name for preferred path"; } leaf tunnel-tp { type uint32 { range "0..65535"; } must "not(../tunnel-te/tunnel-number or ../tunnel-te/tunnel-name or ../tunnel-ip or ../../sr-te/policy)"; description "Specify TP tunnel interface name for preferred path"; } } // container interface container sr-te { description "Use segment-routing traffic-engineering for preferred path"; leaf policy { type xr:Cisco-ios-xr-string { length "1..60"; } must "not(../../interface/tunnel-te/tunnel-number or ../../interface/tunnel-te/tunnel-name or ../../interface/tunnel-ip or ../../interface/tunnel-tp)"; description "Specify SR TE policy for preferred path"; } } // container sr-te container fallback { description "Fallback option for preferred path"; container disable { must "../../interface/tunnel-te/tunnel-number or ../../interface/tunnel-te/tunnel-name or ../../interface/tunnel-ip or ../../interface/tunnel-tp or ../../sr-te/policy"; presence "Indicates a disable node is configured."; description "Disable fallback for preferred path"; } // container disable } // container fallback } // container preferred-path container switching-tlv { description "PW switching point TLV"; container hide { presence "Indicates a hide node is configured."; description "Hide TLV"; } // container hide } // container switching-tlv container tag-rewrite { description "tag rewrite mode"; container ingress { description "configuring ingress mode"; leaf vlan { type uint32 { range "1..4094"; } description "vlan tagged mode"; } } // container ingress } // container tag-rewrite container redundancy { if-feature l2vpn_is_cli_supported; description "PW redundancy settings"; container one-way { presence "Indicates a one-way node is configured."; description "Force one-way PW redundancy behavior in Redundancy Group"; } // container one-way leaf initial-delay { type uint32 { range "0..120"; } description "Initial delay before activating the redundant PW"; } container load-balancing { description "PW class Load Balancing"; container pw-label { presence "Indicates a pw-label node is configured."; description "Enable PW VC label based load balancing"; } // container pw-label container flow-label { description "Flow label based load balancing setting"; container transmit { must "not(../receive or ../both)"; presence "Indicates a transmit node is configured."; description "Insert Flow label on transmit "; container static { presence "Indicates a static node is configured."; description "Set Flow label parameters statically"; } // container static } // container transmit container receive { must "not(../transmit or ../both)"; presence "Indicates a receive node is configured."; description "Discard Flow label on receive"; container static { presence "Indicates a static node is configured."; description "Set Flow label parameters statically"; } // container static } // container receive container both { must "not(../transmit or ../receive)"; presence "Indicates a both node is configured."; description "Insert/Discard Flow label on transmit/recceive"; container static { presence "Indicates a static node is configured."; description "Set Flow label parameters statically"; } // container static } // container both container code { description "Flow label TLV code"; container one7 { presence "Indicates a one7 node is configured."; description "Legacy code value"; container disable { presence "Indicates a disable node is configured."; description "Disables sending code 17 TLV"; } // container disable } // container one7 } // container code } // container flow-label } // container load-balancing container ipv4 { description "Set the local source IPv4 address"; leaf source { type inet:ipv4-address-no-zone; description "The local source IPv4 address"; } } // container ipv4 } // container redundancy } // container mpls container l2tpv3 { presence "Indicates a l2tpv3 node is configured."; description "Set pseudowire encapsulation to L2TPV3"; container protocol { description "Set the dynamic pseudowire signaling protocol"; container l2tpv3 { presence "Indicates a l2tpv3 node is configured."; description "Set L2TPv3 as the signaling protocol for this pseudowire class"; leaf class { type xr:Cisco-ios-xr-string { length "1..32"; pattern '[a-zA-Z][-_.a-z0-9A-Z]*'; } description "L2TPv3 class"; } } // container l2tpv3 } // container protocol container dfbit { description "Settings of the Don't Fragment Bit (DFBIT)"; container set { presence "Indicates a set node is configured."; description "Set the DFBIT to 1"; } // container set } // container dfbit container tos { description "Setting of Type of Service (ToS)"; leaf value { type uint32 { range "0..255"; } must "../reflect"; description "Set the value of the ToS"; } container reflect { must "../value"; presence "Indicates a reflect node is configured."; description "Reflect the TOS"; } // container reflect } // container tos leaf ttl { type uint32 { range "1..255"; } description "Set the Time To Live (TTL)"; } container pmtu { presence "Indicates a pmtu node is configured."; description "Path Maximum Transmission Unit (PMTU)"; leaf max { type uint32 { range "68..65535"; } description "Set the Maximum allowable session MTU"; } } // container pmtu container ipv4 { description "Set the local source IPv4 address"; leaf source { type inet:ipv4-address-no-zone; description "The local source IPv4 address"; } } // container ipv4 container cookie { description "L2TPv3 cookie setting"; container size { description "L2TPv3 cookie size"; container zero { must "not(../four or ../eight)"; presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { must "not(../zero or ../eight)"; presence "Indicates a four node is configured."; description "The cookie size is four bytes"; } // container four container eight { must "not(../zero or ../four)"; presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; } // container eight } // container size } // container cookie container sequencing { description "Sequencing"; container both { presence "Indicates a both node is configured."; description "Sequencing on both transmit and receive side"; leaf resync { type uint32 { range "5..65535"; } description "Set the threshold for out-of-sequence packets before resync"; } } // container both } // container sequencing container transport-mode { description "Remote transport mode"; container ethernet { must "not(../vlan)"; presence "Indicates a ethernet node is configured."; description "Ethernet port mode"; } // container ethernet container vlan { must "not(../ethernet)"; presence "Indicates a vlan node is configured."; description "Vlan tagged mode"; } // container vlan } // container transport-mode } // container l2tpv3 } // container encapsulation container backup { description "Pseudowire backup"; container disable { description "Disable backup when primary comes back up"; leaf delay { type uint32 { range "0..180"; } must "not(../never)"; description "Disable backup after a specified delay"; } container never { must "not(../delay)"; presence "Indicates a never node is configured."; description "Never disable backup"; } // container never } // container disable } // container backup container mac-withdraw { presence "Indicates a mac-withdraw node is configured."; description "Send MAC withdraw message when PW becomes active"; } // container mac-withdraw } // list pw-class } // container pw-classes container ignore-mtu-mismatch-ad { presence "Indicates a ignore-mtu-mismatch-ad node is configured."; description "Ignore MTU mismatch for auto-discovered PWs"; } // container ignore-mtu-mismatch-ad container ignore-mtu-mismatch { presence "Indicates a ignore-mtu-mismatch node is configured."; description "Ignore MTU mismatch for all L2VPN"; } // container ignore-mtu-mismatch leaf description { type string { length "1..64"; } description "Multi segment psedowire global description"; } container pw-status { description "Configure PW status"; container disable { presence "Indicates a disable node is configured."; description "Disable PW status"; } // container disable } // container pw-status leaf router-id { if-feature l2vpn_is_cli_supported; type inet:ipv4-address-no-zone; description "Global L2VPN Router ID"; } container load-balancing { description "Global L2VPN Load Balancing"; container flow { description "Enable Flow based load balancing"; container src-dst-mac { must "not(../src-dst-ip)"; presence "Indicates a src-dst-mac node is configured."; description "Use source and destination MAC addresses for hashing"; } // container src-dst-mac container src-dst-ip { must "not(../src-dst-mac)"; presence "Indicates a src-dst-ip node is configured."; description "Use source and destination IP addresses for hashing"; } // container src-dst-ip } // container flow } // container load-balancing container capability { description "Global capability mode"; container single-mode { must "not(../high-mode)"; presence "Indicates a single-mode node is configured."; description "Disable global capability re-computation"; } // container single-mode container high-mode { must "not(../single-mode)"; presence "Indicates a high-mode node is configured."; description "Compute global capability as the highest node capability"; } // container high-mode } // container capability container pw-oam { description "PW OAM"; container refresh { description "Refresh interval"; leaf transmit { type uint32 { range "1..4095"; } description "Transmit"; } } // container refresh } // container pw-oam container tcn-propagation { presence "Indicates a tcn-propagation node is configured."; description "Enable topology change notification propagation"; } // container tcn-propagation container pw-grouping { presence "Indicates a pw-grouping node is configured."; description "Enable PW-Grouping"; } // container pw-grouping container neighbors { description "neighbor submode"; container all { description "all neighbors"; container ldp { description "LDP protocol"; container flap { presence "Indicates a flap node is configured."; description "Forcing targetted-sesion flapping"; } // container flap } // container ldp } // container all } // container neighbors container mac { description "Global MAC commands"; container limit { description "Global MAC limit commands"; leaf threshold { type uint32 { range "1..100"; } description "Global MAC limit threshold"; } } // container limit } // container mac container xconnect { description "Configure cross connect commands"; container groups { description "Specify the group the cross connects belong to"; list group { key "group-name"; description "Specify the group the cross connects belong to"; leaf group-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify the group the cross connects belong to"; } container p2ps { description "Configure point to point cross connect commands"; list p2p { key "p2p-xconnect-name"; description "Configure point to point cross connect commands"; leaf p2p-xconnect-name { type xr:Cisco-ios-xr-string { length "1..38"; } description "Configure point to point cross connect commands"; } container interfaces { description "Specify the attachment circuit "; list interface { key "interface-name"; description "Specify (sub-)interface name to cross connect"; leaf interface-name { type xr:Interface-name; description "Specify (sub-)interface name to cross connect"; } } // list interface } // container interfaces leaf description { type string { length "1..64"; } description "Description for cross connect"; } container vpws-seamless-integration { if-feature l2vpn_platform_vpws_seamless_integration_supported; presence "Indicates a vpws-seamless-integration node is configured."; description "EVPN-VPWS Seamless Integration with Legacy VPWS"; } // container vpws-seamless-integration container interworking { description "Set attachment circuit interworking"; container ipv4 { must "not(../ethernet)"; presence "Indicates a ipv4 node is configured."; description "IPv4 interworking"; } // container ipv4 container ethernet { must "not(../ipv4)"; presence "Indicates a ethernet node is configured."; description "Ethernet interworking"; } // container ethernet } // container interworking container backup { if-feature l2vpn_p2p_backup_supported; description "Specify backup to be shared by p2p xconnect segments"; list interface { key "interface-name"; description "Specify the attachment circuit"; leaf interface-name { type xr:Interface-name; description "Specify the attachment circuit"; } } // list interface } // container backup container neighbor { description "Specify the peer to cross connect"; container ipv4s { description "IPv4"; list ipv4 { key "address pw-id"; description "IPv4"; leaf address { type inet:ipv4-address-no-zone; description "IPv4"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container backup { description "Backup pseudowire for the cross connect"; container neighbors { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "Specify the peer to cross connect"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container mpls { description "MPLS L2VPN PW command"; container static { description "MPLS L2VPN static settings"; container label { description "MPLS L2VPN static labels"; leaf local { type uint32 { range "16..1048575"; } must "../remote"; description "Local pseudowire label"; } leaf remote { type uint32 { range "16..1048575"; } must "../local"; description "Remote pseudowire label"; } } // container label } // container static } // container mpls leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for the backup PW"; } } // list neighbor } // container neighbors } // container backup container mpls { description "MPLS L2VPN PW command"; container static { description "MPLS L2VPN static settings"; container label { description "MPLS L2VPN static labels"; leaf local { type uint32 { range "16..1048575"; } must "../remote"; description "Local pseudowire label"; } leaf remote { type uint32 { range "16..1048575"; } must "../local"; description "Remote pseudowire label"; } } // container label } // container static } // container mpls leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this XC"; } container tag-impose { description "tag impose mode"; leaf vlan { type uint32 { range "1..4094"; } description "vlan tagged mode"; } } // container tag-impose leaf bandwidth { type uint32 { range "0..4294967295"; } description "bandwidth"; } container source { description "Source address of PW"; leaf ipv6-address { type inet:ipv6-address-no-zone; description "Source IPv6 address of PW"; } } // container source container l2tp { description "L2TP PW"; container static { presence "Indicates a static node is configured."; description "L2TP PW static"; container local { description "L2TP PW static local"; leaf session { type uint32 { range "1..1023"; } description "L2TP PW static local session ID"; } container cookie { description "L2TP PW static local cookie settings"; container size { description "L2TP PW static local cookie size settings"; container zero { presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { presence "Indicates a four node is configured."; description "The cookie size is four bytes"; leaf value { type uint32 { range "0..4294967295"; } mandatory true; description "The value of the cookie"; } } // container four container eight { presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; leaf value { type uint32 { range "0..4294967295"; } must "../higher-4-bytes-value"; mandatory true; description "The value of the cookie"; } leaf higher-4-bytes-value { type uint32 { range "0..4294967295"; } must "../value"; mandatory true; description "Higher 4 bytes value"; } } // container eight } // container size container secondary { description "L2TP PW static secondary local cookie settings"; container size { description "L2TP PW static local cookie size settings"; container zero { presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { presence "Indicates a four node is configured."; description "The cookie size is four bytes"; leaf value { type uint32 { range "0..4294967295"; } mandatory true; description "The value of the cookie"; } } // container four container eight { presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; leaf value { type uint32 { range "0..4294967295"; } must "../higher-4-bytes-value"; mandatory true; description "The value of the cookie"; } leaf higher-4-bytes-value { type uint32 { range "0..4294967295"; } must "../value"; mandatory true; description "Higher 4 bytes value"; } } // container eight } // container size } // container secondary } // container cookie } // container local container remote { description "L2TP PW static remote"; leaf session { type uint32 { range "1..1023"; } description "L2TP PW static remote session ID"; } container cookie { description "L2TP PW static remote cookie settings"; container size { description "L2TP PW static remote cookie size settings"; container zero { presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { presence "Indicates a four node is configured."; description "The cookie size is four bytes"; leaf value { type uint32 { range "0..4294967295"; } mandatory true; description "The value of the cookie"; } } // container four container eight { presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; leaf value { type uint32 { range "0..4294967295"; } must "../higher-4-bytes-value"; mandatory true; description "The value of the cookie"; } leaf higher-4-bytes-value { type uint32 { range "0..4294967295"; } must "../value"; mandatory true; description "Higher 4 bytes value"; } } // container eight } // container size } // container cookie } // container remote } // container static } // container l2tp } // list ipv4 } // container ipv4s container ipv6s { description "IPv4"; list ipv6 { key "address pw-id"; description "IPv6"; leaf address { type inet:ipv6-address-no-zone; description "IPv6"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container backup { description "Backup pseudowire for the cross connect"; container neighbors { description "Specify the peer to cross connect"; list neighbor { key "address pw-id"; description "Specify the peer to cross connect"; leaf address { type inet:ipv4-address-no-zone; description "Specify the peer to cross connect"; } leaf pw-id { type uint32 { range "1..4294967295"; } description "Specify the pseudowire id"; } container mpls { description "MPLS L2VPN PW command"; container static { description "MPLS L2VPN static settings"; container label { description "MPLS L2VPN static labels"; leaf local { type uint32 { range "16..1048575"; } must "../remote"; description "Local pseudowire label"; } leaf remote { type uint32 { range "16..1048575"; } must "../local"; description "Remote pseudowire label"; } } // container label } // container static } // container mpls leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for the backup PW"; } } // list neighbor } // container neighbors } // container backup container mpls { description "MPLS L2VPN PW command"; container static { description "MPLS L2VPN static settings"; container label { description "MPLS L2VPN static labels"; leaf local { type uint32 { range "16..1048575"; } must "../remote"; description "Local pseudowire label"; } leaf remote { type uint32 { range "16..1048575"; } must "../local"; description "Remote pseudowire label"; } } // container label } // container static } // container mpls leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this XC"; } container tag-impose { description "tag impose mode"; leaf vlan { type uint32 { range "1..4094"; } description "vlan tagged mode"; } } // container tag-impose leaf bandwidth { type uint32 { range "0..4294967295"; } description "bandwidth"; } container source { description "Source address of PW"; leaf ipv6-address { type inet:ipv6-address-no-zone; description "Source IPv6 address of PW"; } } // container source container l2tp { description "L2TP PW"; container static { presence "Indicates a static node is configured."; description "L2TP PW static"; container local { description "L2TP PW static local"; leaf session { type uint32 { range "1..1023"; } description "L2TP PW static local session ID"; } container cookie { description "L2TP PW static local cookie settings"; container size { description "L2TP PW static local cookie size settings"; container zero { presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { presence "Indicates a four node is configured."; description "The cookie size is four bytes"; leaf value { type uint32 { range "0..4294967295"; } mandatory true; description "The value of the cookie"; } } // container four container eight { presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; leaf value { type uint32 { range "0..4294967295"; } must "../higher-4-bytes-value"; mandatory true; description "The value of the cookie"; } leaf higher-4-bytes-value { type uint32 { range "0..4294967295"; } must "../value"; mandatory true; description "Higher 4 bytes value"; } } // container eight } // container size container secondary { description "L2TP PW static secondary local cookie settings"; container size { description "L2TP PW static local cookie size settings"; container zero { presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { presence "Indicates a four node is configured."; description "The cookie size is four bytes"; leaf value { type uint32 { range "0..4294967295"; } mandatory true; description "The value of the cookie"; } } // container four container eight { presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; leaf value { type uint32 { range "0..4294967295"; } must "../higher-4-bytes-value"; mandatory true; description "The value of the cookie"; } leaf higher-4-bytes-value { type uint32 { range "0..4294967295"; } must "../value"; mandatory true; description "Higher 4 bytes value"; } } // container eight } // container size } // container secondary } // container cookie } // container local container remote { description "L2TP PW static remote"; leaf session { type uint32 { range "1..1023"; } description "L2TP PW static remote session ID"; } container cookie { description "L2TP PW static remote cookie settings"; container size { description "L2TP PW static remote cookie size settings"; container zero { presence "Indicates a zero node is configured."; description "The cookie size is zero bytes"; } // container zero container four { presence "Indicates a four node is configured."; description "The cookie size is four bytes"; leaf value { type uint32 { range "0..4294967295"; } mandatory true; description "The value of the cookie"; } } // container four container eight { presence "Indicates a eight node is configured."; description "The cookie size is eight bytes"; leaf value { type uint32 { range "0..4294967295"; } must "../higher-4-bytes-value"; mandatory true; description "The value of the cookie"; } leaf higher-4-bytes-value { type uint32 { range "0..4294967295"; } must "../value"; mandatory true; description "Higher 4 bytes value"; } } // container eight } // container size } // container cookie } // container remote } // container static } // container l2tp } // list ipv6 } // container ipv6s container routeds { description "Specify a routed PW"; list routed { key "global-id target-l2-prefix target-ac-id source"; description "Specify a routed PW"; leaf global-id { type uint32 { range "1..4294967295"; } description "Specify a routed PW"; } leaf target-l2-prefix { type inet:ipv4-address-no-zone; description "Target L2 prefix"; } leaf target-ac-id { type uint32 { range "1..4294967295"; } description "Target AC id"; } leaf source { type uint32 { range "1..4294967295"; } description "Source addresss of the routed PW"; } leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use for this XC"; } container tag-impose { description "tag impose mode"; leaf vlan { type uint32 { range "1..4094"; } description "vlan tagged mode"; } } // container tag-impose } // list routed } // container routeds container evpn { description "Specify the Ethernet VPN"; container evi { description "Ethernet VPN Identifier"; container targets { description "Specify remote attachment circuit identifier"; list target { key "vpn-id remote-ac-id source"; description "Specify remote attachment circuit identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN Identifier"; } leaf remote-ac-id { type uint32 { range "1..4294967294"; } description "Specify remote attachment circuit identifier"; } leaf source { type uint32 { range "1..4294967294"; } description "Specify source attachment circuit identifier"; } leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use"; } } // list target } // container targets container services { description "Specify service ID (used as local and remote ac-id)"; list service { key "vpn-id service-id"; description "Specify service ID (used as local and remote ac-id)"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN Identifier"; } leaf service-id { type uint32 { range "1..4294967294"; } description "Specify service ID (used as local and remote ac-id)"; } leaf pw-class { type xr:Cisco-ios-xr-string { length "1..32"; } description "PW class template name to use"; } } // list service } // container services container segment-routing-targets { description "Specify remote attachment circuit identifier"; list target { must "segment-routing/srv6"; key "vpn-id remote-ac-id source"; description "Specify remote attachment circuit identifier"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN Identifier"; } leaf remote-ac-id { type uint32 { range "1..4294967294"; } description "Specify remote attachment circuit identifier"; } leaf source { type uint32 { range "1..4294967294"; } description "Specify source attachment circuit identifier"; } container segment-routing { description "Configure Segment Routing VPWS Instance"; container srv6 { presence "Indicates a srv6 node is configured."; description "Configure SRv6 VPWS Instance"; leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "PW locator to use for EVPN SID allocation"; } } // container srv6 } // container segment-routing } // list target } // container segment-routing-targets container segment-routing-services { description "Specify service ID (used as local and remote ac-id)"; list service { must "segment-routing/srv6"; key "vpn-id service-id"; description "Specify service ID (used as local and remote ac-id)"; leaf vpn-id { type uint32 { range "1..65534"; } description "Ethernet VPN Identifier"; } leaf service-id { type uint32 { range "1..4294967294"; } description "Specify service ID (used as local and remote ac-id)"; } container segment-routing { description "Configure Segment Routing VPWS Instance"; container srv6 { presence "Indicates a srv6 node is configured."; description "Configure SRv6 VPWS Instance"; leaf locator { type xr:Cisco-ios-xr-string { length "1..58"; pattern '[a-z0-9A-Z][a-z0-9A-Z_.:]*'; } description "PW locator to use for EVPN SID allocation"; } } // container srv6 } // container segment-routing } // list service } // container segment-routing-services } // container evi } // container evpn } // container neighbor container monitor-sessions { description "Specify the monitor session"; list monitor-session { key "monitor-session-name"; description "Specify the monitor session"; leaf monitor-session-name { type string { length "1..64"; } description "Specify the monitor session"; } } // list monitor-session } // container monitor-sessions } // list p2p } // container p2ps container mp2mps { description "Specify the MP2MP instance name"; list mp2mp { key "instance-name"; description "Specify the MP2MP instance name"; leaf instance-name { type xr:Cisco-ios-xr-string { length "1..26"; } description "Specify the MP2MP instance name"; } leaf vpn-id { type uint32 { range "1..4294967295"; } description "VPN Identifier (VPN ID)"; } leaf mtu { type uint32 { range "64..65535"; } description "Set maximum transmission unit (payload) for this VPN MP2MP Instance"; } container shutdown { presence "Indicates a shutdown node is configured."; description "shutdown the L2VPN MP2MP Instance"; } // container shutdown leaf l2-encapsulation { type enumeration { enum "vlan" { value 4; description "Ethernet VLAN encapsulation"; } enum "ethernet" { value 5; description "Ethernet encapsulation"; } } description "Configure the L2 encapsulation for this L2VPN MP2MP Instance"; } leaf interworking { type enumeration { enum "ethernet" { value 1; description "Ethernet interworking"; } } description "Configure the interworking option for this L2VPN MP2MP Instance"; } container control-word { description "Set control-word option for this VPN MP2MP Instance"; container disable { presence "Indicates a disable node is configured."; description "Disable control-word"; } // container disable } // container control-word container autodiscovery { description "Enable auto-discovery in this MP2MP"; container bgp { presence "Indicates a bgp node is configured."; description "Enable BGP auto-discovery in this MP2MP"; container rd { description "route distinguisher"; container auto { must "not(../two-byte-as-number or ../four-byte-as-number or ../ipv4-address)"; presence "Indicates a auto node is configured."; description "Automatic route distinguisher"; } // container auto leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd container route-target { description "Route Target"; container import { description "Import Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts } // container import container export { description "Export Route Target"; container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts } // container export container two-byte-as-rts { description "Two Byte AS Number Route Target"; list two-byte-as-rt { key "two-byte-as-number assigned-number"; description "Two Byte AS Number Route Target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number"; } leaf assigned-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt } // container two-byte-as-rts container four-byte-as-rts { description "Four Byte AS number Route Target"; list four-byte-as-rt { key "four-byte-as-number assigned-number"; description "Four Byte AS number Route Target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS number"; } leaf assigned-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt } // container four-byte-as-rts container ipv4-address-rts { description "IP address Route Target"; list ipv4-address-rt { key "ipv4-address assigned-number"; description "IP address"; leaf ipv4-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf assigned-number { type uint32 { range "0..65535"; } description "IP-address:nn (hex or decimal format)"; } } // list ipv4-address-rt } // container ipv4-address-rts } // container route-target container signaling-protocol { description "Enable signaling protocol in this MP2MP"; container bgp { presence "Indicates a bgp node is configured."; description "Enable BGP signaling protocol this MP2MP"; list ce-id { key "local-ce-id-value"; description "Local Customer Edge Identifier (CE ID)"; leaf local-ce-id-value { type uint32 { range "1..16384"; } description "Local Customer Edge Identifier (CE ID)"; } list interface { must "remote-ce-id"; key "interface-name"; description "Specify the attachment circuit"; leaf interface-name { type xr:Interface-name; description "Specify the attachment circuit"; } list remote-ce-id { key "remote-ce-id-value"; description "Remote Customer Edge Identifier"; leaf remote-ce-id-value { type uint32 { range "1..16384"; } description "Remote Customer Edge Identifier"; } } // list remote-ce-id } // list interface container vpws-seamless-integration { presence "Indicates a vpws-seamless-integration node is configured."; description "EVPN-VPWS Seamless Integration with BGP-AD VPWS"; } // container vpws-seamless-integration } // list ce-id leaf ce-range { if-feature l2vpn_is_cli_supported; type uint32 { range "11..100"; } description "Local Customer Edge Block Configurable Range"; } container load-balancing { description "Load Balancing"; container flow-label { description "Flow label based load balancing setting"; container transmit { must "not(../receive or ../both)"; presence "Indicates a transmit node is configured."; description "Insert Flow label when transmit "; } // container transmit container receive { must "not(../transmit or ../both)"; presence "Indicates a receive node is configured."; description "Discard Flow label when receive"; } // container receive container both { must "not(../transmit or ../receive)"; presence "Indicates a both node is configured."; description "Insert/Discard Flow label when transmit/recceive"; } // container both } // container flow-label } // container load-balancing } // container bgp } // container signaling-protocol container route-policy { description "Apply route policy"; leaf export { type xr:Route-policy-name; description "Export route policy"; } } // container route-policy } // container bgp } // container autodiscovery } // list mp2mp } // container mp2mps } // list group } // container groups } // container xconnect container logging { description "Configure l2vpn logging commands"; container pseudowire { presence "Indicates a pseudowire node is configured."; description "Enable pseudowire logging"; } // container pseudowire container bridge-domain { presence "Indicates a bridge-domain node is configured."; description "Enable bridge-domain logging"; } // container bridge-domain container vfi { presence "Indicates a vfi node is configured."; description "Enable VFI logging"; } // container vfi container nsr { presence "Indicates a nsr node is configured."; description "Enable Non-Stop Routing logging"; } // container nsr container pwhe-replication { description "PWHE replication failure/success logging"; container disable { presence "Indicates a disable node is configured."; description "disable PWHE replication failure/success logging"; } // container disable } // container pwhe-replication } // container logging container autodiscovery { description "Configure global auto-discovery attributes"; container bgp { description "auto discovery type bgp"; container signaling-protocol { description "Configure global signaling protocol attributes"; container bgp { description "signaling protocol type bgp"; container mtu { description "mtu"; container mismatch { description "mtu mismatch"; container ignore { presence "Indicates a ignore node is configured."; description "Ignore MTU mismatch for auto-discovered PWs"; } // container ignore } // container mismatch } // container mtu } // container bgp } // container signaling-protocol } // container bgp } // container autodiscovery container pw-routing { description "Configure Pseudowire routing attributes"; leaf global-id { type uint32 { range "1..4294967295"; } description "Configure l2vpn pseudowire routing global id"; } container bgp { presence "Indicates a bgp node is configured."; description "Configure BGP"; container rd { description "Set the Route Distinguisher"; leaf two-byte-as-number { type uint32 { range "1..65535"; } must "not(../four-byte-as-number or ../ipv4-address)"; description "Two Byte AS Number"; } leaf two-byte-as-assigned-number { type uint32 { range "0..4294967295"; } must "../two-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } must "not(../two-byte-as-number or ../ipv4-address)"; description "Four Byte AS number"; } leaf four-byte-as-assigned-number { type uint32 { range "0..65535"; } must "../four-byte-as-number"; description "AS:nn (hex or decimal format)"; } leaf ipv4-address { type inet:ipv4-address-no-zone; must "not(../two-byte-as-number or ../four-byte-as-number)"; description "IP address"; } leaf ipv4-address-assigned-number { type uint32 { range "0..65535"; } must "../ipv4-address"; description "IP-address:nn (hex or decimal format)"; } } // container rd } // container bgp } // container pw-routing container snmp { description "Set SNMP related configuration"; container mib { description "Set MIB related configuration"; container interface { description "Set MIB interface related configuration"; container format { description "Set MIB interface name output format"; container external { presence "Indicates a external node is configured."; description "Set MIB interface name output format to external using slash"; } // container external } // container format } // container interface container pseudowire { description "Set MIB pseudowire related configuration"; container statistics { presence "Indicates a statistics node is configured."; description "Enable MIB pseudowire statistics (for low scale, <16K PWs)"; } // container statistics } // container pseudowire } // container mib } // container snmp } // container l2vpn } // module Cisco-IOS-XR-um-l2vpn-cfg
© 2023 YumaWorks, Inc. All rights reserved.