This module contains a collection of YANG definitions for Cisco IOS-XR router pim configuration. Copyright (c) 2019-2021 by Cis...
Version: 2021-02-10
module Cisco-IOS-XR-um-router-pim-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-um-router-pim-cfg"; prefix um-router-pim-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 router pim configuration. Copyright (c) 2019-2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-02-10" { description "Added new yang nodes in order to support sticky-dr feature 2021-01-28 Added cisco-support task yang nodes 2020-12-09 Removed cisco-support task nodes 2020-10-15 Adjusted must statement under bsr candidate-rp"; } revision "2019-08-20" { description "Initial release"; } semver:module-version "2.0.0"; semver:module-version "1.0.0"; container router { description "Enable a routing process"; container pim { presence "Indicates a pim node is configured."; description "PIM configuration subcommands"; container vrfs { description "VRF configs"; list vrf { key "vrf-name"; description "VRF configs"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "VRF configs"; } container address-family { description "Enter Address Family command mode"; container ipv4 { description "IPv4 Address Family"; container rp-addresses { description "Configure Rendezvous Point"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv4-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address container bidir { description "Specify keyword bidir to configure a bidir RP"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv4-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address } // container bidir } // container rp-addresses leaf rp-static-deny { type xr:Cisco-ios-xr-string { length "1..32"; } description "Configure static RP deny range"; } leaf accept-register { type xr:Cisco-ios-xr-string { length "1..32"; } description "Registers accept filter"; } container suppress-data-registers { presence "Indicates a suppress-data-registers node is configured."; description "Suppress data registers after initial state setup"; } // container suppress-data-registers leaf register-source { type xr:Interface-name; description "Source address to use for register messages"; } container suppress-rpf-change-prunes { presence "Indicates a suppress-rpf-change-prunes node is configured."; description "Suppress prunes triggered as a result of RPF changes"; } // container suppress-rpf-change-prunes leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container convergence { description "Convergence related parameters"; leaf rpf-conflict-join-delay { type uint32 { range "0..15"; } description "Delay in sending first join if RPF points to any downstream neighbor"; } leaf link-down-prune-delay { type uint32 { range "0..60"; } description "Delay prunes if route join state transitions to not-joined on link down"; } } // container convergence container spt-threshold { description "Configure threshold for switching to SPT on last-hop"; container infinity { presence "Indicates a infinity node is configured."; description "Always stay on shared-tree"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Only stay on the shared-tree for specified groups"; } } // container infinity } // container spt-threshold container old-register-checksum { presence "Indicates a old-register-checksum node is configured."; description "Generate registers compatible with older IOS versions"; } // container old-register-checksum container neighbor-check-on-send { description "Check for PIM neighbor before sending control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-send container neighbor-check-on-recv { description "Check for PIM neighbor before rcv'ing control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-recv leaf hello-interval { type uint32 { range "1..3600"; } description "Inherited by all interfaces : Hello interval in seconds"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "Inherited by all interfaces : PIM Hello DR priority"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "Inherited by all interfaces : Join-Prune interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "Inherited by all interfaces : Join-Prune MTU"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "Inherited by all interfaces : PIM Hello Propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "Inherited by all interfaces : PIM Hello override interval"; } container maximum { description "Maximum state limits"; container routes { presence "Indicates a routes node is configured."; description "PIM routes"; leaf maximum-routes { type uint32 { range "1..200000"; } mandatory true; description "PIM routes"; } leaf threshold { type uint32 { range "1..200000"; } must ". <= ../maximum-routes"; description "Set threshold to print warning"; } } // container routes container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM total number of interfaces on all routes"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM total number of interfaces on all routes"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Set threshold to print warning"; } } // container route-interfaces container register-states { presence "Indicates a register-states node is configured."; description "PIM source register states"; leaf maximum-register-states { type uint32 { range "0..75000"; } mandatory true; description "PIM source register states"; } leaf threshold { type uint32 { range "0..75000"; } must ". <= ../maximum-register-states"; description "Set threshold to print warning"; } } // container register-states container group-mappings { description "PIM group-to-RP mapping ranges"; container bsr { presence "Indicates a group-mappings node is configured."; description "Learned through the BSR distribution mechanism"; leaf maximum-bsr { type uint32 { range "1..10000"; } mandatory true; description "Learned through the BSR distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-bsr"; description "Set threshold to print warning"; } } // container bsr container autorp { presence "Indicates a autorp node is configured."; description "Learned through the Auto-RP distribution mechanism"; leaf maximum-autorp { type uint32 { range "1..10000"; } mandatory true; description "Learned through the Auto-RP distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-autorp"; description "Set threshold to print warning"; } } // container autorp } // container group-mappings container bsr { description "BSR maximum C-RP cache setting"; container crp-cache { presence "Indicates a crp-cache node is configured."; description "Set maximum number of C-RP cache in BSR"; leaf maximum-crp-cache { type uint32 { range "1..10000"; } mandatory true; description "Set maximum number of C-RP cache in BSR"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-crp-cache"; description "Set threshold to print warning"; } } // container crp-cache } // container bsr } // container maximum leaf convergence-timeout { type uint32 { range "1800..2400"; } description "Timeout value for the RIB convergence notification"; } container log { description "Enable PIM logging"; container neighbor { description "Enable PIM neighbor logging"; container changes { presence "Indicates a changes node is configured."; description "Enable PIM neighbor state logging"; } // container changes } // container neighbor } // container log container rpf-vector { presence "Indicates a rpf-vector node is configured."; description "Enable PIM RPF Vector"; container allow-ebgp { presence "Indicates a allow-ebgp node is configured."; description "Allow origination of RPF vector over an eBGP session"; } // container allow-ebgp container disable-ibgp { presence "Indicates a disable-ibgp node is configured."; description "Disable origination of RPF vector over an iBGP session"; } // container disable-ibgp container use-standard-encoding { presence "Indicates a use-standard-encoding node is configured."; description "Use RFC standard encode type"; } // container use-standard-encoding } // container rpf-vector container rpf-vector-injects { description "inject RPF vector"; list inject { must "rpf-vector"; key "source-address masklen"; description "inject RPF vector"; leaf source-address { type inet:ipv4-address-no-zone; description "inject RPF vector"; } leaf masklen { type uint32 { range "0..32"; } description "masklen"; } leaf-list rpf-vector { type inet:ipv4-address-no-zone; max-elements 22; description "configure this node"; } } // list inject } // container rpf-vector-injects container explicit-rpf-vector { description "Enable Explicit PIM RPF Vector"; container injects { description "inject Explicit RPF vector"; list inject { must "rpf-vector"; key "source-address masklen"; description "inject Explicit RPF vector"; leaf source-address { type inet:ipv4-address-no-zone; description "inject Explicit RPF vector"; } leaf masklen { type uint32 { range "0..32"; } description "masklen"; } leaf-list rpf-vector { type inet:ipv4-address-no-zone; max-elements 22; description "configure this node"; } } // list inject } // container injects } // container explicit-rpf-vector container rpf { description "RPF commands"; container topology { description "Select RPF topology"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select RPF topology"; } } // container topology } // container rpf container mdt { description "Multicast Distribution Tree commands"; leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container data { description "Data MDT Options"; leaf switchover-interval { type uint32 { range "3..60"; } description "Data MDT switchover interval"; } leaf announce-interval { type uint32 { range "3..120"; } description "Periodic Data MDT Join TLV interval"; } leaf max-aggregation { type uint32 { range "1..16777215"; } description "Data MDT max-aggregation"; } } // container data container c-multicast-routing { presence "Indicates a c-multicast-routing node is configured."; description "MVPN customer routing commands"; leaf type { type enumeration { enum "pim" { value 1; description "PIM customer multicast routing"; } enum "bgp" { value 2; description "BGP customer multicast routing"; } } mandatory true; description "MVPN customer routing commands"; } container announce-pim-join-tlv { presence "Indicates a announce-pim-join-tlv node is configured."; description "Announce PIM MDT Join TLVs"; } // container announce-pim-join-tlv container suppress-shared-tree-join { presence "Indicates a suppress-shared-tree-join node is configured."; description "Suppress shared tree joins"; } // container suppress-shared-tree-join container suppress-pim-data-signaling { presence "Indicates a suppress-pim-data-signaling node is configured."; description "Suppress PIM data signaling"; } // container suppress-pim-data-signaling container mdt-hello { when "../type != 'pim'"; description "PIM Hellos over MDT"; container enable { presence "Indicates a enable node is configured."; description "Enable PIM Hellos over MDT"; } // container enable } // container mdt-hello leaf shared-tree-prune-delay { type uint32 { range "0..1800"; } description "Delay before pruning I-S PMSI from S,G when SA received"; } leaf source-tree-prune-delay { type uint32 { range "0..300"; } description "Delay before removing PMSI from olist after BGP withdrawal"; } container migration { presence "Indicates a migration node is configured."; description "customer routing migration"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select customer routing"; } } // container migration container unicast-reachability { description "Control addition of Extended Communities to Unicast VPN-IP routes"; container connector { description "Enable/Disable Connector"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Connector Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Connector Attribute"; } // container enable } // container connector container source-as { description "Enable/Disable Source AS"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Source-AS Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Source-AS Attribute"; } // container enable } // container source-as container vrf-route-import { description "Enable/Disable VRF Route Import"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable VRF Route Import Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable VRF Route Import Attribute"; } // container enable } // container vrf-route-import } // container unicast-reachability } // container c-multicast-routing } // container mdt container allow-rp { presence "Indicates a allow-rp node is configured."; description "Sparse-Mode RP addresses to be allowed"; leaf rp-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed RP addresses"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed group ranges"; } } // container allow-rp container sg-expiry-timer { presence "Indicates a sg-expiry-timer node is configured."; description "Configure SG expiry timer"; leaf sg-expiry-timer-value { type uint32 { range "40..57600"; } mandatory true; description "Configure SG expiry timer"; } leaf sg-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list of (S,G) routes for which expiry timer is applicable"; } } // container sg-expiry-timer container ssm { description "Configure a group range for Source-Specific use"; leaf range { type xr:Cisco-ios-xr-string { length "1..32"; } must "not(../disable)"; description "Provide ACL that specifies non-standard SSM range"; } container disable { must "not(../range)"; presence "Indicates a disable node is configured."; description "Disable use of all SSM group ranges"; } // container disable container allow-override { presence "Indicates a allow-override node is configured."; description "Allow SSM ranges to be overridden by more specific ranges"; } // container allow-override } // container ssm container multipath { presence "Indicates a multipath node is configured."; description "Enable equal-cost multipath routing"; container hash { must "source or source-nexthop or source-group"; presence "Indicates a hash node is configured."; description "Enter a hashing algorithm"; container source { must "not(../source-nexthop) and not(../source-group)"; presence "Indicates a source node is configured."; description "Enable source based multipath hashing (Compatible with IOS versions)"; } // container source container source-nexthop { must "not(../source) and not(../source-group)"; presence "Indicates a source-nexthop node is configured."; description "Enable source with next-hop multipath hashing (better distribution)"; } // container source-nexthop container source-group { must "not(../source-nexthop) and not(../source)"; presence "Indicates a source-group node is configured."; description "Enable source, group based multipath hashing (Compatible with IOS versions)"; } // container source-group } // container hash } // container multipath container auto-rp { description "Auto-RP Commands"; container listen { description "RP discovery through AUTORP protocol"; container disable { presence "Indicates a disable node is configured."; description "Disable RP discovery through the AUTORP protocol"; } // container disable } // container listen container relay { description "relay"; container vrfs { description "vrf"; list vrf { key "vrf-name"; description "vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "vrf"; } container listen { presence "Indicates a listen node is configured."; description "Enable RP relay in listen mode"; } // container listen } // list vrf } // container vrfs } // container relay } // container auto-rp container interfaces { description "PIM interface configuration subcommands"; list interface { key "interface-name"; description "Select an interface to configure"; leaf interface-name { type xr:Interface-name; description "Select an interface to configure"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "PIM Hello DR priority"; } leaf hello-interval { type uint32 { range "1..3600"; } description "PIM neighbor Hello announcement interval"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "PIM periodic Join-Prune announcement interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "MTU to use when sending PIM J/P packets"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "PIM Hello propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "PIM Hello override interval"; } container bsr-border { presence "Indicates a bsr-border node is configured."; description "Do not fwd BSR messages on this interface"; } // container bsr-border container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable PIM processing on this interface"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable PIM processing on this interface"; } // container disable leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..1024"; } description "PIM Neighbor filter on this interface"; } container maximum { description "Per interface maximum state limits"; container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM downstream joined interfaces"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM downstream joined interfaces"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Name of ACL that specifies to which routes to apply the maximum limit"; } } // container route-interfaces } // container maximum container bfd { description "Configure BFD parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Hello interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container sticky-dr { presence "Indicates a sticky-dr node is configured."; description "Enable sticky DR on this interface"; } // container sticky-dr } // list interface } // container interfaces container bsr { description "BSR Configurations"; container candidate-bsr { presence "Indicates a candidate-bsr node is configured."; description "configure candidate BSR"; leaf address { type inet:ipv4-address-no-zone; mandatory true; description "IP address of configured BSR"; } leaf hash-mask-len { type uint32 { range "0..32"; } mandatory true; description "BSR Hash Mask Length"; } leaf priority { type uint32 { range "1..255"; } mandatory true; description "BSR Priority"; } } // container candidate-bsr container candidate-rps { description "BSR Candidate RP Configurations"; list candidate-rp { must "(priority and interval) or (bidir/priority and bidir/interval)"; key "address"; description "BSR Candidate RP Configurations"; leaf address { type inet:ipv4-address-no-zone; description "BSR Candidate RP Configurations"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } container bidir { description "To specify group ranges as Bidir"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } } // container bidir } // list candidate-rp } // container candidate-rps container relay { description "BSR RP relay config"; container vrfs { description "vrf"; list vrf { key "vrf-name"; description "vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "vrf"; } container listen { presence "Indicates a listen node is configured."; description "Enable RP relay in listen mode"; } // container listen } // list vrf } // container vrfs } // container relay } // container bsr container mofrr { presence "Indicates a mofrr node is configured."; description "PIM Mofrr"; leaf flow { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Multicast Only FRR"; } leaf rib { type string { length "1..1024"; } description "Use the rib keyword to restrict switchover triggers to RIB events"; } container non-revertive { presence "Indicates a non-revertive node is configured."; description "Non-revertive MoFRR"; } // container non-revertive container clone { description "Use the clone keyword to clone"; container joins { description "Use the join keyword to clone S,G as S1,G joins as S2,G joins"; list join { must "to"; key "address"; description "Use the join keyword to clone S,G as S1,G joins as S2,G joins"; leaf address { type inet:ipv4-address-no-zone; description "Source S"; } list to { must "and"; key "address"; description "to"; leaf address { type inet:ipv4-address-no-zone; description "Source S1"; } list and { must "masklen"; key "address"; description "and"; leaf address { type inet:ipv4-address-no-zone; description "Source S2"; } list masklen { key "mask-length"; description "masklen"; leaf mask-length { type uint32 { range "0..32"; } description "masklen"; } } // list masklen } // list and } // list to } // list join } // container joins container sources { description "Use the source keyword to clone S,G as S1,G traffic and S2,G traffic"; list source { must "to"; key "address"; description "Use the source keyword to clone S,G as S1,G traffic and S2,G traffic"; leaf address { type inet:ipv4-address-no-zone; description "Source S"; } list to { must "and"; key "address"; description "to"; leaf address { type inet:ipv4-address-no-zone; description "Source S1"; } list and { must "masklen"; key "address"; description "and"; leaf address { type inet:ipv4-address-no-zone; description "Source S2"; } list masklen { key "mask-length"; description "masklen"; leaf mask-length { type uint32 { range "0..32"; } description "masklen"; } } // list masklen } // list and } // list to } // list source } // container sources } // container clone } // container mofrr container sr-p2mp-policies { description "Segment-routing P2MP policy"; list sr-p2mp-policy { key "policy-name"; description "Segment-routing P2MP policy"; leaf policy-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Segment-routing P2MP policy"; } container static-group { description "ipv4 static multicast group"; list group-address { key "group-address"; description "ipv4 static multicast group"; leaf group-address { type inet:ipv4-address-no-zone; description "ipv4 static multicast group"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Group-address without increment mask/source-address"; } // container group-address-only container group-address-inc-masks { description "Group-address with increment mask for group address"; list inc-mask { key "group-mask-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-masks container group-address-source-address { description "Group-address with source-address"; list source-address { key "source-address"; description "Source address to join"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } } // list source-address } // container group-address-source-address container group-address-inc-mask-source-address { description "Group-address with increment-mask and source-address"; list inc-mask { key "group-mask-address source-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-mask-source-address container group-address-source-address-inc-mask { description "Group-address and source-address with increment-mask"; list inc-mask { key "source-address source-mask-address"; description "Increment mask for group address"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-address-source-address-inc-mask container group-inc-mask-source-inc-mask { description "Group-address with increment-mask and source-address with increment-mask"; list inc-mask { key "group-mask-address source-address source-mask-address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-inc-mask-source-inc-mask } // list group-address } // container static-group } // list sr-p2mp-policy } // container sr-p2mp-policies } // container ipv4 container ipv6 { description "IPv6 Address Family"; container rp-addresses { description "Configure Rendezvous Point"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv6-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address container bidir { description "Specify keyword bidir to configure a bidir RP"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv6-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address } // container bidir } // container rp-addresses leaf rp-static-deny { type xr:Cisco-ios-xr-string { length "1..32"; } description "Configure static RP deny range"; } leaf accept-register { type xr:Cisco-ios-xr-string { length "1..32"; } description "Registers accept filter"; } container suppress-data-registers { presence "Indicates a suppress-data-registers node is configured."; description "Suppress data registers after initial state setup"; } // container suppress-data-registers leaf register-source { type xr:Interface-name; description "Source address to use for register messages"; } container suppress-rpf-change-prunes { presence "Indicates a suppress-rpf-change-prunes node is configured."; description "Suppress prunes triggered as a result of RPF changes"; } // container suppress-rpf-change-prunes leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container convergence { description "Convergence related parameters"; leaf rpf-conflict-join-delay { type uint32 { range "0..15"; } description "Delay in sending first join if RPF points to any downstream neighbor"; } leaf link-down-prune-delay { type uint32 { range "0..60"; } description "Delay prunes if route join state transitions to not-joined on link down"; } } // container convergence container spt-threshold { description "Configure threshold for switching to SPT on last-hop"; container infinity { presence "Indicates a infinity node is configured."; description "Always stay on shared-tree"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Only stay on the shared-tree for specified groups"; } } // container infinity } // container spt-threshold container old-register-checksum { presence "Indicates a old-register-checksum node is configured."; description "Generate registers compatible with older IOS versions"; } // container old-register-checksum container neighbor-check-on-send { description "Check for PIM neighbor before sending control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-send container neighbor-check-on-recv { description "Check for PIM neighbor before rcv'ing control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-recv leaf hello-interval { type uint32 { range "1..3600"; } description "Inherited by all interfaces : Hello interval in seconds"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "Inherited by all interfaces : PIM Hello DR priority"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "Inherited by all interfaces : Join-Prune interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "Inherited by all interfaces : Join-Prune MTU"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "Inherited by all interfaces : PIM Hello Propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "Inherited by all interfaces : PIM Hello override interval"; } container maximum { description "Maximum state limits"; container routes { presence "Indicates a routes node is configured."; description "PIM routes"; leaf maximum-routes { type uint32 { range "1..200000"; } mandatory true; description "PIM routes"; } leaf threshold { type uint32 { range "1..200000"; } must ". <= ../maximum-routes"; description "Set threshold to print warning"; } } // container routes container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM total number of interfaces on all routes"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM total number of interfaces on all routes"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Set threshold to print warning"; } } // container route-interfaces container register-states { presence "Indicates a register-states node is configured."; description "PIM source register states"; leaf maximum-register-states { type uint32 { range "0..75000"; } mandatory true; description "PIM source register states"; } leaf threshold { type uint32 { range "0..75000"; } must ". <= ../maximum-register-states"; description "Set threshold to print warning"; } } // container register-states container group-mappings { description "PIM group-to-RP mapping ranges"; container bsr { presence "Indicates a group-mappings node is configured."; description "Learned through the BSR distribution mechanism"; leaf maximum-bsr { type uint32 { range "1..10000"; } mandatory true; description "Learned through the BSR distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-bsr"; description "Set threshold to print warning"; } } // container bsr } // container group-mappings container bsr { description "BSR maximum C-RP cache setting"; container crp-cache { presence "Indicates a crp-cache node is configured."; description "Set maximum number of C-RP cache in BSR"; leaf maximum-crp-cache { type uint32 { range "1..10000"; } mandatory true; description "Set maximum number of C-RP cache in BSR"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-crp-cache"; description "Set threshold to print warning"; } } // container crp-cache } // container bsr } // container maximum leaf convergence-timeout { type uint32 { range "1800..2400"; } description "Timeout value for the RIB convergence notification"; } container log { description "Enable PIM logging"; container neighbor { description "Enable PIM neighbor logging"; container changes { presence "Indicates a changes node is configured."; description "Enable PIM neighbor state logging"; } // container changes } // container neighbor } // container log container rpf-vector { presence "Indicates a rpf-vector node is configured."; description "Enable PIM RPF Vector"; container allow-ebgp { presence "Indicates a allow-ebgp node is configured."; description "Allow origination of RPF vector over an eBGP session"; } // container allow-ebgp container disable-ibgp { presence "Indicates a disable-ibgp node is configured."; description "Disable origination of RPF vector over an iBGP session"; } // container disable-ibgp container use-standard-encoding { presence "Indicates a use-standard-encoding node is configured."; description "Use RFC standard encode type"; } // container use-standard-encoding } // container rpf-vector container rpf { description "RPF commands"; container topology { description "Select RPF topology"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select RPF topology"; } } // container topology } // container rpf container mdt { description "Multicast Distribution Tree commands"; leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container data { description "Data MDT Options"; leaf switchover-interval { type uint32 { range "3..60"; } description "Data MDT switchover interval"; } leaf announce-interval { type uint32 { range "3..120"; } description "Periodic Data MDT Join TLV interval"; } leaf max-aggregation { type uint32 { range "1..16777215"; } description "Data MDT max-aggregation"; } } // container data container c-multicast-routing { presence "Indicates a c-multicast-routing node is configured."; description "MVPN customer routing commands"; leaf type { type enumeration { enum "pim" { value 1; description "PIM customer multicast routing"; } enum "bgp" { value 2; description "BGP customer multicast routing"; } } mandatory true; description "MVPN customer routing commands"; } container announce-pim-join-tlv { presence "Indicates a announce-pim-join-tlv node is configured."; description "Announce PIM MDT Join TLVs"; } // container announce-pim-join-tlv container suppress-shared-tree-join { presence "Indicates a suppress-shared-tree-join node is configured."; description "Suppress shared tree joins"; } // container suppress-shared-tree-join container suppress-pim-data-signaling { presence "Indicates a suppress-pim-data-signaling node is configured."; description "Suppress PIM data signaling"; } // container suppress-pim-data-signaling container mdt-hello { when "../type != 'pim'"; description "PIM Hellos over MDT"; container enable { presence "Indicates a enable node is configured."; description "Enable PIM Hellos over MDT"; } // container enable } // container mdt-hello leaf shared-tree-prune-delay { type uint32 { range "0..1800"; } description "Delay before pruning I-S PMSI from S,G when SA received"; } leaf source-tree-prune-delay { type uint32 { range "0..300"; } description "Delay before removing PMSI from olist after BGP withdrawal"; } container migration { presence "Indicates a migration node is configured."; description "customer routing migration"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select customer routing"; } } // container migration container unicast-reachability { description "Control addition of Extended Communities to Unicast VPN-IP routes"; container connector { description "Enable/Disable Connector"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Connector Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Connector Attribute"; } // container enable } // container connector container source-as { description "Enable/Disable Source AS"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Source-AS Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Source-AS Attribute"; } // container enable } // container source-as container vrf-route-import { description "Enable/Disable VRF Route Import"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable VRF Route Import Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable VRF Route Import Attribute"; } // container enable } // container vrf-route-import } // container unicast-reachability } // container c-multicast-routing } // container mdt container allow-rp { presence "Indicates a allow-rp node is configured."; description "Sparse-Mode RP addresses to be allowed"; leaf rp-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed RP addresses"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed group ranges"; } } // container allow-rp container sg-expiry-timer { presence "Indicates a sg-expiry-timer node is configured."; description "Configure SG expiry timer"; leaf sg-expiry-timer-value { type uint32 { range "40..57600"; } mandatory true; description "Configure SG expiry timer"; } leaf sg-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list of (S,G) routes for which expiry timer is applicable"; } } // container sg-expiry-timer container ssm { description "Configure a group range for Source-Specific use"; leaf range { type xr:Cisco-ios-xr-string { length "1..32"; } must "not(../disable)"; description "Provide ACL that specifies non-standard SSM range"; } container disable { must "not(../range)"; presence "Indicates a disable node is configured."; description "Disable use of all SSM group ranges"; } // container disable container allow-override { presence "Indicates a allow-override node is configured."; description "Allow SSM ranges to be overridden by more specific ranges"; } // container allow-override } // container ssm container multipath { presence "Indicates a multipath node is configured."; description "Enable equal-cost multipath routing"; container hash { must "interface-extended or source-nexthop or source-group"; presence "Indicates a hash node is configured."; description "Enter a hashing algorithm"; container interface-extended { must "not(../source-nexthop) and not(../source-group)"; presence "Indicates a interface-extended node is configured."; description "Enable interface extensions for non-unique next-hop addrs"; } // container interface-extended container source-nexthop { must "not(../interface-extended) and not(../source-group)"; presence "Indicates a source-nexthop node is configured."; description "Enable source with next-hop multipath hashing (better distribution)"; } // container source-nexthop container source-group { must "not(../source-nexthop) and not(../interface-extended)"; presence "Indicates a source-group node is configured."; description "Enable source, group based multipath hashing (Compatible with IOS versions)"; } // container source-group } // container hash } // container multipath container interfaces { description "PIM interface configuration subcommands"; list interface { key "interface-name"; description "Select an interface to configure"; leaf interface-name { type xr:Interface-name; description "Select an interface to configure"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "PIM Hello DR priority"; } leaf hello-interval { type uint32 { range "1..3600"; } description "PIM neighbor Hello announcement interval"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "PIM periodic Join-Prune announcement interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "MTU to use when sending PIM J/P packets"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "PIM Hello propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "PIM Hello override interval"; } container bsr-border { presence "Indicates a bsr-border node is configured."; description "Do not fwd BSR messages on this interface"; } // container bsr-border container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable PIM processing on this interface"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable PIM processing on this interface"; } // container disable leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..1024"; } description "PIM Neighbor filter on this interface"; } container maximum { description "Per interface maximum state limits"; container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM downstream joined interfaces"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM downstream joined interfaces"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Name of ACL that specifies to which routes to apply the maximum limit"; } } // container route-interfaces } // container maximum container bfd { description "Configure BFD parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Hello interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container sticky-dr { presence "Indicates a sticky-dr node is configured."; description "Enable sticky DR on this interface"; } // container sticky-dr } // list interface } // container interfaces container bsr { description "BSR Configurations"; container candidate-bsr { presence "Indicates a candidate-bsr node is configured."; description "configure candidate BSR"; leaf address { type inet:ipv6-address-no-zone; mandatory true; description "IP address of configured BSR"; } leaf hash-mask-len { type uint32 { range "0..128"; } mandatory true; description "BSR Hash Mask Length"; } leaf priority { type uint32 { range "1..255"; } mandatory true; description "BSR Priority"; } } // container candidate-bsr container candidate-rps { description "BSR Candidate RP Configurations"; list candidate-rp { must "(priority and interval) or (bidir/priority and bidir/interval)"; key "address"; description "BSR Candidate RP Configurations"; leaf address { type inet:ipv6-address-no-zone; description "BSR Candidate RP Configurations"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } container bidir { description "To specify group ranges as Bidir"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } } // container bidir } // list candidate-rp } // container candidate-rps container relay { description "BSR RP relay config"; container vrfs { description "vrf"; list vrf { key "vrf-name"; description "vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "vrf"; } container listen { presence "Indicates a listen node is configured."; description "Enable RP relay in listen mode"; } // container listen } // list vrf } // container vrfs } // container relay } // container bsr container sr-p2mp-policies { description "Segment-routing P2MP policy"; list sr-p2mp-policy { key "policy-name"; description "Segment-routing P2MP policy"; leaf policy-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Segment-routing P2MP policy"; } container static-group { description "ipv6 static multicast group"; list group-address { key "group-address"; description "ipv6 static multicast group"; leaf group-address { type inet:ipv6-address-no-zone; description "ipv6 static multicast group"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Group-address without increment mask/source-address"; } // container group-address-only container group-address-inc-masks { description "Group-address with increment mask for group address"; list inc-mask { key "group-mask-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for group address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-masks container group-address-source-address { description "Group-address with source-address"; list source-address { key "source-address"; description "Source address to join"; leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } } // list source-address } // container group-address-source-address container group-address-inc-mask-source-address { description "Group-address with increment-mask and source-address"; list inc-mask { key "group-mask-address source-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-mask-source-address container group-address-source-address-inc-mask { description "Group-address and source-address with increment-mask"; list inc-mask { key "source-address source-mask-address"; description "Increment mask for group address"; leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for source address"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-address-source-address-inc-mask container group-inc-mask-source-inc-mask { description "Group-address with increment-mask and source-address with increment-mask"; list inc-mask { key "group-mask-address source-address source-mask-address"; leaf group-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for source address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-inc-mask-source-inc-mask } // list group-address } // container static-group } // list sr-p2mp-policy } // container sr-p2mp-policies container embedded-rp { description "Set Embedded RP processing support"; list ip-addresses { key "ip-address"; description "IP name or address of Rendezvous Point"; leaf ip-address { type inet:ipv6-address-no-zone; description "IP name or address of Rendezvous Point"; } leaf access-list-name { type xr:Cisco-ios-xr-string { length "1..1024"; } mandatory true; description "Access list of groups that should map to given RP"; } } // list ip-addresses container disable { presence "Indicates a disable node is configured."; description "Disable Embedded RP processing"; } // container disable } // container embedded-rp } // container ipv6 } // container address-family } // list vrf } // container vrfs container address-family { description "Enter Address Family command mode"; container ipv4 { description "IPv4 Address Family"; container rp-addresses { description "Configure Rendezvous Point"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv4-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address container bidir { description "Specify keyword bidir to configure a bidir RP"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv4-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address } // container bidir } // container rp-addresses leaf rp-static-deny { type xr:Cisco-ios-xr-string { length "1..32"; } description "Configure static RP deny range"; } leaf accept-register { type xr:Cisco-ios-xr-string { length "1..32"; } description "Registers accept filter"; } container suppress-data-registers { presence "Indicates a suppress-data-registers node is configured."; description "Suppress data registers after initial state setup"; } // container suppress-data-registers leaf register-source { type xr:Interface-name; description "Source address to use for register messages"; } container suppress-rpf-change-prunes { presence "Indicates a suppress-rpf-change-prunes node is configured."; description "Suppress prunes triggered as a result of RPF changes"; } // container suppress-rpf-change-prunes leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container convergence { description "Convergence related parameters"; leaf rpf-conflict-join-delay { type uint32 { range "0..15"; } description "Delay in sending first join if RPF points to any downstream neighbor"; } leaf link-down-prune-delay { type uint32 { range "0..60"; } description "Delay prunes if route join state transitions to not-joined on link down"; } } // container convergence container spt-threshold { description "Configure threshold for switching to SPT on last-hop"; container infinity { presence "Indicates a infinity node is configured."; description "Always stay on shared-tree"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Only stay on the shared-tree for specified groups"; } } // container infinity } // container spt-threshold container old-register-checksum { presence "Indicates a old-register-checksum node is configured."; description "Generate registers compatible with older IOS versions"; } // container old-register-checksum container nsf { description "Configure Non-stop forwarding (NSF) options"; leaf lifetime { type uint32 { range "10..600"; } description "Override default maximum lifetime for PIM NSF mode"; } } // container nsf container neighbor-check-on-send { description "Check for PIM neighbor before sending control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-send container neighbor-check-on-recv { description "Check for PIM neighbor before rcv'ing control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-recv leaf hello-interval { type uint32 { range "1..3600"; } description "Inherited by all interfaces : Hello interval in seconds"; } leaf mdt-hello-interval { type uint32 { range "1..3600"; } description "Hello interval for all MDT interfaces (seconds)"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "Inherited by all interfaces : PIM Hello DR priority"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "Inherited by all interfaces : Join-Prune interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "Inherited by all interfaces : Join-Prune MTU"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "Inherited by all interfaces : PIM Hello Propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "Inherited by all interfaces : PIM Hello override interval"; } container global { description "Global maximum limits"; container maximum { description "Maximum state limits"; container routes { presence "Indicates a routes node is configured."; description "PIM routes for all VRFs"; leaf maximum-routes { type uint32 { range "1..200000"; } mandatory true; description "PIM routes for all VRFs"; } leaf threshold { type uint32 { range "1..200000"; } must ". <= ../maximum-routes"; description "Set threshold to print warning"; } } // container routes container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM total interfaces on routes for all VRFs"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM total interfaces on routes for all VRFs"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Set threshold to print warning"; } } // container route-interfaces container register-states { presence "Indicates a register-states node is configured."; description "PIM source register states for all VRFs"; leaf maximum-register-states { type uint32 { range "0..75000"; } mandatory true; description "PIM source register states for all VRFs"; } leaf threshold { type uint32 { range "0..75000"; } must ". <= ../maximum-register-states"; description "Set threshold to print warning"; } } // container register-states container packet-queue { description "PIM Packet queue size in bytes"; leaf high-priority { type uint32 { range "0..2147483648"; } description "PIM high priority packet queue size in bytes"; } leaf low-priority { type uint32 { range "0..2147483648"; } description "PIM low priority packet queue size in bytes"; } } // container packet-queue container group-mappings { description "PIM group-to-RP mapping ranges"; container bsr { presence "Indicates a bsr node is configured."; description "Learned through the BSR distribution mechanism"; leaf maximum-bsr { type uint32 { range "1..10000"; } mandatory true; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-bsr"; description "Set threshold to print warning"; } } // container bsr container autorp { presence "Indicates a autorp node is configured."; description "Learned through the Auto-RP distribution mechanism"; leaf maximum-autorp { type uint32 { range "1..10000"; } mandatory true; description "Learned through the Auto-RP distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-autorp"; description "Set threshold to print warning"; } } // container autorp } // container group-mappings container bsr { description "BSR maximum C-RP cache setting"; container crp-cache { presence "Indicates a crp-cache node is configured."; description "Set maximum number of C-RP cache in BSR"; leaf maximum-crp-cache { type uint32 { range "1..10000"; } mandatory true; description "Set maximum number of C-RP cache in BSR"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-crp-cache"; description "Set threshold to print warning"; } } // container crp-cache } // container bsr } // container maximum } // container global container maximum { description "Maximum state limits"; container routes { presence "Indicates a routes node is configured."; description "PIM routes"; leaf maximum-routes { type uint32 { range "1..200000"; } mandatory true; description "PIM routes"; } leaf threshold { type uint32 { range "1..200000"; } must ". <= ../maximum-routes"; description "Set threshold to print warning"; } } // container routes container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM total number of interfaces on all routes"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM total number of interfaces on all routes"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Set threshold to print warning"; } } // container route-interfaces container register-states { presence "Indicates a register-states node is configured."; description "PIM source register states"; leaf maximum-register-states { type uint32 { range "0..75000"; } mandatory true; description "PIM source register states"; } leaf threshold { type uint32 { range "0..75000"; } must ". <= ../maximum-register-states"; description "Set threshold to print warning"; } } // container register-states container group-mappings { description "PIM group-to-RP mapping ranges"; container bsr { presence "Indicates a group-mappings node is configured."; description "Learned through the BSR distribution mechanism"; leaf maximum-bsr { type uint32 { range "1..10000"; } mandatory true; description "Learned through the BSR distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-bsr"; description "Set threshold to print warning"; } } // container bsr container autorp { presence "Indicates a autorp node is configured."; description "Learned through the Auto-RP distribution mechanism"; leaf maximum-autorp { type uint32 { range "1..10000"; } mandatory true; description "Learned through the Auto-RP distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-autorp"; description "Set threshold to print warning"; } } // container autorp } // container group-mappings container bsr { description "BSR maximum C-RP cache setting"; container crp-cache { presence "Indicates a crp-cache node is configured."; description "Set maximum number of C-RP cache in BSR"; leaf maximum-crp-cache { type uint32 { range "1..10000"; } mandatory true; description "Set maximum number of C-RP cache in BSR"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-crp-cache"; description "Set threshold to print warning"; } } // container crp-cache } // container bsr } // container maximum leaf convergence-timeout { type uint32 { range "1800..2400"; } description "Timeout value for the RIB convergence notification"; } container log { description "Enable PIM logging"; container neighbor { description "Enable PIM neighbor logging"; container changes { presence "Indicates a changes node is configured."; description "Enable PIM neighbor state logging"; } // container changes } // container neighbor } // container log container rpf-vector { presence "Indicates a rpf-vector node is configured."; description "Enable PIM RPF Vector"; container allow-ebgp { presence "Indicates a allow-ebgp node is configured."; description "Allow origination of RPF vector over an eBGP session"; } // container allow-ebgp container disable-ibgp { presence "Indicates a disable-ibgp node is configured."; description "Disable origination of RPF vector over an iBGP session"; } // container disable-ibgp container use-standard-encoding { presence "Indicates a use-standard-encoding node is configured."; description "Use RFC standard encode type"; } // container use-standard-encoding } // container rpf-vector container rpf-vector-injects { description "inject RPF vector"; list inject { must "rpf-vector"; key "source-address masklen"; description "inject RPF vector"; leaf source-address { type inet:ipv4-address-no-zone; description "inject RPF vector"; } leaf masklen { type uint32 { range "0..32"; } description "masklen"; } leaf-list rpf-vector { type inet:ipv4-address-no-zone; max-elements 22; description "configure this node"; } } // list inject } // container rpf-vector-injects container explicit-rpf-vector { description "Enable Explicit PIM RPF Vector"; container injects { description "inject Explicit RPF vector"; list inject { must "rpf-vector"; key "source-address masklen"; description "inject Explicit RPF vector"; leaf source-address { type inet:ipv4-address-no-zone; description "inject Explicit RPF vector"; } leaf masklen { type uint32 { range "0..32"; } description "masklen"; } leaf-list rpf-vector { type inet:ipv4-address-no-zone; max-elements 22; description "configure this node"; } } // list inject } // container injects } // container explicit-rpf-vector container rpf { description "RPF commands"; container topology { description "Select RPF topology"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select RPF topology"; } } // container topology } // container rpf container mdt { description "Multicast Distribution Tree commands"; leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container data { description "Data MDT Options"; leaf switchover-interval { type uint32 { range "3..60"; } description "Data MDT switchover interval"; } leaf announce-interval { type uint32 { range "3..120"; } description "Periodic Data MDT Join TLV interval"; } leaf max-aggregation { type uint32 { range "1..16777215"; } description "Data MDT max-aggregation"; } } // container data container c-multicast-routing { presence "Indicates a c-multicast-routing node is configured."; description "MVPN customer routing commands"; leaf type { type enumeration { enum "pim" { value 1; description "PIM customer multicast routing"; } enum "bgp" { value 2; description "BGP customer multicast routing"; } } mandatory true; description "MVPN customer routing commands"; } container announce-pim-join-tlv { presence "Indicates a announce-pim-join-tlv node is configured."; description "Announce PIM MDT Join TLVs"; } // container announce-pim-join-tlv container suppress-shared-tree-join { presence "Indicates a suppress-shared-tree-join node is configured."; description "Suppress shared tree joins"; } // container suppress-shared-tree-join container suppress-pim-data-signaling { presence "Indicates a suppress-pim-data-signaling node is configured."; description "Suppress PIM data signaling"; } // container suppress-pim-data-signaling container mdt-hello { when "../type != 'pim'"; description "PIM Hellos over MDT"; container enable { presence "Indicates a enable node is configured."; description "Enable PIM Hellos over MDT"; } // container enable } // container mdt-hello leaf shared-tree-prune-delay { type uint32 { range "0..1800"; } description "Delay before pruning I-S PMSI from S,G when SA received"; } leaf source-tree-prune-delay { type uint32 { range "0..300"; } description "Delay before removing PMSI from olist after BGP withdrawal"; } container migration { presence "Indicates a migration node is configured."; description "customer routing migration"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select customer routing"; } } // container migration container unicast-reachability { description "Control addition of Extended Communities to Unicast VPN-IP routes"; container connector { description "Enable/Disable Connector"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Connector Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Connector Attribute"; } // container enable } // container connector container source-as { description "Enable/Disable Source AS"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Source-AS Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Source-AS Attribute"; } // container enable } // container source-as container vrf-route-import { description "Enable/Disable VRF Route Import"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable VRF Route Import Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable VRF Route Import Attribute"; } // container enable } // container vrf-route-import } // container unicast-reachability } // container c-multicast-routing } // container mdt container allow-rp { presence "Indicates a allow-rp node is configured."; description "Sparse-Mode RP addresses to be allowed"; leaf rp-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed RP addresses"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed group ranges"; } } // container allow-rp container sg-expiry-timer { presence "Indicates a sg-expiry-timer node is configured."; description "Configure SG expiry timer"; leaf sg-expiry-timer-value { type uint32 { range "40..57600"; } mandatory true; description "Configure SG expiry timer"; } leaf sg-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list of (S,G) routes for which expiry timer is applicable"; } } // container sg-expiry-timer container ssm { description "Configure a group range for Source-Specific use"; leaf range { type xr:Cisco-ios-xr-string { length "1..32"; } must "not(../disable)"; description "Provide ACL that specifies non-standard SSM range"; } container disable { must "not(../range)"; presence "Indicates a disable node is configured."; description "Disable use of all SSM group ranges"; } // container disable container allow-override { presence "Indicates a allow-override node is configured."; description "Allow SSM ranges to be overridden by more specific ranges"; } // container allow-override } // container ssm container rpf-redirect { description "Route policy for rpf-redirect bundles"; leaf route-policy { type xr:Route-policy-name; description "Bandwidth assigment (kbps) for SG routes"; } } // container rpf-redirect container multipath { presence "Indicates a multipath node is configured."; description "Enable equal-cost multipath routing"; container hash { must "source or source-nexthop or source-group"; presence "Indicates a hash node is configured."; description "Enter a hashing algorithm"; container source { must "not(../source-nexthop) and not(../source-group)"; presence "Indicates a source node is configured."; description "Enable source based multipath hashing (Compatible with IOS versions)"; } // container source container source-nexthop { must "not(../source) and not(../source-group)"; presence "Indicates a source-nexthop node is configured."; description "Enable source with next-hop multipath hashing (better distribution)"; } // container source-nexthop container source-group { must "not(../source-nexthop) and not(../source)"; presence "Indicates a source-group node is configured."; description "Enable source, group based multipath hashing (Compatible with IOS versions)"; } // container source-group } // container hash } // container multipath container auto-rp { description "Auto-RP Commands"; container candidate-rps { description "Configure as a Candidate RP"; list candidate-rp { must "scope or bidir/scope"; key "interface-name"; description "Candidate RP Configurations"; leaf interface-name { type xr:Interface-name; description "Candidate RP Configurations"; } leaf scope { type uint32 { range "1..255"; } must "../group-list and ../interval"; description "TTL for the announcement"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Be a candidate RP for groups specified by the acl"; } leaf interval { type uint32 { range "1..600"; } description "time between announcements <in seconds>"; } container bidir { description "to specify group ranges as bidir, default is pim-sm"; leaf scope { type uint32 { range "1..255"; } must "../group-list and ../interval"; description "TTL for the announcement"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Be a candidate RP for groups specified by the acl"; } leaf interval { type uint32 { range "1..600"; } description "time between announcements <in seconds>"; } } // container bidir } // list candidate-rp } // container candidate-rps container mapping-agent { presence "Indicates a mapping-agent node is configured."; description "Configure as a Mapping Agent"; leaf interface-name { type xr:Interface-name; mandatory true; description "Candidate RP Configurations"; } leaf scope { type uint32 { range "1..255"; } mandatory true; description "TTL for the announcement"; } leaf interval { type uint32 { range "1..600"; } mandatory true; description "number of seconds between discovery messages"; } } // container mapping-agent container listen { description "RP discovery through AUTORP protocol"; container disable { presence "Indicates a disable node is configured."; description "Disable RP discovery through the AUTORP protocol"; } // container disable } // container listen container relay { description "relay"; container vrfs { description "vrf"; list vrf { key "vrf-name"; description "vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..32"; } description "vrf"; } container listen { presence "Indicates a listen node is configured."; description "Enable RP relay in listen mode"; } // container listen } // list vrf } // container vrfs } // container relay } // container auto-rp container interface { description "PIM interface configuration subcommands"; 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"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "PIM Hello DR priority"; } leaf hello-interval { type uint32 { range "1..3600"; } description "PIM neighbor Hello announcement interval"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "PIM periodic Join-Prune announcement interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "MTU to use when sending PIM J/P packets"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "PIM Hello propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "PIM Hello override interval"; } container bsr-border { presence "Indicates a bsr-border node is configured."; description "Do not fwd BSR messages on this interface"; } // container bsr-border container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable PIM processing on this interface"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable PIM processing on this interface"; } // container disable leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..1024"; } description "PIM Neighbor filter on this interface"; } container maximum { description "Per interface maximum state limits"; container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM downstream joined interfaces"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM downstream joined interfaces"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Name of ACL that specifies to which routes to apply the maximum limit"; } } // container route-interfaces } // container maximum container bfd { description "Configure BFD parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Hello interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container rpf-redirect { presence "Indicates a rpf-redirect node is configured."; description "RPF redirect bundle configuration"; leaf bundle { type xr:Cisco-ios-xr-string { length "1..32"; } mandatory true; description "Bundle name"; } leaf bandwidth { type uint32 { range "0..100000000"; } description "Interface bandwidth in Kbps"; } leaf threshold { type uint32 { range "0..100000000"; } must "../bandwidth"; description "Bandwidth threshold in Kbps"; } } // container rpf-redirect container sticky-dr { presence "Indicates a sticky-dr node is configured."; description "Enable sticky DR on this interface"; } // container sticky-dr } // list interface } // container interfaces } // container interface container bsr { description "BSR Configurations"; container candidate-bsr { presence "Indicates a candidate-bsr node is configured."; description "configure candidate BSR"; leaf address { type inet:ipv4-address-no-zone; mandatory true; description "IP address of configured BSR"; } leaf hash-mask-len { type uint32 { range "0..32"; } mandatory true; description "BSR Hash Mask Length"; } leaf priority { type uint32 { range "1..255"; } mandatory true; description "BSR Priority"; } } // container candidate-bsr container candidate-rps { description "BSR Candidate RP Configurations"; list candidate-rp { must "(priority and interval) or (bidir/priority and bidir/interval)"; key "address"; description "BSR Candidate RP Configurations"; leaf address { type inet:ipv4-address-no-zone; description "BSR Candidate RP Configurations"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } container bidir { description "To specify group ranges as Bidir"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } } // container bidir } // list candidate-rp } // container candidate-rps container relay { description "BSR RP relay config"; container vrfs { description "vrf"; list vrf { key "vrf-name"; description "vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "vrf"; } container listen { presence "Indicates a listen node is configured."; description "Enable RP relay in listen mode"; } // container listen } // list vrf } // container vrfs } // container relay } // container bsr container mofrr { presence "Indicates a mofrr node is configured."; description "PIM Mofrr"; leaf flow { type string { length "1..1024"; } description "Multicast Only FRR"; } leaf rib { type string { length "1..1024"; } description "Use the rib keyword to restrict switchover triggers to RIB events"; } container non-revertive { presence "Indicates a non-revertive node is configured."; description "Non-revertive MoFRR"; } // container non-revertive container clone { description "Use the clone keyword to clone"; container joins { description "Use the join keyword to clone S,G as S1,G joins and S2,G joins"; list join { must "to"; key "address"; description "Use the join keyword to clone S,G as S1,G joins as S2,G joins"; leaf address { type inet:ipv4-address-no-zone; description "Source S"; } list to { must "and"; key "address"; description "to"; leaf address { type inet:ipv4-address-no-zone; description "Source S1"; } list and { must "masklen"; key "address"; description "and"; leaf address { type inet:ipv4-address-no-zone; description "Source S2"; } list masklen { key "mask-length"; description "masklen"; leaf mask-length { type uint32 { range "0..32"; } description "masklen"; } } // list masklen } // list and } // list to } // list join } // container joins container sources { description "Use the source keyword to clone S,G as S1,G traffic and S2,G traffic"; list source { must "to"; key "address"; description "Use the source keyword to clone S,G as S1,G traffic and S2,G traffic"; leaf address { type inet:ipv4-address-no-zone; description "Source S"; } list to { must "and"; key "address"; description "to"; leaf address { type inet:ipv4-address-no-zone; description "Source S1"; } list and { must "masklen"; key "address"; description "and"; leaf address { type inet:ipv4-address-no-zone; description "Source S2"; } list masklen { key "mask-length"; description "masklen"; leaf mask-length { type uint32 { range "0..32"; } description "masklen"; } } // list masklen } // list and } // list to } // list source } // container sources } // container clone } // container mofrr container sr-p2mp-policies { description "Segment-routing P2MP policy"; list sr-p2mp-policy { key "sr-p2mp-policy-id"; description "Segment-routing P2MP policy"; leaf sr-p2mp-policy-id { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Segment-routing P2MP policy"; } container static-group { description "ipv4 static multicast group"; list group-address { key "group-address"; description "ipv4 static multicast group"; leaf group-address { type inet:ipv4-address-no-zone; description "ipv4 static multicast group"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Group-address without increment mask/source-address"; } // container group-address-only container group-address-inc-masks { description "Group-address with increment mask for group address"; list inc-mask { key "group-mask-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-masks container group-address-source-address { description "Group-address with source-address"; list source-address { key "source-address"; description "Source address to join"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } } // list source-address } // container group-address-source-address container group-address-inc-mask-source-address { description "Group-address with increment-mask and source-address"; list inc-mask { key "group-mask-address source-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-mask-source-address container group-address-source-address-inc-mask { description "Group-address and source-address with increment-mask"; list inc-mask { key "source-address source-mask-address"; description "Increment mask for group address"; leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-address-source-address-inc-mask container group-inc-mask-source-inc-mask { description "Group-address with increment-mask and source-address with increment-mask"; list inc-mask { key "group-mask-address source-address source-mask-address"; leaf group-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv4-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv4-address-no-zone; description "Increment mask for source address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-inc-mask-source-inc-mask } // list group-address } // container static-group } // list sr-p2mp-policy } // container sr-p2mp-policies } // container ipv4 container ipv6 { description "IPv6 Address Family"; container rp-addresses { description "Configure Rendezvous Point"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv6-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address container bidir { description "Specify keyword bidir to configure a bidir RP"; list rp-address { key "address"; description "Configure Rendezvous Point"; leaf address { type inet:ipv6-address-no-zone; description "Configure Rendezvous Point"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access list of groups that should map to given RP"; } container override { presence "Indicates a override node is configured."; description "Static RP config overrides auto-rp and BSR"; } // container override } // list rp-address } // container bidir } // container rp-addresses leaf rp-static-deny { type xr:Cisco-ios-xr-string { length "1..32"; } description "Configure static RP deny range"; } leaf accept-register { type xr:Cisco-ios-xr-string { length "1..32"; } description "Registers accept filter"; } container suppress-data-registers { presence "Indicates a suppress-data-registers node is configured."; description "Suppress data registers after initial state setup"; } // container suppress-data-registers leaf register-source { type xr:Interface-name; description "Source address to use for register messages"; } container suppress-rpf-change-prunes { presence "Indicates a suppress-rpf-change-prunes node is configured."; description "Suppress prunes triggered as a result of RPF changes"; } // container suppress-rpf-change-prunes leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container convergence { description "Convergence related parameters"; leaf rpf-conflict-join-delay { type uint32 { range "0..15"; } description "Delay in sending first join if RPF points to any downstream neighbor"; } leaf link-down-prune-delay { type uint32 { range "0..60"; } description "Delay prunes if route join state transitions to not-joined on link down"; } } // container convergence container spt-threshold { description "Configure threshold for switching to SPT on last-hop"; container infinity { presence "Indicates a infinity node is configured."; description "Always stay on shared-tree"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Only stay on the shared-tree for specified groups"; } } // container infinity } // container spt-threshold container old-register-checksum { presence "Indicates a old-register-checksum node is configured."; description "Generate registers compatible with older IOS versions"; } // container old-register-checksum container nsf { description "Configure Non-stop forwarding (NSF) options"; leaf lifetime { type uint32 { range "10..600"; } description "Override default maximum lifetime for PIM NSF mode"; } } // container nsf container neighbor-check-on-send { description "Check for PIM neighbor before sending control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-send container neighbor-check-on-recv { description "Check for PIM neighbor before rcv'ing control messages"; container enable { presence "Indicates a enable node is configured."; description "Enable this feature"; } // container enable } // container neighbor-check-on-recv leaf hello-interval { type uint32 { range "1..3600"; } description "Inherited by all interfaces : Hello interval in seconds"; } leaf mdt-hello-interval { type uint32 { range "1..3600"; } description "Hello interval for all MDT interfaces (seconds)"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "Inherited by all interfaces : PIM Hello DR priority"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "Inherited by all interfaces : Join-Prune interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "Inherited by all interfaces : Join-Prune MTU"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "Inherited by all interfaces : PIM Hello Propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "Inherited by all interfaces : PIM Hello override interval"; } container global { description "Global maximum limits"; container maximum { description "Maximum state limits"; container routes { presence "Indicates a routes node is configured."; description "PIM routes for all VRFs"; leaf maximum-routes { type uint32 { range "1..200000"; } mandatory true; description "PIM routes for all VRFs"; } leaf threshold { type uint32 { range "1..200000"; } must ". <= ../maximum-routes"; description "Set threshold to print warning"; } } // container routes container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM total interfaces on routes for all VRFs"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM total interfaces on routes for all VRFs"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Set threshold to print warning"; } } // container route-interfaces container register-states { presence "Indicates a register-states node is configured."; description "PIM source register states for all VRFs"; leaf maximum-register-states { type uint32 { range "0..75000"; } mandatory true; description "PIM source register states for all VRFs"; } leaf threshold { type uint32 { range "0..75000"; } must ". <= ../maximum-register-states"; description "Set threshold to print warning"; } } // container register-states container packet-queue { description "PIM Packet queue size in bytes"; leaf high-priority { type uint32 { range "0..2147483648"; } description "PIM high priority packet queue size in bytes"; } leaf low-priority { type uint32 { range "0..2147483648"; } description "PIM low priority packet queue size in bytes"; } } // container packet-queue container group-mappings { description "PIM group-to-RP mapping ranges"; container bsr { presence "Indicates a bsr node is configured."; description "Learned through the BSR distribution mechanism"; leaf maximum-bsr { type uint32 { range "1..10000"; } mandatory true; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-bsr"; description "Set threshold to print warning"; } } // container bsr } // container group-mappings container bsr { description "BSR maximum C-RP cache setting"; container crp-cache { presence "Indicates a crp-cache node is configured."; description "Set maximum number of C-RP cache in BSR"; leaf maximum-crp-cache { type uint32 { range "1..10000"; } mandatory true; description "Set maximum number of C-RP cache in BSR"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-crp-cache"; description "Set threshold to print warning"; } } // container crp-cache } // container bsr } // container maximum } // container global container maximum { description "Maximum state limits"; container routes { presence "Indicates a routes node is configured."; description "PIM routes"; leaf maximum-routes { type uint32 { range "1..200000"; } mandatory true; description "PIM routes"; } leaf threshold { type uint32 { range "1..200000"; } must ". <= ../maximum-routes"; description "Set threshold to print warning"; } } // container routes container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM total number of interfaces on all routes"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM total number of interfaces on all routes"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Set threshold to print warning"; } } // container route-interfaces container register-states { presence "Indicates a register-states node is configured."; description "PIM source register states"; leaf maximum-register-states { type uint32 { range "0..75000"; } mandatory true; description "PIM source register states"; } leaf threshold { type uint32 { range "0..75000"; } must ". <= ../maximum-register-states"; description "Set threshold to print warning"; } } // container register-states container group-mappings { description "PIM group-to-RP mapping ranges"; container bsr { presence "Indicates a group-mappings node is configured."; description "Learned through the BSR distribution mechanism"; leaf maximum-bsr { type uint32 { range "1..10000"; } mandatory true; description "Learned through the BSR distribution mechanism"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-bsr"; description "Set threshold to print warning"; } } // container bsr } // container group-mappings container bsr { description "BSR maximum C-RP cache setting"; container crp-cache { presence "Indicates a crp-cache node is configured."; description "Set maximum number of C-RP cache in BSR"; leaf maximum-crp-cache { type uint32 { range "1..10000"; } mandatory true; description "Set maximum number of C-RP cache in BSR"; } leaf threshold { type uint32 { range "1..10000"; } must ". <= ../maximum-crp-cache"; description "Set threshold to print warning"; } } // container crp-cache } // container bsr } // container maximum leaf convergence-timeout { type uint32 { range "1800..2400"; } description "Timeout value for the RIB convergence notification"; } container log { description "Enable PIM logging"; container neighbor { description "Enable PIM neighbor logging"; container changes { presence "Indicates a changes node is configured."; description "Enable PIM neighbor state logging"; } // container changes } // container neighbor } // container log container rpf-vector { presence "Indicates a rpf-vector node is configured."; description "Enable PIM RPF Vector"; container allow-ebgp { presence "Indicates a allow-ebgp node is configured."; description "Allow origination of RPF vector over an eBGP session"; } // container allow-ebgp container disable-ibgp { presence "Indicates a disable-ibgp node is configured."; description "Disable origination of RPF vector over an iBGP session"; } // container disable-ibgp container use-standard-encoding { presence "Indicates a use-standard-encoding node is configured."; description "Use RFC standard encode type"; } // container use-standard-encoding } // container rpf-vector container rpf { description "RPF commands"; container topology { description "Select RPF topology"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select RPF topology"; } } // container topology } // container rpf container mdt { description "Multicast Distribution Tree commands"; leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..32"; } description "Neighbor filter"; } container data { description "Data MDT Options"; leaf switchover-interval { type uint32 { range "3..60"; } description "Data MDT switchover interval"; } leaf announce-interval { type uint32 { range "3..120"; } description "Periodic Data MDT Join TLV interval"; } leaf max-aggregation { type uint32 { range "1..16777215"; } description "Data MDT max-aggregation"; } } // container data container c-multicast-routing { presence "Indicates a c-multicast-routing node is configured."; description "MVPN customer routing commands"; leaf type { type enumeration { enum "pim" { value 1; description "PIM customer multicast routing"; } enum "bgp" { value 2; description "BGP customer multicast routing"; } } mandatory true; description "MVPN customer routing commands"; } container announce-pim-join-tlv { presence "Indicates a announce-pim-join-tlv node is configured."; description "Announce PIM MDT Join TLVs"; } // container announce-pim-join-tlv container suppress-shared-tree-join { presence "Indicates a suppress-shared-tree-join node is configured."; description "Suppress shared tree joins"; } // container suppress-shared-tree-join container suppress-pim-data-signaling { presence "Indicates a suppress-pim-data-signaling node is configured."; description "Suppress PIM data signaling"; } // container suppress-pim-data-signaling container mdt-hello { when "../type != 'pim'"; description "PIM Hellos over MDT"; container enable { presence "Indicates a enable node is configured."; description "Enable PIM Hellos over MDT"; } // container enable } // container mdt-hello leaf shared-tree-prune-delay { type uint32 { range "0..1800"; } description "Delay before pruning I-S PMSI from S,G when SA received"; } leaf source-tree-prune-delay { type uint32 { range "0..300"; } description "Delay before removing PMSI from olist after BGP withdrawal"; } container migration { presence "Indicates a migration node is configured."; description "customer routing migration"; leaf route-policy { type xr:Route-policy-name; description "Route policy to select customer routing"; } } // container migration container unicast-reachability { description "Control addition of Extended Communities to Unicast VPN-IP routes"; container connector { description "Enable/Disable Connector"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Connector Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Connector Attribute"; } // container enable } // container connector container source-as { description "Enable/Disable Source AS"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable Source-AS Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable Source-AS Attribute"; } // container enable } // container source-as container vrf-route-import { description "Enable/Disable VRF Route Import"; container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable VRF Route Import Attribute"; } // container disable container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable VRF Route Import Attribute"; } // container enable } // container vrf-route-import } // container unicast-reachability } // container c-multicast-routing } // container mdt container allow-rp { presence "Indicates a allow-rp node is configured."; description "Sparse-Mode RP addresses to be allowed"; leaf rp-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed RP addresses"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list for allowed group ranges"; } } // container allow-rp container sg-expiry-timer { presence "Indicates a sg-expiry-timer node is configured."; description "Configure SG expiry timer"; leaf sg-expiry-timer-value { type uint32 { range "40..57600"; } mandatory true; description "Configure SG expiry timer"; } leaf sg-list { type xr:Cisco-ios-xr-string { length "1..32"; } description "Access-list of (S,G) routes for which expiry timer is applicable"; } } // container sg-expiry-timer container ssm { description "Configure a group range for Source-Specific use"; leaf range { type xr:Cisco-ios-xr-string { length "1..32"; } must "not(../disable)"; description "Provide ACL that specifies non-standard SSM range"; } container disable { must "not(../range)"; presence "Indicates a disable node is configured."; description "Disable use of all SSM group ranges"; } // container disable container allow-override { presence "Indicates a allow-override node is configured."; description "Allow SSM ranges to be overridden by more specific ranges"; } // container allow-override } // container ssm container multipath { presence "Indicates a multipath node is configured."; description "Enable equal-cost multipath routing"; container hash { must "interface-extended or source-nexthop or source-group"; presence "Indicates a hash node is configured."; description "Enter a hashing algorithm"; container interface-extended { must "not(../source-nexthop) and not(../source-group)"; presence "Indicates a interface-extended node is configured."; description "Enable interface extensions for non-unique next-hop addrs"; } // container interface-extended container source-nexthop { must "not(../interface-extended) and not(../source-group)"; presence "Indicates a source-nexthop node is configured."; description "Enable source with next-hop multipath hashing (better distribution)"; } // container source-nexthop container source-group { must "not(../source-nexthop) and not(../interface-extended)"; presence "Indicates a source-group node is configured."; description "Enable source, group based multipath hashing (Compatible with IOS versions)"; } // container source-group } // container hash } // container multipath container interface { description "PIM interface configuration subcommands"; 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"; } leaf dr-priority { type uint32 { range "0..4294967295"; } description "PIM Hello DR priority"; } leaf hello-interval { type uint32 { range "1..3600"; } description "PIM neighbor Hello announcement interval"; } leaf join-prune-interval { type uint32 { range "10..600"; } description "PIM periodic Join-Prune announcement interval"; } leaf join-prune-mtu { type uint32 { range "576..65535"; } description "MTU to use when sending PIM J/P packets"; } leaf propagation-delay { type uint32 { range "100..32767"; } description "PIM Hello propagation delay"; } leaf override-interval { type uint32 { range "400..65535"; } description "PIM Hello override interval"; } container bsr-border { presence "Indicates a bsr-border node is configured."; description "Do not fwd BSR messages on this interface"; } // container bsr-border container enable { must "not(../disable)"; presence "Indicates a enable node is configured."; description "Enable PIM processing on this interface"; } // container enable container disable { must "not(../enable)"; presence "Indicates a disable node is configured."; description "Disable PIM processing on this interface"; } // container disable leaf neighbor-filter { type xr:Cisco-ios-xr-string { length "1..1024"; } description "PIM Neighbor filter on this interface"; } container maximum { description "Per interface maximum state limits"; container route-interfaces { presence "Indicates a route-interfaces node is configured."; description "PIM downstream joined interfaces"; leaf maximum-route-interfaces { type uint32 { range "1..1100000"; } mandatory true; description "PIM downstream joined interfaces"; } leaf threshold { type uint32 { range "1..1100000"; } must ". <= ../maximum-route-interfaces"; description "Threshold warning"; } leaf access-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Name of ACL that specifies to which routes to apply the maximum limit"; } } // container route-interfaces } // container maximum container bfd { description "Configure BFD parameters"; container fast-detect { presence "Indicates a fast-detect node is configured."; description "Enable Fast detection"; } // container fast-detect leaf minimum-interval { type uint32 { range "3..30000"; } description "Hello interval"; } leaf multiplier { type uint32 { range "2..50"; } description "Detect multiplier"; } } // container bfd container sticky-dr { presence "Indicates a sticky-dr node is configured."; description "Enable sticky DR on this interface"; } // container sticky-dr } // list interface } // container interfaces } // container interface container bsr { description "BSR Configurations"; container candidate-bsr { presence "Indicates a candidate-bsr node is configured."; description "configure candidate BSR"; leaf address { type inet:ipv6-address-no-zone; mandatory true; description "IP address of configured BSR"; } leaf hash-mask-len { type uint32 { range "0..128"; } mandatory true; description "BSR Hash Mask Length"; } leaf priority { type uint32 { range "1..255"; } mandatory true; description "BSR Priority"; } } // container candidate-bsr container candidate-rps { description "BSR Candidate RP Configurations"; list candidate-rp { must "(priority and interval) or (bidir/priority and bidir/interval)"; key "address"; description "BSR Candidate RP Configurations"; leaf address { type inet:ipv6-address-no-zone; description "BSR Candidate RP Configurations"; } leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } container bidir { description "To specify group ranges as Bidir"; leaf group-list { type xr:Cisco-ios-xr-string { length "1..64"; } description "Group List access-list"; } leaf priority { type uint32 { range "1..255"; } description "C-RP Priority"; } leaf interval { type uint32 { range "30..600"; } description "C-RP Advertisement interval"; } } // container bidir } // list candidate-rp } // container candidate-rps container relay { description "BSR RP relay config"; container vrfs { description "vrf"; list vrf { key "vrf-name"; description "vrf"; leaf vrf-name { type xr:Cisco-ios-xr-string { length "1..1024"; } description "vrf"; } container listen { presence "Indicates a listen node is configured."; description "Enable RP relay in listen mode"; } // container listen } // list vrf } // container vrfs } // container relay } // container bsr container sr-p2mp-policies { description "Segment-routing P2MP policy"; list sr-p2mp-policy { key "sr-p2mp-policy-id"; description "Segment-routing P2MP policy"; leaf sr-p2mp-policy-id { type xr:Cisco-ios-xr-string { length "1..1024"; } description "Segment-routing P2MP policy"; } container static-group { description "ipv6 static multicast group"; list group-address { key "group-address"; description "ipv6 static multicast group"; leaf group-address { type inet:ipv6-address-no-zone; description "ipv6 static multicast group"; } container group-address-only { presence "Indicates a group-address-only node is configured."; description "Group-address without increment mask/source-address"; } // container group-address-only container group-address-inc-masks { description "Group-address with increment mask for group address"; list inc-mask { key "group-mask-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for group address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-masks container group-address-source-address { description "Group-address with source-address"; list source-address { key "source-address"; description "Source address to join"; leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } } // list source-address } // container group-address-source-address container group-address-inc-mask-source-address { description "Group-address with increment-mask and source-address"; list inc-mask { key "group-mask-address source-address"; description "Increment mask for group address"; leaf group-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } } // list inc-mask } // container group-address-inc-mask-source-address container group-address-source-address-inc-mask { description "Group-address and source-address with increment-mask"; list inc-mask { key "source-address source-mask-address"; description "Increment mask for group address"; leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for source address"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-address-source-address-inc-mask container group-inc-mask-source-inc-mask { description "Group-address with increment-mask and source-address with increment-mask"; list inc-mask { key "group-mask-address source-address source-mask-address"; leaf group-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for group address"; } leaf source-address { type inet:ipv6-address-no-zone; description "Source address to join"; } leaf source-mask-address { type inet:ipv6-address-no-zone; description "Increment mask for source address"; } leaf group-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of group addresses to join"; } leaf source-address-count { type uint32 { range "1..512"; } mandatory true; description "No. of source addresses to join"; } } // list inc-mask } // container group-inc-mask-source-inc-mask } // list group-address } // container static-group } // list sr-p2mp-policy } // container sr-p2mp-policies container embedded-rp { description "Set Embedded RP processing support"; list ip-addresses { key "ip-address"; description "IP name or address of Rendezvous Point"; leaf ip-address { type inet:ipv6-address-no-zone; description "IP name or address of Rendezvous Point"; } leaf access-list-name { type xr:Cisco-ios-xr-string { length "1..1024"; } mandatory true; description "Access list of groups that should map to given RP"; } } // list ip-addresses container disable { presence "Indicates a disable node is configured."; description "Disable Embedded RP processing"; } // container disable } // container embedded-rp } // container ipv6 } // container address-family } // container pim } // container router } // module Cisco-IOS-XR-um-router-pim-cfg
© 2023 YumaWorks, Inc. All rights reserved.