This module contains a collection of YANG definitions for Cisco IOS-XR multicast-routing package configuration. This YANG modul...
Version: 2021-02-17
module Cisco-IOS-XR-um-multicast-routing-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-multicast-routing-cfg"; prefix um-multicast-routing-cfg; import cisco-semver { prefix semver; } import Cisco-IOS-XR-types { prefix xr; } import ietf-inet-types { prefix inet; } 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 multicast-routing package configuration. This YANG module augments the modules with configuration data. Copyright (c) 2019-2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-02-17" { description "Added strict-rpf node under static segment-routing container 2021-01-28 Added cisco-support task yang nodes 2021-01-27 Modified must constraints under p2mp-te container 2020-12-11 Renamed improper node name 'inerface' to 'interface'. Changed max string length from 1024 to 800. 2020-12-04 Removed container maximum and its child node as these are used internally with cisco-support task. 2020-04-06 Added segment-routing container under mdt and bgp"; } revision "2019-08-20" { description "Initial release"; } semver:module-version "2.0.0"; semver:module-version "1.0.0"; container multicast-routing { presence "Indicates a multicast-routing node is configured."; description "Enable IP multicast forwarding"; container vrfs { description "VRF configs"; list vrf { key "vrf-name"; description "VRF configs"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..800"; } description "VRF configs"; } container address-family { description "Enter Address Family command mode"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "Enter ipv4 Address Family command mode"; container mdt { description "MVPN configuration"; container data { description "Data MDT configuration"; container maximum-data-mdts { presence "Indicates a maximum-data-mdts node is configured."; description "Maximum number of data-mdts to be triggered"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container maximum-data-mdts container data-mdt-group { presence "Indicates a data-mdt-group node is configured."; description "Data MDT group IP address/prefix length"; leaf ip-address { type inet:ipv4-address-no-zone; mandatory true; description "Data MDT group IP address"; } leaf prefix-length { type xr:Ipv4-prefix-length; mandatory true; description "Data MDT group IP prefix length"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container data-mdt-group container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Ingress Replication Data MDT"; leaf number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container ingress-replication container mldp { presence "Indicates a mldp node is configured."; description "MLDP Data MDT"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container mldp container p2mp-te { must "(maximum-number or route-policy) and not(maximum-number and route-policy)"; presence "Indicates a p2mp-te node is configured."; description "P2MPTE Data MDT core"; leaf maximum-number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf attribute-set { type xr:Cisco-ios-xr-string; description "The Attribute Set template to be used with the TE tunnel request"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container p2mp-te container segment-routing { description "Tree-SID Data MDT"; container mpls { presence "Indicates a mpls node is configured."; description "Use SR-MPLS Tree-SID policy"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf color { type uint32 { range "1..4294967295"; } description "On-demand color template to be used with the Tree-SID policy"; } container fast-reroute { description "Enable Fast Re-route protection for this Tree-SID"; container lfa { presence "Indicates a lfa node is configured."; description "LFA Fast Re-route"; } // container lfa } // container fast-reroute leaf route-policy { type xr:Cisco-ios-xr-string { length "1..800"; } description "Route policy to select data mdt core"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates a immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch } // container mpls } // container segment-routing } // container data container default { description "MDT Default distribution tree"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "IPv4 encapsulated MDT"; leaf ipv4-address { type inet:ipv4-address-no-zone; mandatory true; description "IPv4 encapsulated MDT"; } container partitioned { description "GRE Partitioned MDT"; leaf bidir { type inet:ipv4-address-no-zone; description "GRE Partitioned MDT for Bidir"; } } // container partitioned } // container ipv4 container mldp { description "mLDP default distribution tree"; container ipv4s { description "MP2MP core-tree with IPv4 Root Address"; list ipv4 { key "address"; description "MP2MP core-tree with IPv4 Root Address"; leaf address { type inet:ipv4-address-no-zone; description "MP2MP core-tree with IPv4 Root Address"; } container partitioned { description "mLDP Partitioned MDT"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container partitioned } // list ipv4 } // container ipv4s container p2mp { presence "Indicates a p2mp node is configured."; description "P2MP core-tree"; container partitioned { description "mLDP Partitioned MDT"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container partitioned } // container p2mp } // container mldp container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } must "not(../../mldp/ipv4s/ipv4 or ../../mldp/p2mp or ../../ipv4 or ../../ingress-replication)"; description "The Attribute Set template to be used with the TE tunnel request"; } leaf static { type xr:Interface-name { pattern "tunnel-mte[0-9]+"; } must "not(../../mldp/ipv4s/ipv4 or ../../mldp/p2mp or ../../ipv4 or ../../ingress-replication)"; description "Static P2MP-TE Tunnel"; } } // container p2mp-te container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable default ingress-replication"; } // container ingress-replication container segment-routing { description "Tree-SID distribution tree"; container mpls { must "not(../../../partitioned/segment-routing/mpls)"; presence "Indicates a mpls node is configured."; description "Use SR-MPLS Tree-SID policy"; leaf color { type union { type enumeration { enum "not-used" { value 0; description "color template is not used"; } } type uint32 { range "1..4294967295"; } } mandatory true; description "On-demand color template to be used with the Tree-SID policy"; } container fast-reroute { description "Enable Fast Re-route protection for this Tree-SID"; container lfa { presence "Indicates a lfa node is configured."; description "LFA Fast Re-route"; } // container lfa } // container fast-reroute } // container mpls } // container segment-routing } // container default container partitioned { description "MDT Partitioned distribution tree"; container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } description "The Attribute Set template to be used with the TE tunnel request"; } } // container p2mp-te container mldp { description "mLDP signaled distribution tree"; container ipv4 { description "IPv4 core"; container mp2mp { must "not(../p2mp)"; presence "Indicates a mp2mp node is configured."; description "Enable mLDP MP2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container mp2mp container p2mp { must "not(../mp2mp)"; presence "Indicates a p2mp node is configured."; description "Enable mLDP P2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container p2mp } // container ipv4 } // container mldp container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable partitioned ingress-replication"; } // container ingress-replication container segment-routing { description "Tree-SID distribution tree"; container mpls { must "not(../../../default/segment-routing/mpls)"; presence "Indicates a mpls node is configured."; description "Use SR-MPLS Tree-SID policy"; leaf color { type union { type enumeration { enum "not-used" { value 0; description "color template is not used"; } } type uint32 { range "1..4294967295"; } } mandatory true; description "On-demand color template to be used with the Tree-SID policy"; } container fast-reroute { description "Enable Fast Re-route protection for this Tree-SID"; container lfa { presence "Indicates a lfa node is configured."; description "LFA Fast Re-route"; } // container lfa } // container fast-reroute } // container mpls } // container segment-routing } // container partitioned container mldp { description "mLDP distribution tree"; container in-band-signaling { description "Enable mLDP in-band-signalling"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "Enable IPv4-core tree"; } // container ipv4 } // container in-band-signaling } // container mldp container static { description "Interface used to set MDT source address"; container segment-routing { presence "Indicates a segment-routing node is configured."; description "Set MDT core as tree-sid"; container strict-rpf { presence "Indicates a strict-rpf node is configured."; description "Enable strict RPF check"; } // container strict-rpf } // container segment-routing container p2mp-te { description "static p2mp-te"; container interfaces { description "p2mp-te interface"; list interface { key "interface-name"; description "p2mp-te interface"; leaf interface-name { type xr:Interface-name { pattern "tunnel-mte[0-9]+"; } description "p2mp-te interface"; } } // list interface } // container interfaces } // container p2mp-te } // container static leaf source { type xr:Interface-name; description "Interface used to set MDT source address"; } leaf mtu { type uint32 { range "1401..65535"; } description "MDT mtu configuration"; } } // container mdt container rate-per-route { presence "Indicates a rate-per-route node is configured."; description "Enable/disable per (S,G) rate calculation"; } // container rate-per-route container accounting { description "Enable/disable Accounting"; container per-prefix { presence "Indicates a per-prefix node is configured."; description "Enable per (S,G) accounting."; container forward-only { presence "Indicates a forward-only node is configured."; description "Enable per (S,G) forward-only accounting."; } // container forward-only } // container per-prefix } // container accounting container log-traps { presence "Indicates a log-traps node is configured."; description "Enable logging trap events"; } // container log-traps container export-rt { description "Configure Export Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container export-rt container import-rt { description "Configure Import Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; description "Two Byte AS Number route-target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; description "Four Byte AS Number route-target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; description "IP address route-target"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container import-rt container interface { description "Multicast interface configuration subcommands"; container all { description "Inherited by all interfaces"; container enable { presence "Indicates a enable node is configured."; description "Enable IP Multicast"; } // container enable } // container all container interfaces { description "select an interface to configure"; list interface { key "interface-name"; description "select an interface to configure"; leaf interface-name { type xr:Interface-name; description "select an interface to configure"; } container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable IP multicast"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable IP multicast"; } // container disable leaf boundary { type string { length "1..32"; } description "Boundary for administratively scoped multicast addresses"; } leaf ttl-threshold { type uint32 { range "1..255"; } description "TTL threshold for IPv4 multicast packets"; } } // list interface } // container interfaces } // container interface container bgp { description "Enable BGP MVPN Discovery"; container auto-discovery { presence "Indicates an auto-discovery node is configured."; description "Enable BGP Auto-Discovery"; leaf core-tree { type enumeration { enum "pim" { value 1; description "PIM core tree"; } enum "mldp" { value 2; description "mLDP core tree"; } enum "p2mp-te" { value 3; description "RSVP P2MP-TE core tree"; } enum "ingress-replication" { value 4; description "IR core tree"; } enum "segment-routing" { value 5; description "Tree-SID core tree"; } } mandatory true; description "Enable BGP Auto-Discovery"; } container leaf-info-required { presence "Indicates a leaf-info-required node is configured."; description "Explicit tracking of S-PMSI core trees"; } // container leaf-info-required container inter-as { presence "Indicates a inter-as node is configured."; description "Inter-AS MVPN"; } // container inter-as container receiver-site { presence "Indicates a receiver-site node is configured."; description "Receiver-only site"; } // container receiver-site container anycast-rp { presence "Indicates a anycast-rp node is configured."; description "Enable Anycast RP using MVPN SAFI"; leaf route-policy { type xr:Route-policy-name; description "Policy for filtering routes"; } } // container anycast-rp container pmsi-timer { when "../core-tree != 'pim'"; description "Set PMSI Tunnel timers"; leaf change-delay { type uint32 { range "0..4294967295"; } description "Set Change Delay timer"; } leaf stop-forwarding { type uint32 { range "0..4294967295"; } description "Set Stop Forwarding timer"; } } // container pmsi-timer container segmented { must "../core-tree != 'pim'"; presence "Indicates a segmented node is configured."; description "Enable Segmented Multicast/MVPN"; leaf bandwidth-threshold { type uint32 { range "0..1000000000"; } description "Set Bandwidth threshold for Ingress Replication core-tree"; } leaf color { type uint32 { range "0..4294967295"; } description "Enable Color Opaque Extended Community"; } } // container segmented container inherit-vrf-ri { description "Inherit VRF Route-Import EC"; leaf vrf { type xr:Cisco-ios-xr-string { length "1..800"; } description "VRF to inherit from"; } } // container inherit-vrf-ri } // container auto-discovery } // container bgp container static-rpf { description "Configure a static RPF rule for a given prefix/mask"; list address-range { key "prefix-address prefix-length"; leaf prefix-address { type inet:ipv4-address-no-zone; description "Prefix for address range"; } leaf prefix-length { type uint32 { range "0..32"; } description "Prefix mask for address range"; } leaf interface { type xr:Interface-name; mandatory true; description "Static route interface"; } leaf next-hop-address { type inet:ipv4-address-no-zone; mandatory true; description "Static route next-hop"; } } // list address-range } // container static-rpf container core-tree-protocol { description "Configure Core-tree-protocol"; container rsvp-te { presence "Indicates a rsvp-te node is configured."; description "Configure P2MP-TE as the Core-tree-protocol"; leaf group-list { type xr:Cisco-ios-xr-string; description "ACL for group-list"; } } // container rsvp-te } // container core-tree-protocol container static { description "Configure a static Policy"; list sr-policy { key "sr-policy-name"; description "SR P2MP Policy for Multicast"; leaf sr-policy-name { type xr:Cisco-ios-xr-string; description "Name of the SR P2MP Policy"; } leaf ingress { type string; description "Ingress Node address of traffic (for strict-rpf)"; } } // list sr-policy } // container static } // container ipv4 container ipv6 { presence "Indicates a ipv4 node is configured."; description "Enter ipv6 Address Family command mode"; container mdt { description "MVPN configuration"; container data { description "Data MDT configuration"; container maximum-data-mdts { presence "Indicates a maximum-data-mdts node is configured."; description "Maximum number of data-mdts to be triggered"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container maximum-data-mdts container data-mdt-group { presence "Indicates a data-mdt-group node is configured."; description "Data MDT group IP address/prefix length"; leaf ip-address { type inet:ipv4-address-no-zone; mandatory true; description "Data MDT group IP address"; } leaf prefix-length { type xr:Ipv4-prefix-length; mandatory true; description "Data MDT group IP prefix length"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container data-mdt-group container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Ingress Replication Data MDT"; leaf number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container ingress-replication container mldp { presence "Indicates a mldp node is configured."; description "MLDP Data MDT"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container mldp container p2mp-te { must "(maximum-number or route-policy) and not(maximum-number and route-policy)"; presence "Indicates a p2mp-te node is configured."; description "P2MPTE Data MDT core"; leaf maximum-number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf attribute-set { type xr:Cisco-ios-xr-string; description "The Attribute Set template to be used with the TE tunnel request"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container p2mp-te } // container data container default { description "MDT Default distribution tree"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "IPv4 encapsulated MDT"; leaf ipv4-address { type inet:ipv4-address-no-zone; mandatory true; description "IPv4 encapsulated MDT"; } container partitioned { description "GRE Partitioned MDT"; leaf bidir { type inet:ipv4-address-no-zone; description "GRE Partitioned MDT for Bidir"; } } // container partitioned } // container ipv4 container mldp { description "mLDP default distribution tree"; container ipv4s { description "MP2MP core-tree with IPv4 Root Address"; list ipv4 { key "address"; description "MP2MP core-tree with IPv4 Root Address"; leaf address { type inet:ipv4-address-no-zone; description "MP2MP core-tree with IPv4 Root Address"; } container partitioned { description "mLDP Partitioned MDT"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container partitioned } // list ipv4 } // container ipv4s container p2mp { presence "Indicates a p2mp node is configured."; description "P2MP core-tree"; container partitioned { description "mLDP Partitioned MDT"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container partitioned } // container p2mp } // container mldp container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } must "not(../../mldp/ipv4s/ipv4 or ../../mldp/p2mp or ../../ipv4 or ../../ingress-replication)"; description "The Attribute Set template to be used with the TE tunnel request"; } leaf static { type xr:Interface-name { pattern "tunnel-mte[0-9]+"; } must "not(../../mldp/ipv4s/ipv4 or ../../mldp/p2mp or ../../ipv4 or ../../ingress-replication)"; description "Static P2MP-TE Tunnel"; } } // container p2mp-te container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable default ingress-replication"; } // container ingress-replication } // container default container partitioned { description "MDT Partitioned distribution tree"; container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } description "The Attribute Set template to be used with the TE tunnel request"; } } // container p2mp-te container mldp { description "mLDP signaled distribution tree"; container ipv4 { description "IPv4 core"; container mp2mp { must "not(../p2mp)"; presence "Indicates a mp2mp node is configured."; description "Enable mLDP MP2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container mp2mp container p2mp { must "not(../mp2mp)"; presence "Indicates a p2mp node is configured."; description "Enable mLDP P2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container p2mp } // container ipv4 } // container mldp container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable partitioned ingress-replication"; } // container ingress-replication } // container partitioned container mldp { description "mLDP distribution tree"; container in-band-signaling { description "Enable mLDP in-band-signalling"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "Enable IPv4-core tree"; } // container ipv4 } // container in-band-signaling } // container mldp container static { description "Interface used to set MDT source address"; container segment-routing { presence "Indicates a segment-routing node is configured."; description "Set MDT core as tree-sid"; container strict-rpf { presence "Indicates a strict-rpf node is configured."; description "Enable strict RPF check"; } // container strict-rpf } // container segment-routing } // container static leaf source { type xr:Interface-name; description "Interface used to set MDT source address"; } leaf mtu { type uint32 { range "1401..65535"; } description "MDT mtu configuration"; } } // container mdt container rate-per-route { presence "Indicates a rate-per-route node is configured."; description "Enable/disable per (S,G) rate calculation"; } // container rate-per-route container accounting { description "Enable/disable Accounting"; container per-prefix { presence "Indicates a per-prefix node is configured."; description "Enable per (S,G) accounting."; container forward-only { presence "Indicates a forward-only node is configured."; description "Enable per (S,G) forward-only accounting."; } // container forward-only } // container per-prefix } // container accounting container log-traps { presence "Indicates a log-traps node is configured."; description "Enable logging trap events"; } // container log-traps container export-rt { description "Configure Export Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container export-rt container import-rt { description "Configure Import Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; description "Two Byte AS Number route-target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; description "Four Byte AS Number route-target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; description "IP address route-target"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container import-rt container interface { description "Multicast interface configuration subcommands"; container all { description "Inherited by all interfaces"; container enable { presence "Indicates a enable node is configured."; description "Enable IP Multicast"; } // container enable } // container all container interfaces { description "select an interface to configure"; list interface { key "interface-name"; description "select an interface to configure"; leaf interface-name { type xr:Interface-name; description "select an interface to configure"; } container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable IP multicast"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable IP multicast"; } // container disable leaf boundary { type string { length "1..32"; } description "Boundary for administratively scoped multicast addresses"; } leaf ttl-threshold { type uint32 { range "1..255"; } description "TTL threshold for IPv4 multicast packets"; } } // list interface } // container interfaces } // container interface container bgp { description "Enable BGP MVPN Discovery"; container auto-discovery { presence "Indicates an auto-discovery node is configured."; description "Enable BGP Auto-Discovery"; leaf core-tree { type enumeration { enum "pim" { value 1; description "PIM core tree"; } enum "mldp" { value 2; description "mLDP core tree"; } enum "p2mp-te" { value 3; description "RSVP P2MP-TE core tree"; } enum "ingress-replication" { value 4; description "IR core tree"; } } mandatory true; description "Enable BGP Auto-Discovery"; } container leaf-info-required { presence "Indicates a leaf-info-required node is configured."; description "Explicit tracking of S-PMSI core trees"; } // container leaf-info-required container inter-as { presence "Indicates a inter-as node is configured."; description "Inter-AS MVPN"; } // container inter-as container receiver-site { presence "Indicates a receiver-site node is configured."; description "Receiver-only site"; } // container receiver-site container anycast-rp { presence "Indicates a anycast-rp node is configured."; description "Enable Anycast RP using MVPN SAFI"; leaf route-policy { type xr:Route-policy-name; description "Policy for filtering routes"; } } // container anycast-rp container pmsi-timer { when "../core-tree != 'pim'"; description "Set PMSI Tunnel timers"; leaf change-delay { type uint32 { range "0..4294967295"; } description "Set Change Delay timer"; } leaf stop-forwarding { type uint32 { range "0..4294967295"; } description "Set Stop Forwarding timer"; } } // container pmsi-timer container segmented { must "../core-tree != 'pim'"; presence "Indicates a segmented node is configured."; description "Enable Segmented Multicast/MVPN"; leaf bandwidth-threshold { type uint32 { range "0..1000000000"; } description "Set Bandwidth threshold for Ingress Replication core-tree"; } leaf color { type uint32 { range "0..4294967295"; } description "Enable Color Opaque Extended Community"; } } // container segmented container inherit-vrf-ri { description "Inherit VRF Route-Import EC"; leaf vrf { type xr:Cisco-ios-xr-string { length "1..800"; } description "VRF to inherit from"; } } // container inherit-vrf-ri } // container auto-discovery } // container bgp container static-rpf { description "Configure a static RPF rule for a given prefix/mask"; list address-range { key "prefix-address prefix-length"; leaf prefix-address { type inet:ipv6-address-no-zone; description "Prefix for address range"; } leaf prefix-length { type uint32 { range "0..128"; } description "Prefix mask for address range"; } leaf interface { type xr:Interface-name; mandatory true; description "Static route interface"; } leaf next-hop-address { type inet:ipv6-address-no-zone; mandatory true; description "Static route next-hop"; } } // list address-range } // container static-rpf container core-tree-protocol { description "Configure Core-tree-protocol"; container rsvp-te { presence "Indicates a rsvp-te node is configured."; description "Configure P2MP-TE as the Core-tree-protocol"; leaf group-list { type xr:Cisco-ios-xr-string; description "ACL for group-list"; } } // container rsvp-te } // container core-tree-protocol container static { description "Configure a static Policy"; list sr-policy { key "sr-policy-name"; description "SR P2MP Policy for Multicast"; leaf sr-policy-name { type xr:Cisco-ios-xr-string; description "Name of the SR P2MP Policy"; } leaf ingress { type string; description "Ingress Node address of traffic (for strict-rpf)"; } } // list sr-policy } // container static } // container ipv6 } // container address-family } // list vrf } // container vrfs container address-family { description "Enter Address Family command mode"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "Enter ipv4 Address Family command mode"; container mdt { description "MVPN configuration"; container data { description "Data MDT configuration"; container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Ingress Replication Data MDT"; leaf number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container ingress-replication container mldp { presence "Indicates a mldp node is configured."; description "MLDP Data MDT"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container mldp container p2mp-te { must "(maximum-number or route-policy) and not(maximum-number and route-policy)"; presence "Indicates a p2mp-te node is configured."; description "P2MPTE Data MDT core"; leaf maximum-number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf attribute-set { type xr:Cisco-ios-xr-string; description "The Attribute Set template to be used with the TE tunnel request"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container p2mp-te container segment-routing { description "Tree-SID Data MDT"; container mpls { presence "Indicates a mpls node is configured."; description "Use SR-MPLS Tree-SID policy"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf color { type uint32 { range "1..4294967295"; } description "On-demand color template to be used with the Tree-SID policy"; } container fast-reroute { description "Enable Fast Re-route protection for this Tree-SID"; container lfa { presence "Indicates a lfa node is configured."; description "LFA Fast Re-route"; } // container lfa } // container fast-reroute leaf route-policy { type xr:Cisco-ios-xr-string { length "1..800"; } description "Route policy to select data mdt core"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates a immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch } // container mpls } // container segment-routing } // container data container default { description "MDT Default distribution tree"; container mldp { description "mLDP default distribution tree"; container p2mp { must "not(../../p2mp-te)"; presence "Indicates a p2mp node is configured."; description "P2MP core-tree"; } // container p2mp } // container mldp container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } must "not(../../mldp/p2mp)"; description "The Attribute Set template to be used with the TE tunnel request"; } } // container p2mp-te container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable default ingress-replication"; } // container ingress-replication container segment-routing { description "Tree-SID distribution tree"; container mpls { must "not(../../../partitioned/segment-routing/mpls)"; presence "Indicates a mpls node is configured."; description "Use SR-MPLS Tree-SID policy"; leaf color { type union { type enumeration { enum "not-used" { value 0; description "color template is not used"; } } type uint32 { range "1..4294967295"; } } mandatory true; description "On-demand color template to be used with the Tree-SID policy"; } container fast-reroute { description "Enable Fast Re-route protection for this Tree-SID"; container lfa { presence "Indicates a lfa node is configured."; description "LFA Fast Re-route"; } // container lfa } // container fast-reroute } // container mpls } // container segment-routing } // container default leaf source { type xr:Interface-name; description "Interface used to set MDT source address"; } leaf mtu { type uint32 { range "1401..65535"; } description "MDT mtu configuration"; } container segment-border { presence "Indicates a segment-border node is configured."; description "Border router for segmented multicast"; leaf route-policy { type xr:Route-policy-name; description "Route-policy to select segmented core type"; } } // container segment-border container segmented-inband { presence "Indicates a segmented-inband node is configured."; description "MDT Segmented Inband distribution tree"; leaf core-tree { type enumeration { enum "mldp" { value 2; description "mLDP core tree"; } enum "p2mp-te" { value 3; description "RSVP P2MP-TE core tree"; } enum "ingress-replication" { value 4; description "IR core tree"; } } mandatory true; description "MDT Segmented Inband distribution tree"; } leaf color { type uint32 { range "0..4294967295"; } description "Enable Color Opaque extended community"; } } // container segmented-inband container partitioned { description "MDT Partitioned distribution tree"; container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } description "The Attribute Set template to be used with the TE tunnel request"; } } // container p2mp-te container mldp { description "mLDP signaled distribution tree"; container ipv4 { description "IPv4 core"; container mp2mp { must "not(../p2mp)"; presence "Indicates a mp2mp node is configured."; description "Enable mLDP MP2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container mp2mp container p2mp { must "not(../mp2mp)"; presence "Indicates a p2mp node is configured."; description "Enable mLDP P2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container p2mp } // container ipv4 } // container mldp container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable partitioned ingress-replication"; } // container ingress-replication container segment-routing { description "Tree-SID distribution tree"; container mpls { must "not(../../../default/segment-routing/mpls)"; presence "Indicates a mpls node is configured."; description "Use SR-MPLS Tree-SID policy"; leaf color { type union { type enumeration { enum "not-used" { value 0; description "color template is not used"; } } type uint32 { range "1..4294967295"; } } mandatory true; description "On-demand color template to be used with the Tree-SID policy"; } container fast-reroute { description "Enable Fast Re-route protection for this Tree-SID"; container lfa { presence "Indicates a lfa node is configured."; description "LFA Fast Re-route"; } // container lfa } // container fast-reroute } // container mpls } // container segment-routing } // container partitioned container mldp { description "mLDP distribution tree"; container in-band-signaling { description "Enable mLDP in-band-signalling"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "Enable IPv4-core tree"; } // container ipv4 } // container in-band-signaling } // container mldp container static { description "Interface used to set MDT source address"; container segment-routing { presence "Indicates a segment-routing node is configured."; description "Set MDT core as tree-sid"; container strict-rpf { presence "Indicates a strict-rpf node is configured."; description "Enable strict RPF check"; } // container strict-rpf } // container segment-routing container p2mp-te { description "static p2mp-te"; container interfaces { description "p2mp-te interface"; list interface { key "interface-name"; description "p2mp-te interface"; leaf interface-name { type xr:Interface-name { pattern "tunnel-mte[0-9]+"; } description "p2mp-te interface"; } } // list interface } // container interfaces } // container p2mp-te } // container static } // container mdt container rate-per-route { presence "Indicates a rate-per-route node is configured."; description "Enable/disable per (S,G) rate calculation"; } // container rate-per-route container accounting { description "Enable/disable Accounting"; container per-prefix { presence "Indicates a per-prefix node is configured."; description "Enable per (S,G) accounting."; container forward-only { presence "Indicates a forward-only node is configured."; description "Enable per (S,G) forward-only accounting."; } // container forward-only } // container per-prefix } // container accounting container log-traps { presence "Indicates a log-traps node is configured."; description "Enable logging trap events"; } // container log-traps container interface-inheritance { description "Knob to separate enabling/disabling multicast routing & forwarding"; container disable { presence "Indicates a disable node is configured."; description "Disable inheriting En/Dis config "; } // container disable } // container interface-inheritance leaf mofrr-lockout-timer { type uint32 { range "1..3600"; } description "Lockout timer for mofrr"; } leaf mofrr-loss-detection-timer { type uint32 { range "1..3600"; } description "Loss Detection timer for mofrr"; } container forwarding-latency { description "Knob to delay traffic being forwarded on a route"; leaf delay { type uint32 { range "5..500"; } description "Delay time in msecs"; } } // container forwarding-latency container export-rt { description "Configure Export Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container export-rt container import-rt { description "Configure Import Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; description "Two Byte AS Number route-target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; description "Four Byte AS Number route-target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; description "IP address route-target"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container import-rt container interface { description "Multicast interface configuration subcommands"; container all { description "Inherited by all interfaces"; container enable { presence "Indicates a enable node is configured."; description "Enable IP Multicast"; } // container enable } // container all container interfaces { description "select an interface to configure"; list interface { key "interface-name"; description "select an interface to configure"; leaf interface-name { type xr:Interface-name; description "select an interface to configure"; } container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable IP multicast"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable IP multicast"; } // container disable leaf boundary { type string { length "1..32"; } description "Boundary for administratively scoped multicast addresses"; } leaf ttl-threshold { type uint32 { range "1..255"; } description "TTL threshold for IPv4 multicast packets"; } } // list interface } // container interfaces } // container interface container maximum { description "Maximum state limits"; container disable { presence "Indicates a disable node is configured."; description "Disable all multicast state limit checks"; } // container disable } // container maximum container oom-handling { presence "Indicates a oom-handling node is configured."; description "Enable out-of-memory handling"; } // container oom-handling container bgp { description "Enable BGP MVPN Discovery"; container auto-discovery { presence "Indicates a auto-discovery node is configured."; description "Enable BGP Auto-Discovery"; leaf core-tree { type enumeration { enum "pim" { value 1; description "PIM core tree"; } enum "mldp" { value 2; description "mLDP core tree"; } enum "p2mp-te" { value 3; description "RSVP P2MP-TE core tree"; } enum "ingress-replication" { value 4; description "IR core tree"; } enum "segment-routing" { value 5; description "Tree-SID core tree"; } } mandatory true; description "Enable BGP Auto-Discovery"; } container leaf-info-required { presence "Indicates a leaf-info-required node is configured."; description "Explicit tracking of S-PMSI core trees"; } // container leaf-info-required container inter-as { presence "Indicates a inter-as node is configured."; description "Inter-AS MVPN"; } // container inter-as container receiver-site { presence "Indicates a receiver-site node is configured."; description "Receiver-only site"; } // container receiver-site container anycast-rp { presence "Indicates a anycast-rp node is configured."; description "Enable Anycast RP using MVPN SAFI"; leaf route-policy { type xr:Route-policy-name; description "Policy for filtering routes"; } } // container anycast-rp container pmsi-timer { when "../core-tree != 'pim'"; description "Set PMSI Tunnel timers"; leaf change-delay { type uint32 { range "0..4294967295"; } description "Set Change Delay timer"; } leaf stop-forwarding { type uint32 { range "0..4294967295"; } description "Set Stop Forwarding timer"; } } // container pmsi-timer container segmented { must "../core-tree != 'pim'"; presence "Indicates a segmented node is configured."; description "Enable Segmented Multicast/MVPN"; leaf bandwidth-threshold { type uint32 { range "0..1000000000"; } must "../../core-tree = 'ingress-replication'"; description "Set Bandwidth threshold for Ingress Replication core-tree"; } leaf color { type uint32 { range "0..4294967295"; } description "Enable Color Opaque Extended Community"; } } // container segmented container inherit-vrf-ri { description "Inherit VRF Route-Import EC"; leaf vrf { type xr:Cisco-ios-xr-string { length "1..800"; } description "VRF to inherit from"; } } // container inherit-vrf-ri } // container auto-discovery } // container bgp container static-rpf { description "Configure a static RPF rule for a given prefix/mask"; list address-range { key "prefix-address prefix-length"; leaf prefix-address { type inet:ipv4-address-no-zone; description "Prefix for address range"; } leaf prefix-length { type uint32 { range "0..32"; } description "Prefix mask for address range"; } leaf interface { type xr:Interface-name; mandatory true; description "Static route interface"; } leaf next-hop-address { type inet:ipv4-address-no-zone; mandatory true; description "Static route next-hop"; } } // list address-range } // container static-rpf container core-tree-protocol { description "Configure Core-tree-protocol"; container rsvp-te { presence "Indicates a rsvp-te node is configured."; description "Configure P2MP-TE as the Core-tree-protocol"; leaf group-list { type xr:Cisco-ios-xr-string; description "ACL for group-list"; } } // container rsvp-te } // container core-tree-protocol container static { description "Configure a static Policy"; list sr-policy { key "sr-policy-name"; description "SR P2MP Policy for Multicast"; leaf sr-policy-name { type xr:Cisco-ios-xr-string; description "Name of the SR P2MP Policy"; } leaf ingress { type string; description "Ingress Node address of traffic (for strict-rpf)"; } } // list sr-policy } // container static } // container ipv4 container ipv6 { presence "Indicates a ipv4 node is configured."; description "Enter ipv6 Address Family command mode"; container mdt { description "MVPN configuration"; container data { description "Data MDT configuration"; container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Ingress Replication Data MDT"; leaf number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container ingress-replication container mldp { presence "Indicates a mldp node is configured."; description "MLDP Data MDT"; leaf maximum-number { type uint32 { range "1..4294967295"; } mandatory true; description "Maximum number of data-mdts to be triggered"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container mldp container p2mp-te { must "(maximum-number or route-policy) and not(maximum-number and route-policy)"; presence "Indicates a p2mp-te node is configured."; description "P2MPTE Data MDT core"; leaf maximum-number { type uint32 { range "1..4294967295"; } description "Maximum number of data-mdts to be triggered"; } leaf attribute-set { type xr:Cisco-ios-xr-string; description "The Attribute Set template to be used with the TE tunnel request"; } leaf access-list-name { type xr:Cisco-ios-xr-string; description "ACL for Customer VRF groups allowed to do Data MDT"; } container immediate-switch { presence "Indicates an immediate-switch node is configured."; description "Switch to Data MDT immediately"; } // container immediate-switch leaf route-policy { type xr:Route-policy-name; description "DATA MDT Route policy"; } leaf threshold { type uint32 { range "0..4294967"; } description "Traffic rate threshold in Kbps to trigger Data MDT"; } } // container p2mp-te } // container data container default { description "MDT Default distribution tree"; container mldp { description "mLDP default distribution tree"; container ipv4s { description "MP2MP core-tree with IPv4 Root Address"; list ipv4 { key "address"; description "MP2MP core-tree with IPv4 Root Address"; leaf address { type inet:ipv4-address-no-zone; description "MP2MP core-tree with IPv4 Root Address"; } container partitioned { description "mLDP Partitioned MDT"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container partitioned } // list ipv4 } // container ipv4s container p2mp { presence "Indicates a p2mp node is configured."; description "P2MP core-tree"; container partitioned { description "mLDP Partitioned MDT"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container partitioned } // container p2mp } // container mldp container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } description "The Attribute Set template to be used with the TE tunnel request"; } } // container p2mp-te container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable default ingress-replication"; } // container ingress-replication } // container default container segment-border { presence "Indicates a segment-border node is configured."; description "Border router for segmented multicast"; leaf route-policy { type xr:Route-policy-name; description "Route-policy to select segmented core type"; } } // container segment-border container segmented-inband { presence "Indicates a segmented-inband node is configured."; description "MDT Segmented Inband distribution tree"; leaf core-tree { type enumeration { enum "mldp" { value 2; description "mLDP core tree"; } enum "p2mp-te" { value 3; description "RSVP P2MP-TE core tree"; } enum "ingress-replication" { value 4; description "IR core tree"; } } mandatory true; description "MDT Segmented Inband distribution tree"; } leaf color { type uint32 { range "0..4294967295"; } description "Enable Color Opaque extended community"; } } // container segmented-inband container partitioned { description "MDT Partitioned distribution tree"; container p2mp-te { description "P2MP-TE default distribution tree"; leaf attribute-set { type union { type string { pattern "default"; } type xr:Cisco-ios-xr-string { length "1..800"; } } description "The Attribute Set template to be used with the TE tunnel request"; } } // container p2mp-te container mldp { description "mLDP signaled distribution tree"; container ipv4 { description "IPv4 core"; container mp2mp { must "not(../p2mp)"; presence "Indicates a mp2mp node is configured."; description "Enable mLDP MP2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container mp2mp container p2mp { must "not(../mp2mp)"; presence "Indicates a p2mp node is configured."; description "Enable mLDP P2MP core tree"; container bidir { presence "Indicates a bidir node is configured."; description "Enable Exclusive Partitioned MDT for Bidir"; } // container bidir } // container p2mp } // container ipv4 } // container mldp container ingress-replication { presence "Indicates a ingress-replication node is configured."; description "Enable partitioned ingress-replication"; } // container ingress-replication } // container partitioned container mldp { description "mLDP distribution tree"; container in-band-signaling { description "Enable mLDP in-band-signalling"; container ipv4 { presence "Indicates a ipv4 node is configured."; description "Enable IPv4-core tree"; } // container ipv4 } // container in-band-signaling } // container mldp container static { description "Interface used to set MDT source address"; container segment-routing { presence "Indicates a segment-routing node is configured."; description "Set MDT core as tree-sid"; container strict-rpf { presence "Indicates a strict-rpf node is configured."; description "Enable strict RPF check"; } // container strict-rpf } // container segment-routing } // container static leaf source { type xr:Interface-name; description "Interface used to set MDT source address"; } leaf mtu { type uint32 { range "1401..65535"; } description "MDT mtu configuration"; } } // container mdt container rate-per-route { presence "Indicates a rate-per-route node is configured."; description "Enable/disable per (S,G) rate calculation"; } // container rate-per-route container accounting { description "Enable/disable Accounting"; container per-prefix { presence "Indicates a per-prefix node is configured."; description "Enable per (S,G) accounting."; container forward-only { presence "Indicates a forward-only node is configured."; description "Enable per (S,G) forward-only accounting."; } // container forward-only } // container per-prefix } // container accounting container log-traps { presence "Indicates a log-traps node is configured."; description "Enable logging trap events"; } // container log-traps container interface-inheritance { description "Knob to separate enabling/disabling multicast routing & forwarding"; container disable { presence "Indicates a disable node is configured."; description "Disable inheriting En/Dis config "; } // container disable } // container interface-inheritance leaf mofrr-lockout-timer { type uint32 { range "1..3600"; } description "Lockout timer for mofrr"; } leaf mofrr-loss-detection-timer { type uint32 { range "1..3600"; } description "Loss Detection timer for mofrr"; } container forwarding-latency { description "Knob to delay traffic being forwarded on a route"; leaf delay { type uint32 { range "5..500"; } description "Delay time in msecs"; } } // container forwarding-latency container export-rt { description "Configure Export Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route distinguisher"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container export-rt container import-rt { description "Configure Import Route-Target"; list two-byte-as-rt { key "two-byte-as-number index-number"; description "Two Byte AS Number route-target"; leaf two-byte-as-number { type uint32 { range "1..65535"; } description "Two Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..4294967295"; } description "AS:nn (hex or decimal format)"; } } // list two-byte-as-rt list four-byte-as-rt { key "four-byte-as-number index-number"; description "Four Byte AS Number route-target"; leaf four-byte-as-number { type uint32 { range "65536..4294967295"; } description "Four Byte AS Number route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list four-byte-as-rt list ip-address-rt { key "ip-address index-number"; description "IP address route-target"; leaf ip-address { type inet:ipv4-address-no-zone; description "IP address route-target"; } leaf index-number { type uint32 { range "0..65535"; } description "AS:nn (hex or decimal format)"; } } // list ip-address-rt } // container import-rt container interface { description "Multicast interface configuration subcommands"; container all { description "Inherited by all interfaces"; container enable { presence "Indicates a enable node is configured."; description "Enable IP Multicast"; } // container enable } // container all container interfaces { description "select an interface to configure"; list interface { key "interface-name"; description "select an interface to configure"; leaf interface-name { type xr:Interface-name; description "select an interface to configure"; } container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable IP multicast"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable IP multicast"; } // container disable leaf boundary { type string { length "1..32"; } description "Boundary for administratively scoped multicast addresses"; } leaf ttl-threshold { type uint32 { range "1..255"; } description "TTL threshold for IPv4 multicast packets"; } } // list interface } // container interfaces } // container interface container maximum { description "Maximum state limits"; container disable { presence "Indicates a disable node is configured."; description "Disable all multicast state limit checks"; } // container disable } // container maximum container bgp { description "Enable BGP MVPN Discovery"; container auto-discovery { presence "Indicates a auto-discovery node is configured."; description "Enable BGP Auto-Discovery"; leaf core-tree { type enumeration { enum "pim" { value 1; description "PIM core tree"; } enum "mldp" { value 2; description "mLDP core tree"; } enum "p2mp-te" { value 3; description "RSVP P2MP-TE core tree"; } enum "ingress-replication" { value 4; description "IR core tree"; } } mandatory true; description "Enable BGP Auto-Discovery"; } container leaf-info-required { presence "Indicates a leaf-info-required node is configured."; description "Explicit tracking of S-PMSI core trees"; } // container leaf-info-required container inter-as { presence "Indicates a inter-as node is configured."; description "Inter-AS MVPN"; } // container inter-as container receiver-site { presence "Indicates a receiver-site node is configured."; description "Receiver-only site"; } // container receiver-site container anycast-rp { presence "Indicates a anycast-rp node is configured."; description "Enable Anycast RP using MVPN SAFI"; leaf route-policy { type xr:Route-policy-name; description "Policy for filtering routes"; } } // container anycast-rp container pmsi-timer { when "../core-tree != 'pim'"; description "Set PMSI Tunnel timers"; leaf change-delay { type uint32 { range "0..4294967295"; } description "Set Change Delay timer"; } leaf stop-forwarding { type uint32 { range "0..4294967295"; } description "Set Stop Forwarding timer"; } } // container pmsi-timer container segmented { must "../core-tree != 'pim'"; presence "Indicates a segmented node is configured."; description "Enable Segmented Multicast/MVPN"; leaf bandwidth-threshold { type uint32 { range "0..1000000000"; } description "Set Bandwidth threshold for Ingress Replication core-tree"; } leaf color { type uint32 { range "0..4294967295"; } description "Enable Color Opaque Extended Community"; } } // container segmented container inherit-vrf-ri { description "Inherit VRF Route-Import EC"; leaf vrf { type xr:Cisco-ios-xr-string { length "1..800"; } description "VRF to inherit from"; } } // container inherit-vrf-ri } // container auto-discovery } // container bgp container static-rpf { description "Configure a static RPF rule for a given prefix/mask"; list address-range { key "prefix-address prefix-length"; leaf prefix-address { type inet:ipv6-address-no-zone; description "Prefix for address range"; } leaf prefix-length { type uint32 { range "0..128"; } description "Prefix mask for address range"; } leaf interface { type xr:Interface-name; mandatory true; description "Static route interface"; } leaf next-hop-address { type inet:ipv6-address-no-zone; mandatory true; description "Static route next-hop"; } } // list address-range } // container static-rpf container core-tree-protocol { description "Configure Core-tree-protocol"; container rsvp-te { presence "Indicates a rsvp-te node is configured."; description "Configure P2MP-TE as the Core-tree-protocol"; leaf group-list { type xr:Cisco-ios-xr-string; description "ACL for group-list"; } } // container rsvp-te } // container core-tree-protocol container static { description "Configure a static Policy"; list sr-policy { key "sr-policy-name"; description "SR P2MP Policy for Multicast"; leaf sr-policy-name { type xr:Cisco-ios-xr-string; description "Name of the SR P2MP Policy"; } leaf ingress { type string; description "Ingress Node address of traffic (for strict-rpf)"; } } // list sr-policy } // container static } // container ipv6 } // container address-family } // container multicast-routing } // module Cisco-IOS-XR-um-multicast-routing-cfg
© 2023 YumaWorks, Inc. All rights reserved.