Cisco-IOS-XR-ipv4-pim-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR ipv4-pim package configuration. This module contains def...

  • Version: 2020-01-30

    Cisco-IOS-XR-ipv4-pim-cfg@2020-01-30


    
      module Cisco-IOS-XR-ipv4-pim-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-pim-cfg";
    
        prefix ipv4-pim-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-ipv4-autorp-datatypes {
          prefix dt1;
        }
    
        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 ipv4-pim package configuration.
         
         This module contains definitions
         for the following management objects:
           pim: PIM configuration
         
         Copyright (c) 2013-2020 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2020-01-30" {
          description
            "Addition made for Sticky DR CLI/XML operations";
        }
    
        revision "2019-10-31" {
          description
            "Added mandatory nodes and presence containers.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2017-10-15" {
          description
            "Removed presence statement generated from internal CLI data.";
        }
    
        revision "2017-05-22" {
          description
            "Updated node naming to be consistent with the CLI";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "2.1.0";
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        typedef Pim-bsr-priority {
          type uint32 {
            range "1..255";
          }
          description "Pim bsr priority";
        }
    
        typedef Auto-rp-announce-period {
          type uint32 {
            range "1..600";
          }
          description "Auto rp announce period";
        }
    
        typedef Pim-multipath {
          type enumeration {
            enum "enable" {
              value 0;
              description "Enable PIM multipath";
            }
            enum "interface-hash" {
              value 1;
              description
                "Enable PIM multipath with interface based
               hashing";
            }
            enum "source-hash" {
              value 2;
              description
                "Enable PIM multipath with source based hashing";
            }
            enum "source-next-hop-hash" {
              value 3;
              description
                "Enable PIM multipath with source next-hop
               hashing";
            }
            enum "source-group-hash" {
              value 4;
              description
                "Enable PIM multipath with source, group based
               hashing";
            }
          }
          description "Pim multipath";
        }
    
        typedef Auto-rp-ttl {
          type uint32 {
            range "1..255";
          }
          description "Auto rp ttl";
        }
    
        typedef Pim-protocol-mode {
          type enumeration {
            enum "sm" {
              value 0;
              description "Sparse Mode";
            }
            enum "bidir" {
              value 1;
              description "Bidirectional";
            }
          }
          description "Pim protocol mode";
        }
    
        container pim {
          description "PIM configuration";
          container vrfs {
            description "VRF table";
            list vrf {
              key "vrf-name";
              description "VRF name";
              container ipv4 {
                description "IPV4 commands";
                leaf neighbor-check-on-receive {
                  type empty;
                  description
                    "Enable PIM neighbor checking when receiving PIM
    messages";
                }
    
                leaf old-register-checksum {
                  type empty;
                  description
                    "Generate registers compatible with older IOS
    versions";
                }
    
                container sparse-mode-rp-addresses {
                  description
                    "Configure Sparse-Mode Rendezvous Point";
                  list sparse-mode-rp-address {
                    key "rp-address";
                    description
                      "Address of the Rendezvous Point";
                    leaf rp-address {
                      type inet:ip-address-no-zone;
                      description
                        "RP address of Rendezvous Point";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access list of groups that should map to a
    given RP";
                    }
    
                    leaf auto-rp-override {
                      type boolean;
                      description
                        "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                    }
                  }  // list sparse-mode-rp-address
                }  // container sparse-mode-rp-addresses
    
                leaf neighbor-filter {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list of neighbors to be filtered";
                }
    
                container inheritable-defaults {
                  description
                    "Inheritable defaults";
                  leaf convergence-timeout {
                    type uint32 {
                      range "1800..2400";
                    }
                    units "second";
                    description
                      "Convergency timeout in seconds";
                  }
    
                  leaf hello-interval {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    description
                      "Hello interval in seconds";
                  }
    
                  leaf sticky-dr {
                    type boolean;
                    description
                      "Enables interface sticky-dr feature";
                  }
    
                  leaf propagation-delay {
                    type uint32 {
                      range "100..32767";
                    }
                    units "millisecond";
                    description
                      "Propagation delay in milli seconds";
                  }
    
                  leaf dr-priority {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Hello DR priority, preference given to larger
    value";
                  }
    
                  leaf join-prune-mtu {
                    type uint32 {
                      range "576..65535";
                    }
                    units "byte";
                    description
                      "Join-Prune MTU in Bytes";
                  }
    
                  leaf jp-interval {
                    type uint32 {
                      range "10..600";
                    }
                    units "second";
                    description
                      "Join-Prune interval in seconds";
                  }
    
                  leaf override-interval {
                    type uint32 {
                      range "400..65535";
                    }
                    units "millisecond";
                    description
                      "Override interval in milliseconds";
                  }
                }  // container inheritable-defaults
    
                leaf spt-threshold-infinity {
                  type string;
                  description
                    "Configure threshold of infinity for switching to
    SPT on last-hop";
                }
    
                leaf log-neighbor-changes {
                  type empty;
                  description
                    "PIM neighbor state change logging is turned on
    if configured";
                }
    
                container rpf {
                  description
                    "Configure RPF options";
                  leaf route-policy {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Route policy to select RPF topology";
                  }
                }  // container rpf
    
                leaf register-source {
                  type xr:Interface-name;
                  description
                    "Source address to use for register messages";
                }
    
                container maximum {
                  description
                    "Configure PIM State Limits";
                  container group-mappings-auto-rp {
                    presence
                      "Indicates a group-mappings-auto-rp node is configured.";
                    description
                      "Override default maximum for number of group
    mappings from autorp mapping agent";
                    leaf maximum-group-ranges-auto-rp {
                      type uint32 {
                        range "1..10000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM group mappings from
    autorp";
                    }
    
                    leaf threshold-group-ranges-auto-rp {
                      type uint32 {
                        range "1..10000";
                      }
                      default "450";
                      description
                        "Warning threshold number of PIM group mappings
    from autorp";
                    }
                  }  // container group-mappings-auto-rp
    
                  container bsr-group-mappings {
                    presence
                      "Indicates a bsr-group-mappings node is configured.";
                    description
                      "Override default maximum and threshold for
    number of group mappings from BSR";
                    leaf bsr-maximum-group-ranges {
                      type uint32 {
                        range "1..10000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM group mappings from BSR";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..10000";
                      }
                      default "500";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container bsr-group-mappings
    
                  container register-states {
                    presence
                      "Indicates a register-states node is configured.";
                    description
                      "Override default maximum for number of
    sparse-mode source registers";
                    leaf maximum-register-states {
                      type uint32 {
                        range "0..75000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM Sparse-Mode register
    states";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "0..75000";
                      }
                      default "20000";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container register-states
    
                  container route-interfaces {
                    presence
                      "Indicates a route-interfaces node is configured.";
                    description
                      "Override default maximum for number of
    route-interfaces";
                    leaf maximum-route-interfaces {
                      type uint32 {
                        range "1..1100000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM route-interfaces";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..1100000";
                      }
                      default "300000";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container route-interfaces
    
                  container bsr-candidate-rp-cache {
                    presence
                      "Indicates a bsr-candidate-rp-cache node is configured.";
                    description
                      "Override default maximum and threshold for BSR
    C-RP cache setting";
                    leaf bsr-maximum-candidate-rp-cache {
                      type uint32 {
                        range "1..10000";
                      }
                      mandatory true;
                      description
                        "Maximum number of BSR C-RP cache setting";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..10000";
                      }
                      default "100";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container bsr-candidate-rp-cache
    
                  container routes {
                    presence
                      "Indicates a routes node is configured.";
                    description
                      "Override default maximum for number of routes";
                    leaf maximum-routes {
                      type uint32 {
                        range "1..200000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM routes";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..200000";
                      }
                      default "100000";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container routes
                }  // container maximum
    
                leaf accept-register {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list which specifies unauthorized sources";
                }
    
                container sg-expiry-timer {
                  description
                    "Configure expiry timer for S,G routes";
                  leaf interval {
                    type uint32 {
                      range "40..57600";
                    }
                    units "second";
                    description
                      "(S,G) expiry time in seconds";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list of applicable S,G routes";
                  }
                }  // container sg-expiry-timer
    
                container rpf-vector-enable {
                  presence
                    "Indicates a rpf-vector-enable node is configured.";
                  description
                    "Enable PIM RPF Vector Proxy's";
                  leaf enable {
                    type empty;
                    mandatory true;
                    description
                      "RPF Vector is turned on if configured";
                  }
    
                  leaf allow-ebgp {
                    type empty;
                    description
                      "Allow RPF Vector origination over eBGP sessions";
                  }
    
                  leaf disable-ibgp {
                    type empty;
                    description
                      "Disable RPF Vector origination over iBGP
    sessions";
                  }
    
                  leaf use-standard-encoding {
                    type empty;
                    description
                      "Use RPF Vector RFC compliant encoding";
                  }
                }  // container rpf-vector-enable
    
                leaf suppress-rpf-prunes {
                  type empty;
                  description
                    "Suppress prunes triggered as a result of RPF
    changes";
                }
    
                container ssm {
                  presence
                    "Contains mandatory nodes that used to set default values";
                  description
                    "Configure IP Multicast SSM";
                  leaf disable {
                    type boolean;
                    mandatory true;
                    description
                      "TRUE if SSM is disabled on this router";
                  }
    
                  leaf range {
                    type string {
                      length "1..64";
                    }
                    description
                      "Access list of groups enabled with SSM";
                  }
                }  // container ssm
    
                container injects {
                  description
                    "Inject Explicit PIM RPF Vector Proxy's";
                  list inject {
                    key "source-address prefix-length";
                    description
                      "Inject Explicit PIM RPF Vector Proxy's";
                    leaf source-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Source Address";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv4-prefix-length;
                      description "Masklen";
                    }
    
                    leaf-list rpf-proxy-address {
                      type inet:ipv4-address-no-zone;
                      min-elements 1;
                      max-elements 22;
                      description
                        "RPF Proxy Address";
                    }
                  }  // list inject
                }  // container injects
    
                container bidir-rp-addresses {
                  description
                    "Configure Bidirectional PIM Rendezvous Point";
                  list bidir-rp-address {
                    key "rp-address";
                    description
                      "Address of the Rendezvous Point";
                    leaf rp-address {
                      type inet:ip-address-no-zone;
                      description
                        "RP address of Rendezvous Point";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access list of groups that should map to a
    given RP";
                    }
    
                    leaf auto-rp-override {
                      type boolean;
                      description
                        "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                    }
                  }  // list bidir-rp-address
                }  // container bidir-rp-addresses
    
                leaf ssm-allow-override {
                  type empty;
                  description
                    "Allow SSM ranges to be overridden by more
    specific ranges";
                }
    
                container bsr {
                  description
                    "PIM BSR configuration";
                  container candidate-bsr {
                    presence
                      "Indicates a candidate-bsr node is configured.";
                    description
                      "PIM Candidate BSR configuration";
                    leaf address {
                      type inet:ip-address-no-zone;
                      mandatory true;
                      description
                        "BSR Address configured";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv4-prefix-length;
                      mandatory true;
                      description
                        "Hash Mask Length for this candidate BSR";
                    }
    
                    leaf priority {
                      type Pim-bsr-priority;
                      mandatory true;
                      description
                        "Priority of the Candidate BSR";
                    }
                  }  // container candidate-bsr
    
                  container candidate-rps {
                    description
                      "PIM RP configuration";
                    list candidate-rp {
                      key "address mode";
                      description
                        "Address of PIM SM BSR Candidate-RP";
                      leaf address {
                        type inet:ip-address-no-zone;
                        description
                          "Address of Candidate-RP";
                      }
    
                      leaf mode {
                        type Pim-protocol-mode;
                        description
                          "SM or Bidir";
                      }
    
                      leaf group-list {
                        type string {
                          length "1..64";
                        }
                        description
                          "Access-list specifying the group range for the
    Candidate-RP";
                      }
    
                      leaf priority {
                        type Pim-bsr-priority;
                        mandatory true;
                        description
                          "Priority of the CRP";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "30..600";
                        }
                        mandatory true;
                        description
                          "Advertisement interval";
                      }
                    }  // list candidate-rp
                  }  // container candidate-rps
                }  // container bsr
    
                container mofrr {
                  description
                    "Multicast Only Fast Re-Route";
                  container clone-joins {
                    description
                      "Clone multicast joins";
                    list clone-join {
                      key "source primary backup prefix-length";
                      description
                        "Clone S,G joins as S1,G joins and S2,G joins";
                      leaf source {
                        type inet:ipv4-address-no-zone;
                        description
                          "Original source address (S)";
                      }
    
                      leaf primary {
                        type inet:ipv4-address-no-zone;
                        description
                          "Primary cloned address (S1)";
                      }
    
                      leaf backup {
                        type inet:ipv4-address-no-zone;
                        description
                          "Backup cloned address (S2)";
                      }
    
                      leaf prefix-length {
                        type xr:Ipv4-prefix-length;
                        description
                          "Mask length";
                      }
                    }  // list clone-join
                  }  // container clone-joins
    
                  container clone-sources {
                    description
                      "Clone multicast traffic";
                    list clone-source {
                      key "source primary backup prefix-length";
                      description
                        "Clone S,G traffic as S1,G traffic and S2,G
    traffic";
                      leaf source {
                        type inet:ipv4-address-no-zone;
                        description
                          "Original source address (S)";
                      }
    
                      leaf primary {
                        type inet:ipv4-address-no-zone;
                        description
                          "Primary cloned address (S1)";
                      }
    
                      leaf backup {
                        type inet:ipv4-address-no-zone;
                        description
                          "Backup cloned address (S2)";
                      }
    
                      leaf prefix-length {
                        type xr:Ipv4-prefix-length;
                        description
                          "Mask length";
                      }
                    }  // list clone-source
                  }  // container clone-sources
    
                  leaf rib {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list specifying SG that should do RIB
    MOFRR";
                  }
    
                  leaf non-revertive {
                    type empty;
                    description
                      "Non-revertive Multicast Only Fast Re-Route";
                  }
    
                  leaf enable {
                    type empty;
                    description
                      "Enable Multicast Only FRR";
                  }
    
                  leaf flow {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list specifying SG that should do FLOW
    MOFRR";
                  }
                }  // container mofrr
    
                leaf multipath {
                  type Pim-multipath;
                  description
                    "Enable equal-cost multipath routing";
                }
    
                leaf rp-static-deny {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Configure static RP deny range";
                }
    
                container paths {
                  description
                    "Inject PIM RPF Vector Proxy's";
                  list path {
                    key "source-address prefix-length";
                    description
                      "Inject PIM RPF Vector Proxy's";
                    leaf source-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Source Address";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv4-prefix-length;
                      description "Masklen";
                    }
    
                    leaf-list rpf-proxy-address {
                      type inet:ipv4-address-no-zone;
                      min-elements 1;
                      max-elements 22;
                      description
                        "RPF Proxy Address";
                    }
                  }  // list path
                }  // container paths
    
                container allow-rp {
                  presence "enable allow-rp";
                  description
                    "Enable allow-rp filtering for SM joins";
                  leaf rp-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list specifiying applicable RPs";
                  }
    
                  leaf group-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list specifiying applicable groups";
                  }
                }  // container allow-rp
    
                leaf suppress-data-registers {
                  type empty;
                  description
                    "Suppress data registers after initial state
    setup";
                }
    
                leaf neighbor-check-on-send {
                  type empty;
                  description
                    "Enable PIM neighbor checking when sending
    join-prunes";
                }
    
                container convergence {
                  description
                    "Configure convergence parameters";
                  leaf rpf-conflict-join-delay {
                    type uint32 {
                      range "0..15";
                    }
                    units "second";
                    description
                      "Dampen first join if RPF path is through one of
    the downstream neighbor";
                  }
    
                  leaf link-down-prune-delay {
                    type uint32 {
                      range "0..60";
                    }
                    units "second";
                    description
                      "Delay prunes if route join state transitions to
    not-joined on link down";
                  }
                }  // container convergence
    
                container interfaces {
                  description
                    "Interface-level Configuration";
                  list interface {
                    key "interface-name";
                    description
                      "The name of the interface";
                    leaf enable {
                      type empty;
                      description
                        "Enter PIM Interface processing";
                    }
    
                    leaf interface-name {
                      type xr:Interface-name;
                      description
                        "The name of interface";
                    }
    
                    leaf neighbor-filter {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access-list of neighbors to be filtered";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..3600";
                      }
                      units "second";
                      description
                        "Hello interval in seconds";
                    }
    
                    leaf sticky-dr {
                      type boolean;
                      description
                        "Enables interface sticky-dr feature";
                    }
    
                    leaf bsr-border {
                      type boolean;
                      description
                        "BSR Border configuration for Interface";
                    }
    
                    container maximum-routes {
                      presence
                        "Indicates a maximum-routes node is configured.";
                      description
                        "Maximum number of allowed routes for this
    interface";
                      leaf maximum {
                        type uint32 {
                          range "1..1100000";
                        }
                        mandatory true;
                        description
                          "Maximum number of routes for this interface";
                      }
    
                      leaf warning-threshold {
                        type uint32 {
                          range "1..1100000";
                        }
                        description
                          "Set threshold to print warning";
                      }
    
                      leaf access-list-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Access-list to account for";
                      }
                    }  // container maximum-routes
    
                    leaf propagation-delay {
                      type uint32 {
                        range "100..32767";
                      }
                      units "millisecond";
                      description
                        "Propagation delay in milli seconds";
                    }
    
                    container bfd {
                      description
                        "BFD configuration";
                      leaf detection-multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detection multiplier for BFD sessions created
    by PIM";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "3..30000";
                        }
                        units "millisecond";
                        description
                          "Hello interval for BFD sessions created by PIM";
                      }
    
                      leaf enable {
                        type boolean;
                        description
                          "TRUE to enable BFD. FALSE to disable and to
    prevent inheritance from a parent";
                      }
                    }  // container bfd
    
                    leaf dr-priority {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Hello DR priority, preference given to larger
    value";
                    }
    
                    leaf join-prune-mtu {
                      type uint32 {
                        range "576..65535";
                      }
                      units "byte";
                      description
                        "Join-Prune MTU in Bytes";
                    }
    
                    leaf interface-enable {
                      type boolean;
                      description
                        "Enable PIM processing on the interface";
                    }
    
                    leaf jp-interval {
                      type uint32 {
                        range "10..600";
                      }
                      units "second";
                      description
                        "Join-Prune interval in seconds";
                    }
    
                    leaf override-interval {
                      type uint32 {
                        range "400..65535";
                      }
                      units "millisecond";
                      description
                        "Override interval in milliseconds";
                    }
                  }  // list interface
                }  // container interfaces
    
                leaf auto-rp-disable {
                  type empty;
                  description
                    "Disable Rendezvous Point discovery through the
    AutoRP protocol";
                }
              }  // container ipv4
    
              container ipv6 {
                description "IPV6 commands";
                leaf neighbor-check-on-receive {
                  type empty;
                  description
                    "Enable PIM neighbor checking when receiving PIM
    messages";
                }
    
                leaf old-register-checksum {
                  type empty;
                  description
                    "Generate registers compatible with older IOS
    versions";
                }
    
                container sparse-mode-rp-addresses {
                  description
                    "Configure Sparse-Mode Rendezvous Point";
                  list sparse-mode-rp-address {
                    key "rp-address";
                    description
                      "Address of the Rendezvous Point";
                    leaf rp-address {
                      type inet:ip-address-no-zone;
                      description
                        "RP address of Rendezvous Point";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access list of groups that should map to a
    given RP";
                    }
    
                    leaf auto-rp-override {
                      type boolean;
                      description
                        "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                    }
                  }  // list sparse-mode-rp-address
                }  // container sparse-mode-rp-addresses
    
                leaf neighbor-filter {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list of neighbors to be filtered";
                }
    
                container inheritable-defaults {
                  description
                    "Inheritable defaults";
                  leaf convergence-timeout {
                    type uint32 {
                      range "1800..2400";
                    }
                    units "second";
                    description
                      "Convergency timeout in seconds";
                  }
    
                  leaf hello-interval {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    description
                      "Hello interval in seconds";
                  }
    
                  leaf sticky-dr {
                    type boolean;
                    description
                      "Enables interface sticky-dr feature";
                  }
    
                  leaf propagation-delay {
                    type uint32 {
                      range "100..32767";
                    }
                    units "millisecond";
                    description
                      "Propagation delay in milli seconds";
                  }
    
                  leaf dr-priority {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Hello DR priority, preference given to larger
    value";
                  }
    
                  leaf join-prune-mtu {
                    type uint32 {
                      range "576..65535";
                    }
                    units "byte";
                    description
                      "Join-Prune MTU in Bytes";
                  }
    
                  leaf jp-interval {
                    type uint32 {
                      range "10..600";
                    }
                    units "second";
                    description
                      "Join-Prune interval in seconds";
                  }
    
                  leaf override-interval {
                    type uint32 {
                      range "400..65535";
                    }
                    units "millisecond";
                    description
                      "Override interval in milliseconds";
                  }
                }  // container inheritable-defaults
    
                leaf spt-threshold-infinity {
                  type string;
                  description
                    "Configure threshold of infinity for switching to
    SPT on last-hop";
                }
    
                leaf log-neighbor-changes {
                  type empty;
                  description
                    "PIM neighbor state change logging is turned on
    if configured";
                }
    
                container rpf {
                  description
                    "Configure RPF options";
                  leaf route-policy {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Route policy to select RPF topology";
                  }
                }  // container rpf
    
                leaf register-source {
                  type xr:Interface-name;
                  description
                    "Source address to use for register messages";
                }
    
                container maximum {
                  description
                    "Configure PIM State Limits";
                  container group-mappings-auto-rp {
                    presence
                      "Indicates a group-mappings-auto-rp node is configured.";
                    description
                      "Override default maximum for number of group
    mappings from autorp mapping agent";
                    leaf maximum-group-ranges-auto-rp {
                      type uint32 {
                        range "1..10000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM group mappings from
    autorp";
                    }
    
                    leaf threshold-group-ranges-auto-rp {
                      type uint32 {
                        range "1..10000";
                      }
                      default "450";
                      description
                        "Warning threshold number of PIM group mappings
    from autorp";
                    }
                  }  // container group-mappings-auto-rp
    
                  container bsr-group-mappings {
                    presence
                      "Indicates a bsr-group-mappings node is configured.";
                    description
                      "Override default maximum and threshold for
    number of group mappings from BSR";
                    leaf bsr-maximum-group-ranges {
                      type uint32 {
                        range "1..10000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM group mappings from BSR";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..10000";
                      }
                      default "500";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container bsr-group-mappings
    
                  container register-states {
                    presence
                      "Indicates a register-states node is configured.";
                    description
                      "Override default maximum for number of
    sparse-mode source registers";
                    leaf maximum-register-states {
                      type uint32 {
                        range "0..75000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM Sparse-Mode register
    states";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "0..75000";
                      }
                      default "20000";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container register-states
    
                  container route-interfaces {
                    presence
                      "Indicates a route-interfaces node is configured.";
                    description
                      "Override default maximum for number of
    route-interfaces";
                    leaf maximum-route-interfaces {
                      type uint32 {
                        range "1..1100000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM route-interfaces";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..1100000";
                      }
                      default "300000";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container route-interfaces
    
                  container bsr-candidate-rp-cache {
                    presence
                      "Indicates a bsr-candidate-rp-cache node is configured.";
                    description
                      "Override default maximum and threshold for BSR
    C-RP cache setting";
                    leaf bsr-maximum-candidate-rp-cache {
                      type uint32 {
                        range "1..10000";
                      }
                      mandatory true;
                      description
                        "Maximum number of BSR C-RP cache setting";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..10000";
                      }
                      default "100";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container bsr-candidate-rp-cache
    
                  container routes {
                    presence
                      "Indicates a routes node is configured.";
                    description
                      "Override default maximum for number of routes";
                    leaf maximum-routes {
                      type uint32 {
                        range "1..200000";
                      }
                      mandatory true;
                      description
                        "Maximum number of PIM routes";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..200000";
                      }
                      default "100000";
                      description
                        "Set threshold to print warning";
                    }
                  }  // container routes
                }  // container maximum
    
                leaf accept-register {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list which specifies unauthorized sources";
                }
    
                container sg-expiry-timer {
                  description
                    "Configure expiry timer for S,G routes";
                  leaf interval {
                    type uint32 {
                      range "40..57600";
                    }
                    units "second";
                    description
                      "(S,G) expiry time in seconds";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list of applicable S,G routes";
                  }
                }  // container sg-expiry-timer
    
                container rpf-vector-enable {
                  presence
                    "Indicates a rpf-vector-enable node is configured.";
                  description
                    "Enable PIM RPF Vector Proxy's";
                  leaf enable {
                    type empty;
                    mandatory true;
                    description
                      "RPF Vector is turned on if configured";
                  }
    
                  leaf allow-ebgp {
                    type empty;
                    description
                      "Allow RPF Vector origination over eBGP sessions";
                  }
    
                  leaf disable-ibgp {
                    type empty;
                    description
                      "Disable RPF Vector origination over iBGP
    sessions";
                  }
    
                  leaf use-standard-encoding {
                    type empty;
                    description
                      "Use RPF Vector RFC compliant encoding";
                  }
                }  // container rpf-vector-enable
    
                leaf embedded-rp-disable {
                  type empty;
                  description
                    "Set Embedded RP processing support";
                }
    
                leaf suppress-rpf-prunes {
                  type empty;
                  description
                    "Suppress prunes triggered as a result of RPF
    changes";
                }
    
                container ssm {
                  presence
                    "Contains mandatory nodes that used to set default values";
                  description
                    "Configure IP Multicast SSM";
                  leaf disable {
                    type boolean;
                    mandatory true;
                    description
                      "TRUE if SSM is disabled on this router";
                  }
    
                  leaf range {
                    type string {
                      length "1..64";
                    }
                    description
                      "Access list of groups enabled with SSM";
                  }
                }  // container ssm
    
                container bidir-rp-addresses {
                  description
                    "Configure Bidirectional PIM Rendezvous Point";
                  list bidir-rp-address {
                    key "rp-address";
                    description
                      "Address of the Rendezvous Point";
                    leaf rp-address {
                      type inet:ip-address-no-zone;
                      description
                        "RP address of Rendezvous Point";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access list of groups that should map to a
    given RP";
                    }
    
                    leaf auto-rp-override {
                      type boolean;
                      description
                        "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                    }
                  }  // list bidir-rp-address
                }  // container bidir-rp-addresses
    
                leaf ssm-allow-override {
                  type empty;
                  description
                    "Allow SSM ranges to be overridden by more
    specific ranges";
                }
    
                leaf multipath {
                  type Pim-multipath;
                  description
                    "Enable equal-cost multipath routing";
                }
    
                container bsr {
                  description
                    "PIM BSR configuration";
                  container candidate-bsr {
                    presence
                      "Indicates a candidate-bsr node is configured.";
                    description
                      "PIM Candidate BSR configuration";
                    leaf address {
                      type inet:ipv6-address-no-zone;
                      mandatory true;
                      description
                        "BSR Address configured";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv6-prefix-length;
                      mandatory true;
                      description
                        "Hash Mask Length for this candidate BSR";
                    }
    
                    leaf priority {
                      type Pim-bsr-priority;
                      mandatory true;
                      description
                        "Priority of the Candidate BSR";
                    }
                  }  // container candidate-bsr
    
                  container candidate-rps {
                    description
                      "PIM RP configuration";
                    list candidate-rp {
                      key "address mode";
                      description
                        "Address of PIM SM BSR Candidate-RP";
                      leaf address {
                        type inet:ip-address-no-zone;
                        description
                          "Address of Candidate-RP";
                      }
    
                      leaf mode {
                        type Pim-protocol-mode;
                        description
                          "SM or Bidir";
                      }
    
                      leaf group-list {
                        type string {
                          length "1..64";
                        }
                        description
                          "Access-list specifying the group range for the
    Candidate-RP";
                      }
    
                      leaf priority {
                        type Pim-bsr-priority;
                        mandatory true;
                        description
                          "Priority of the CRP";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "30..600";
                        }
                        mandatory true;
                        description
                          "Advertisement interval";
                      }
                    }  // list candidate-rp
                  }  // container candidate-rps
                }  // container bsr
    
                leaf rp-static-deny {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Configure static RP deny range";
                }
    
                container allow-rp {
                  presence "enable allow-rp";
                  description
                    "Enable allow-rp filtering for SM joins";
                  leaf rp-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list specifiying applicable RPs";
                  }
    
                  leaf group-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list specifiying applicable groups";
                  }
                }  // container allow-rp
    
                leaf suppress-data-registers {
                  type empty;
                  description
                    "Suppress data registers after initial state
    setup";
                }
    
                leaf neighbor-check-on-send {
                  type empty;
                  description
                    "Enable PIM neighbor checking when sending
    join-prunes";
                }
    
                container embedded-rp-addresses {
                  description
                    "Set Embedded RP processing support";
                  list embedded-rp-address {
                    key "rp-address";
                    description
                      "Set Embedded RP processing support";
                    leaf rp-address {
                      type inet:ip-address-no-zone;
                      description
                        "RP address of the Rendezvous Point";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      mandatory true;
                      description
                        "Access list of groups that should map to a
    given RP";
                    }
                  }  // list embedded-rp-address
                }  // container embedded-rp-addresses
    
                container convergence {
                  description
                    "Configure convergence parameters";
                  leaf rpf-conflict-join-delay {
                    type uint32 {
                      range "0..15";
                    }
                    units "second";
                    description
                      "Dampen first join if RPF path is through one of
    the downstream neighbor";
                  }
    
                  leaf link-down-prune-delay {
                    type uint32 {
                      range "0..60";
                    }
                    units "second";
                    description
                      "Delay prunes if route join state transitions to
    not-joined on link down";
                  }
                }  // container convergence
    
                container interfaces {
                  description
                    "Interface-level Configuration";
                  list interface {
                    key "interface-name";
                    description
                      "The name of the interface";
                    leaf enable {
                      type empty;
                      description
                        "Enter PIM Interface processing";
                    }
    
                    leaf interface-name {
                      type xr:Interface-name;
                      description
                        "The name of interface";
                    }
    
                    leaf neighbor-filter {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access-list of neighbors to be filtered";
                    }
    
                    leaf hello-interval {
                      type uint32 {
                        range "1..3600";
                      }
                      units "second";
                      description
                        "Hello interval in seconds";
                    }
    
                    leaf sticky-dr {
                      type boolean;
                      description
                        "Enables interface sticky-dr feature";
                    }
    
                    leaf bsr-border {
                      type boolean;
                      description
                        "BSR Border configuration for Interface";
                    }
    
                    container maximum-routes {
                      presence
                        "Indicates a maximum-routes node is configured.";
                      description
                        "Maximum number of allowed routes for this
    interface";
                      leaf maximum {
                        type uint32 {
                          range "1..1100000";
                        }
                        mandatory true;
                        description
                          "Maximum number of routes for this interface";
                      }
    
                      leaf warning-threshold {
                        type uint32 {
                          range "1..1100000";
                        }
                        description
                          "Set threshold to print warning";
                      }
    
                      leaf access-list-name {
                        type xr:Cisco-ios-xr-string {
                          length "1..64";
                        }
                        description
                          "Access-list to account for";
                      }
                    }  // container maximum-routes
    
                    leaf propagation-delay {
                      type uint32 {
                        range "100..32767";
                      }
                      units "millisecond";
                      description
                        "Propagation delay in milli seconds";
                    }
    
                    container bfd {
                      description
                        "BFD configuration";
                      leaf detection-multiplier {
                        type uint32 {
                          range "2..50";
                        }
                        description
                          "Detection multiplier for BFD sessions created
    by PIM";
                      }
    
                      leaf interval {
                        type uint32 {
                          range "3..30000";
                        }
                        units "millisecond";
                        description
                          "Hello interval for BFD sessions created by PIM";
                      }
    
                      leaf enable {
                        type boolean;
                        description
                          "TRUE to enable BFD. FALSE to disable and to
    prevent inheritance from a parent";
                      }
                    }  // container bfd
    
                    leaf dr-priority {
                      type uint32 {
                        range "0..4294967295";
                      }
                      description
                        "Hello DR priority, preference given to larger
    value";
                    }
    
                    leaf join-prune-mtu {
                      type uint32 {
                        range "576..65535";
                      }
                      units "byte";
                      description
                        "Join-Prune MTU in Bytes";
                    }
    
                    leaf interface-enable {
                      type boolean;
                      description
                        "Enable PIM processing on the interface";
                    }
    
                    leaf jp-interval {
                      type uint32 {
                        range "10..600";
                      }
                      units "second";
                      description
                        "Join-Prune interval in seconds";
                    }
    
                    leaf override-interval {
                      type uint32 {
                        range "400..65535";
                      }
                      units "millisecond";
                      description
                        "Override interval in milliseconds";
                    }
                  }  // list interface
                }  // container interfaces
              }  // container ipv6
    
              leaf vrf-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description "VRF name";
              }
            }  // list vrf
          }  // container vrfs
    
          container default-context {
            description "Default Context";
            container ipv6 {
              description "IPV6 commands";
              container interfaces {
                description
                  "Interface-level Configuration";
                list interface {
                  key "interface-name";
                  description
                    "The name of the interface";
                  leaf enable {
                    type empty;
                    description
                      "Enter PIM Interface processing";
                  }
    
                  leaf interface-name {
                    type xr:Interface-name;
                    description
                      "The name of interface";
                  }
    
                  leaf neighbor-filter {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list of neighbors to be filtered";
                  }
    
                  leaf hello-interval {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    description
                      "Hello interval in seconds";
                  }
    
                  leaf sticky-dr {
                    type boolean;
                    description
                      "Enables interface sticky-dr feature";
                  }
    
                  leaf bsr-border {
                    type boolean;
                    description
                      "BSR Border configuration for Interface";
                  }
    
                  container maximum-routes {
                    presence
                      "Indicates a maximum-routes node is configured.";
                    description
                      "Maximum number of allowed routes for this
    interface";
                    leaf maximum {
                      type uint32 {
                        range "1..1100000";
                      }
                      mandatory true;
                      description
                        "Maximum number of routes for this interface";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..1100000";
                      }
                      description
                        "Set threshold to print warning";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access-list to account for";
                    }
                  }  // container maximum-routes
    
                  leaf propagation-delay {
                    type uint32 {
                      range "100..32767";
                    }
                    units "millisecond";
                    description
                      "Propagation delay in milli seconds";
                  }
    
                  container bfd {
                    description
                      "BFD configuration";
                    leaf detection-multiplier {
                      type uint32 {
                        range "2..50";
                      }
                      description
                        "Detection multiplier for BFD sessions created
    by PIM";
                    }
    
                    leaf interval {
                      type uint32 {
                        range "3..30000";
                      }
                      units "millisecond";
                      description
                        "Hello interval for BFD sessions created by PIM";
                    }
    
                    leaf enable {
                      type boolean;
                      description
                        "TRUE to enable BFD. FALSE to disable and to
    prevent inheritance from a parent";
                    }
                  }  // container bfd
    
                  leaf dr-priority {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Hello DR priority, preference given to larger
    value";
                  }
    
                  leaf join-prune-mtu {
                    type uint32 {
                      range "576..65535";
                    }
                    units "byte";
                    description
                      "Join-Prune MTU in Bytes";
                  }
    
                  leaf interface-enable {
                    type boolean;
                    description
                      "Enable PIM processing on the interface";
                  }
    
                  leaf jp-interval {
                    type uint32 {
                      range "10..600";
                    }
                    units "second";
                    description
                      "Join-Prune interval in seconds";
                  }
    
                  leaf override-interval {
                    type uint32 {
                      range "400..65535";
                    }
                    units "millisecond";
                    description
                      "Override interval in milliseconds";
                  }
                }  // list interface
              }  // container interfaces
    
              leaf neighbor-check-on-receive {
                type empty;
                description
                  "Enable PIM neighbor checking when receiving PIM
    messages";
              }
    
              leaf old-register-checksum {
                type empty;
                description
                  "Generate registers compatible with older IOS
    versions";
              }
    
              container sparse-mode-rp-addresses {
                description
                  "Configure Sparse-Mode Rendezvous Point";
                list sparse-mode-rp-address {
                  key "rp-address";
                  description
                    "Address of the Rendezvous Point";
                  leaf rp-address {
                    type inet:ip-address-no-zone;
                    description
                      "RP address of Rendezvous Point";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access list of groups that should map to a
    given RP";
                  }
    
                  leaf auto-rp-override {
                    type boolean;
                    description
                      "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                  }
                }  // list sparse-mode-rp-address
              }  // container sparse-mode-rp-addresses
    
              leaf neighbor-filter {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Access-list of neighbors to be filtered";
              }
    
              container inheritable-defaults {
                description
                  "Inheritable defaults";
                leaf convergence-timeout {
                  type uint32 {
                    range "1800..2400";
                  }
                  units "second";
                  description
                    "Convergency timeout in seconds";
                }
    
                leaf hello-interval {
                  type uint32 {
                    range "1..3600";
                  }
                  units "second";
                  description
                    "Hello interval in seconds";
                }
    
                leaf sticky-dr {
                  type boolean;
                  description
                    "Enables interface sticky-dr feature";
                }
    
                leaf propagation-delay {
                  type uint32 {
                    range "100..32767";
                  }
                  units "millisecond";
                  description
                    "Propagation delay in milli seconds";
                }
    
                leaf dr-priority {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description
                    "Hello DR priority, preference given to larger
    value";
                }
    
                leaf join-prune-mtu {
                  type uint32 {
                    range "576..65535";
                  }
                  units "byte";
                  description
                    "Join-Prune MTU in Bytes";
                }
    
                leaf jp-interval {
                  type uint32 {
                    range "10..600";
                  }
                  units "second";
                  description
                    "Join-Prune interval in seconds";
                }
    
                leaf override-interval {
                  type uint32 {
                    range "400..65535";
                  }
                  units "millisecond";
                  description
                    "Override interval in milliseconds";
                }
              }  // container inheritable-defaults
    
              leaf spt-threshold-infinity {
                type string;
                description
                  "Configure threshold of infinity for switching to
    SPT on last-hop";
              }
    
              leaf log-neighbor-changes {
                type empty;
                description
                  "PIM neighbor state change logging is turned on
    if configured";
              }
    
              container rpf {
                description
                  "Configure RPF options";
                leaf route-policy {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Route policy to select RPF topology";
                }
              }  // container rpf
    
              leaf register-source {
                type xr:Interface-name;
                description
                  "Source address to use for register messages";
              }
    
              leaf accept-register {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Access-list which specifies unauthorized sources";
              }
    
              container sg-expiry-timer {
                description
                  "Configure expiry timer for S,G routes";
                leaf interval {
                  type uint32 {
                    range "40..57600";
                  }
                  units "second";
                  description
                    "(S,G) expiry time in seconds";
                }
    
                leaf access-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list of applicable S,G routes";
                }
              }  // container sg-expiry-timer
    
              container rpf-vector-enable {
                presence
                  "Indicates a rpf-vector-enable node is configured.";
                description
                  "Enable PIM RPF Vector Proxy's";
                leaf enable {
                  type empty;
                  mandatory true;
                  description
                    "RPF Vector is turned on if configured";
                }
    
                leaf allow-ebgp {
                  type empty;
                  description
                    "Allow RPF Vector origination over eBGP sessions";
                }
    
                leaf disable-ibgp {
                  type empty;
                  description
                    "Disable RPF Vector origination over iBGP
    sessions";
                }
    
                leaf use-standard-encoding {
                  type empty;
                  description
                    "Use RPF Vector RFC compliant encoding";
                }
              }  // container rpf-vector-enable
    
              container nsf {
                description
                  "Configure Non-stop forwarding (NSF) options";
                leaf lifetime {
                  type uint32 {
                    range "10..600";
                  }
                  units "second";
                  description
                    "Override default maximum lifetime for PIM NSF
    mode";
                }
              }  // container nsf
    
              leaf embedded-rp-disable {
                type empty;
                description
                  "Set Embedded RP processing support";
              }
    
              leaf suppress-rpf-prunes {
                type empty;
                description
                  "Suppress prunes triggered as a result of RPF
    changes";
              }
    
              container maximum {
                description
                  "Configure PIM State Limits";
                container bsr-global-group-mappings {
                  presence
                    "Indicates a bsr-global-group-mappings node is configured.";
                  description
                    "Override default global maximum and threshold
    for PIM group mapping ranges from BSR";
                  leaf bsr-maximum-global-group-mappings {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Global Maximum number of PIM group mapping
    ranges from BSR";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "500";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-global-group-mappings
    
                container global-routes {
                  presence
                    "Indicates a global-routes node is configured.";
                  description
                    "Override default maximum for number of routes";
                  leaf maximum-routes {
                    type uint32 {
                      range "1..200000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM routes";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..200000";
                    }
                    default "100000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container global-routes
    
                container global-group-mappings-auto-rp {
                  presence
                    "Indicates a global-group-mappings-auto-rp node is configured.";
                  description
                    "Maximum for number of group mappings from
    autorp mapping agent";
                  leaf maximum-global-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM group mappings from
    autorp";
                  }
    
                  leaf threshold-global-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    default "450";
                    description
                      "Warning threshold number of PIM group mappings
    from autorp";
                  }
                }  // container global-group-mappings-auto-rp
    
                container bsr-global-candidate-rp-cache {
                  presence
                    "Indicates a bsr-global-candidate-rp-cache node is configured.";
                  description
                    "Override default global maximum and threshold
    for C-RP set in BSR";
                  leaf bsr-maximum-global-candidate-rp-cache {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Global Maximum number of PIM C-RP Sets from
    BSR";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "100";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-global-candidate-rp-cache
    
                container global-register-states {
                  presence
                    "Indicates a global-register-states node is configured.";
                  description
                    "Override default maximum for number of
    sparse-mode source registers";
                  leaf maximum-register-states {
                    type uint32 {
                      range "0..75000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM Sparse-Mode register
    states";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "0..75000";
                    }
                    default "20000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container global-register-states
    
                container global-route-interfaces {
                  presence
                    "Indicates a global-route-interfaces node is configured.";
                  description
                    "Override default maximum for number of
    route-interfaces";
                  leaf maximum-route-interfaces {
                    type uint32 {
                      range "1..1100000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM route-interfaces";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..1100000";
                    }
                    default "300000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container global-route-interfaces
    
                leaf global-low-priority-packet-queue {
                  type uint32 {
                    range "0..2147483648";
                  }
                  units "byte";
                  description
                    "Maximum packet queue size in bytes";
                }
    
                leaf global-high-priority-packet-queue {
                  type uint32 {
                    range "0..2147483648";
                  }
                  units "byte";
                  description
                    "Maximum packet queue size in bytes";
                }
    
                container group-mappings-auto-rp {
                  presence
                    "Indicates a group-mappings-auto-rp node is configured.";
                  description
                    "Override default maximum for number of group
    mappings from autorp mapping agent";
                  leaf maximum-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM group mappings from
    autorp";
                  }
    
                  leaf threshold-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    default "450";
                    description
                      "Warning threshold number of PIM group mappings
    from autorp";
                  }
                }  // container group-mappings-auto-rp
    
                container bsr-group-mappings {
                  presence
                    "Indicates a bsr-group-mappings node is configured.";
                  description
                    "Override default maximum and threshold for
    number of group mappings from BSR";
                  leaf bsr-maximum-group-ranges {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM group mappings from BSR";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "500";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-group-mappings
    
                container register-states {
                  presence
                    "Indicates a register-states node is configured.";
                  description
                    "Override default maximum for number of
    sparse-mode source registers";
                  leaf maximum-register-states {
                    type uint32 {
                      range "0..75000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM Sparse-Mode register
    states";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "0..75000";
                    }
                    default "20000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container register-states
    
                container route-interfaces {
                  presence
                    "Indicates a route-interfaces node is configured.";
                  description
                    "Override default maximum for number of
    route-interfaces";
                  leaf maximum-route-interfaces {
                    type uint32 {
                      range "1..1100000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM route-interfaces";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..1100000";
                    }
                    default "300000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container route-interfaces
    
                container bsr-candidate-rp-cache {
                  presence
                    "Indicates a bsr-candidate-rp-cache node is configured.";
                  description
                    "Override default maximum and threshold for BSR
    C-RP cache setting";
                  leaf bsr-maximum-candidate-rp-cache {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of BSR C-RP cache setting";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "100";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-candidate-rp-cache
    
                container routes {
                  presence
                    "Indicates a routes node is configured.";
                  description
                    "Override default maximum for number of routes";
                  leaf maximum-routes {
                    type uint32 {
                      range "1..200000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM routes";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..200000";
                    }
                    default "100000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container routes
              }  // container maximum
    
              container ssm {
                presence
                  "Contains mandatory nodes that used to set default values";
                description
                  "Configure IP Multicast SSM";
                leaf disable {
                  type boolean;
                  mandatory true;
                  description
                    "TRUE if SSM is disabled on this router";
                }
    
                leaf range {
                  type string {
                    length "1..64";
                  }
                  description
                    "Access list of groups enabled with SSM";
                }
              }  // container ssm
    
              container bidir-rp-addresses {
                description
                  "Configure Bidirectional PIM Rendezvous Point";
                list bidir-rp-address {
                  key "rp-address";
                  description
                    "Address of the Rendezvous Point";
                  leaf rp-address {
                    type inet:ip-address-no-zone;
                    description
                      "RP address of Rendezvous Point";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access list of groups that should map to a
    given RP";
                  }
    
                  leaf auto-rp-override {
                    type boolean;
                    description
                      "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                  }
                }  // list bidir-rp-address
              }  // container bidir-rp-addresses
    
              leaf ssm-allow-override {
                type empty;
                description
                  "Allow SSM ranges to be overridden by more
    specific ranges";
              }
    
              leaf multipath {
                type Pim-multipath;
                description
                  "Enable equal-cost multipath routing";
              }
    
              container bsr {
                description
                  "PIM BSR configuration";
                container candidate-bsr {
                  presence
                    "Indicates a candidate-bsr node is configured.";
                  description
                    "PIM Candidate BSR configuration";
                  leaf address {
                    type inet:ipv6-address-no-zone;
                    mandatory true;
                    description
                      "BSR Address configured";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv6-prefix-length;
                    mandatory true;
                    description
                      "Hash Mask Length for this candidate BSR";
                  }
    
                  leaf priority {
                    type Pim-bsr-priority;
                    mandatory true;
                    description
                      "Priority of the Candidate BSR";
                  }
                }  // container candidate-bsr
    
                container candidate-rps {
                  description
                    "PIM RP configuration";
                  list candidate-rp {
                    key "address mode";
                    description
                      "Address of PIM SM BSR Candidate-RP";
                    leaf address {
                      type inet:ip-address-no-zone;
                      description
                        "Address of Candidate-RP";
                    }
    
                    leaf mode {
                      type Pim-protocol-mode;
                      description "SM or Bidir";
                    }
    
                    leaf group-list {
                      type string {
                        length "1..64";
                      }
                      description
                        "Access-list specifying the group range for the
    Candidate-RP";
                    }
    
                    leaf priority {
                      type Pim-bsr-priority;
                      mandatory true;
                      description
                        "Priority of the CRP";
                    }
    
                    leaf interval {
                      type uint32 {
                        range "30..600";
                      }
                      mandatory true;
                      description
                        "Advertisement interval";
                    }
                  }  // list candidate-rp
                }  // container candidate-rps
              }  // container bsr
    
              leaf rp-static-deny {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Configure static RP deny range";
              }
    
              container allow-rp {
                presence "enable allow-rp";
                description
                  "Enable allow-rp filtering for SM joins";
                leaf rp-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list specifiying applicable RPs";
                }
    
                leaf group-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list specifiying applicable groups";
                }
              }  // container allow-rp
    
              leaf suppress-data-registers {
                type empty;
                description
                  "Suppress data registers after initial state
    setup";
              }
    
              leaf neighbor-check-on-send {
                type empty;
                description
                  "Enable PIM neighbor checking when sending
    join-prunes";
              }
    
              container embedded-rp-addresses {
                description
                  "Set Embedded RP processing support";
                list embedded-rp-address {
                  key "rp-address";
                  description
                    "Set Embedded RP processing support";
                  leaf rp-address {
                    type inet:ip-address-no-zone;
                    description
                      "RP address of the Rendezvous Point";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    mandatory true;
                    description
                      "Access list of groups that should map to a
    given RP";
                  }
                }  // list embedded-rp-address
              }  // container embedded-rp-addresses
    
              container convergence {
                description
                  "Configure convergence parameters";
                leaf rpf-conflict-join-delay {
                  type uint32 {
                    range "0..15";
                  }
                  units "second";
                  description
                    "Dampen first join if RPF path is through one of
    the downstream neighbor";
                }
    
                leaf link-down-prune-delay {
                  type uint32 {
                    range "0..60";
                  }
                  units "second";
                  description
                    "Delay prunes if route join state transitions to
    not-joined on link down";
                }
              }  // container convergence
            }  // container ipv6
    
            container ipv4 {
              description "IPV4 commands";
              container rpf-redirect {
                description
                  "Configure RPF-redirect feature";
                leaf route-policy {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Route policy to select RPF topology";
                }
              }  // container rpf-redirect
    
              container interfaces {
                description
                  "Interface-level Configuration";
                list interface {
                  key "interface-name";
                  description
                    "The name of the interface";
                  container redirect-bundle {
                    description
                      "Configure RPF-redirect bundle for interface.
                     Applicable for IPv4 only";
                    leaf bundle-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..32";
                      }
                      description "Bundle name";
                    }
    
                    leaf interface-bandwidth {
                      type uint32 {
                        range "0..100000000";
                      }
                      units "kbit/s";
                      must
                        "../bundle-name and ../threshold-bandwidth";
                      description
                        "Interface bandwidth in Kbps";
                    }
    
                    leaf threshold-bandwidth {
                      type uint32 {
                        range "0..100000000";
                      }
                      units "kbit/s";
                      must
                        "../bundle-name and ../interface-bandwidth";
                      description
                        "Threshold bandwidth in Kbps";
                    }
                  }  // container redirect-bundle
    
                  leaf enable {
                    type empty;
                    description
                      "Enter PIM Interface processing";
                  }
    
                  leaf interface-name {
                    type xr:Interface-name;
                    description
                      "The name of interface";
                  }
    
                  leaf neighbor-filter {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access-list of neighbors to be filtered";
                  }
    
                  leaf hello-interval {
                    type uint32 {
                      range "1..3600";
                    }
                    units "second";
                    description
                      "Hello interval in seconds";
                  }
    
                  leaf sticky-dr {
                    type boolean;
                    description
                      "Enables interface sticky-dr feature";
                  }
    
                  leaf bsr-border {
                    type boolean;
                    description
                      "BSR Border configuration for Interface";
                  }
    
                  container maximum-routes {
                    presence
                      "Indicates a maximum-routes node is configured.";
                    description
                      "Maximum number of allowed routes for this
    interface";
                    leaf maximum {
                      type uint32 {
                        range "1..1100000";
                      }
                      mandatory true;
                      description
                        "Maximum number of routes for this interface";
                    }
    
                    leaf warning-threshold {
                      type uint32 {
                        range "1..1100000";
                      }
                      description
                        "Set threshold to print warning";
                    }
    
                    leaf access-list-name {
                      type xr:Cisco-ios-xr-string {
                        length "1..64";
                      }
                      description
                        "Access-list to account for";
                    }
                  }  // container maximum-routes
    
                  leaf propagation-delay {
                    type uint32 {
                      range "100..32767";
                    }
                    units "millisecond";
                    description
                      "Propagation delay in milli seconds";
                  }
    
                  container bfd {
                    description
                      "BFD configuration";
                    leaf detection-multiplier {
                      type uint32 {
                        range "2..50";
                      }
                      description
                        "Detection multiplier for BFD sessions created
    by PIM";
                    }
    
                    leaf interval {
                      type uint32 {
                        range "3..30000";
                      }
                      units "millisecond";
                      description
                        "Hello interval for BFD sessions created by PIM";
                    }
    
                    leaf enable {
                      type boolean;
                      description
                        "TRUE to enable BFD. FALSE to disable and to
    prevent inheritance from a parent";
                    }
                  }  // container bfd
    
                  leaf dr-priority {
                    type uint32 {
                      range "0..4294967295";
                    }
                    description
                      "Hello DR priority, preference given to larger
    value";
                  }
    
                  leaf join-prune-mtu {
                    type uint32 {
                      range "576..65535";
                    }
                    units "byte";
                    description
                      "Join-Prune MTU in Bytes";
                  }
    
                  leaf interface-enable {
                    type boolean;
                    description
                      "Enable PIM processing on the interface";
                  }
    
                  leaf jp-interval {
                    type uint32 {
                      range "10..600";
                    }
                    units "second";
                    description
                      "Join-Prune interval in seconds";
                  }
    
                  leaf override-interval {
                    type uint32 {
                      range "400..65535";
                    }
                    units "millisecond";
                    description
                      "Override interval in milliseconds";
                  }
                }  // list interface
              }  // container interfaces
    
              container auto-rp-candidate-rps {
                description
                  "Configure Candidate-RPs";
                list auto-rp-candidate-rp {
                  key "interface-name protocol-mode";
                  description
                    "Specifications for a Candidate-RP";
                  leaf interface-name {
                    type xr:Interface-name;
                    description
                      "Interface from which Candidate-RP packets
                     will be sourced";
                  }
    
                  leaf protocol-mode {
                    type dt1:Auto-rp-protocol-mode;
                    description "Protocol Mode";
                  }
    
                  leaf ttl {
                    type Auto-rp-ttl;
                    mandatory true;
                    description "TTL in Hops";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    mandatory true;
                    description
                      "Access-list specifying the group range for
                     the Candidate-RP";
                  }
    
                  leaf announce-period {
                    type Auto-rp-announce-period;
                    units "second";
                    mandatory true;
                    description
                      "Time between announcements <in seconds> ";
                  }
                }  // list auto-rp-candidate-rp
              }  // container auto-rp-candidate-rps
    
              container auto-rp-mapping-agent {
                description
                  "Configure AutoRP Mapping Agent";
                container parameters {
                  presence
                    "Indicates a parameters node is configured.";
                  description
                    "Specifications for Mapping Agent configured
                   on this box";
                  leaf interface-name {
                    type xr:Interface-name;
                    mandatory true;
                    description
                      "Interface from which mapping packets will be
                     sourced ";
                  }
    
                  leaf ttl {
                    type Auto-rp-ttl;
                    mandatory true;
                    description "TTL in Hops";
                  }
    
                  leaf announce-period {
                    type Auto-rp-announce-period;
                    units "second";
                    mandatory true;
                    description
                      "Time between discovery messages <in seconds>";
                  }
                }  // container parameters
    
                container cache-limit {
                  presence
                    "Indicates a cache-limit node is configured.";
                  description
                    "Mapping Agent cache size limit";
                  leaf maximum-cache-entry {
                    type uint32 {
                      range "1..1000";
                    }
                    mandatory true;
                    description
                      "Maximum number of mapping cache entries";
                  }
    
                  leaf threshold-cache-entry {
                    type uint32 {
                      range "1..1000";
                    }
                    default "450";
                    description
                      "Warning threshold number of cache entries";
                  }
                }  // container cache-limit
              }  // container auto-rp-mapping-agent
    
              leaf neighbor-check-on-receive {
                type empty;
                description
                  "Enable PIM neighbor checking when receiving PIM
    messages";
              }
    
              leaf old-register-checksum {
                type empty;
                description
                  "Generate registers compatible with older IOS
    versions";
              }
    
              container sparse-mode-rp-addresses {
                description
                  "Configure Sparse-Mode Rendezvous Point";
                list sparse-mode-rp-address {
                  key "rp-address";
                  description
                    "Address of the Rendezvous Point";
                  leaf rp-address {
                    type inet:ip-address-no-zone;
                    description
                      "RP address of Rendezvous Point";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access list of groups that should map to a
    given RP";
                  }
    
                  leaf auto-rp-override {
                    type boolean;
                    description
                      "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                  }
                }  // list sparse-mode-rp-address
              }  // container sparse-mode-rp-addresses
    
              leaf neighbor-filter {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Access-list of neighbors to be filtered";
              }
    
              container inheritable-defaults {
                description
                  "Inheritable defaults";
                leaf convergence-timeout {
                  type uint32 {
                    range "1800..2400";
                  }
                  units "second";
                  description
                    "Convergency timeout in seconds";
                }
    
                leaf hello-interval {
                  type uint32 {
                    range "1..3600";
                  }
                  units "second";
                  description
                    "Hello interval in seconds";
                }
    
                leaf sticky-dr {
                  type boolean;
                  description
                    "Enables interface sticky-dr feature";
                }
    
                leaf propagation-delay {
                  type uint32 {
                    range "100..32767";
                  }
                  units "millisecond";
                  description
                    "Propagation delay in milli seconds";
                }
    
                leaf dr-priority {
                  type uint32 {
                    range "0..4294967295";
                  }
                  description
                    "Hello DR priority, preference given to larger
    value";
                }
    
                leaf join-prune-mtu {
                  type uint32 {
                    range "576..65535";
                  }
                  units "byte";
                  description
                    "Join-Prune MTU in Bytes";
                }
    
                leaf jp-interval {
                  type uint32 {
                    range "10..600";
                  }
                  units "second";
                  description
                    "Join-Prune interval in seconds";
                }
    
                leaf override-interval {
                  type uint32 {
                    range "400..65535";
                  }
                  units "millisecond";
                  description
                    "Override interval in milliseconds";
                }
              }  // container inheritable-defaults
    
              leaf spt-threshold-infinity {
                type string;
                description
                  "Configure threshold of infinity for switching to
    SPT on last-hop";
              }
    
              leaf log-neighbor-changes {
                type empty;
                description
                  "PIM neighbor state change logging is turned on
    if configured";
              }
    
              container rpf {
                description
                  "Configure RPF options";
                leaf route-policy {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Route policy to select RPF topology";
                }
              }  // container rpf
    
              leaf register-source {
                type xr:Interface-name;
                description
                  "Source address to use for register messages";
              }
    
              leaf accept-register {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Access-list which specifies unauthorized sources";
              }
    
              container sg-expiry-timer {
                description
                  "Configure expiry timer for S,G routes";
                leaf interval {
                  type uint32 {
                    range "40..57600";
                  }
                  units "second";
                  description
                    "(S,G) expiry time in seconds";
                }
    
                leaf access-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list of applicable S,G routes";
                }
              }  // container sg-expiry-timer
    
              container rpf-vector-enable {
                presence
                  "Indicates a rpf-vector-enable node is configured.";
                description
                  "Enable PIM RPF Vector Proxy's";
                leaf enable {
                  type empty;
                  mandatory true;
                  description
                    "RPF Vector is turned on if configured";
                }
    
                leaf allow-ebgp {
                  type empty;
                  description
                    "Allow RPF Vector origination over eBGP sessions";
                }
    
                leaf disable-ibgp {
                  type empty;
                  description
                    "Disable RPF Vector origination over iBGP
    sessions";
                }
    
                leaf use-standard-encoding {
                  type empty;
                  description
                    "Use RPF Vector RFC compliant encoding";
                }
              }  // container rpf-vector-enable
    
              container nsf {
                description
                  "Configure Non-stop forwarding (NSF) options";
                leaf lifetime {
                  type uint32 {
                    range "10..600";
                  }
                  units "second";
                  description
                    "Override default maximum lifetime for PIM NSF
    mode";
                }
              }  // container nsf
    
              leaf suppress-rpf-prunes {
                type empty;
                description
                  "Suppress prunes triggered as a result of RPF
    changes";
              }
    
              container maximum {
                description
                  "Configure PIM State Limits";
                container bsr-global-group-mappings {
                  presence
                    "Indicates a bsr-global-group-mappings node is configured.";
                  description
                    "Override default global maximum and threshold
    for PIM group mapping ranges from BSR";
                  leaf bsr-maximum-global-group-mappings {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Global Maximum number of PIM group mapping
    ranges from BSR";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "500";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-global-group-mappings
    
                container global-routes {
                  presence
                    "Indicates a global-routes node is configured.";
                  description
                    "Override default maximum for number of routes";
                  leaf maximum-routes {
                    type uint32 {
                      range "1..200000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM routes";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..200000";
                    }
                    default "100000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container global-routes
    
                container global-group-mappings-auto-rp {
                  presence
                    "Indicates a global-group-mappings-auto-rp node is configured.";
                  description
                    "Maximum for number of group mappings from
    autorp mapping agent";
                  leaf maximum-global-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM group mappings from
    autorp";
                  }
    
                  leaf threshold-global-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    default "450";
                    description
                      "Warning threshold number of PIM group mappings
    from autorp";
                  }
                }  // container global-group-mappings-auto-rp
    
                container bsr-global-candidate-rp-cache {
                  presence
                    "Indicates a bsr-global-candidate-rp-cache node is configured.";
                  description
                    "Override default global maximum and threshold
    for C-RP set in BSR";
                  leaf bsr-maximum-global-candidate-rp-cache {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Global Maximum number of PIM C-RP Sets from
    BSR";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "100";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-global-candidate-rp-cache
    
                container global-register-states {
                  presence
                    "Indicates a global-register-states node is configured.";
                  description
                    "Override default maximum for number of
    sparse-mode source registers";
                  leaf maximum-register-states {
                    type uint32 {
                      range "0..75000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM Sparse-Mode register
    states";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "0..75000";
                    }
                    default "20000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container global-register-states
    
                container global-route-interfaces {
                  presence
                    "Indicates a global-route-interfaces node is configured.";
                  description
                    "Override default maximum for number of
    route-interfaces";
                  leaf maximum-route-interfaces {
                    type uint32 {
                      range "1..1100000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM route-interfaces";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..1100000";
                    }
                    default "300000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container global-route-interfaces
    
                leaf global-low-priority-packet-queue {
                  type uint32 {
                    range "0..2147483648";
                  }
                  units "byte";
                  description
                    "Maximum packet queue size in bytes";
                }
    
                leaf global-high-priority-packet-queue {
                  type uint32 {
                    range "0..2147483648";
                  }
                  units "byte";
                  description
                    "Maximum packet queue size in bytes";
                }
    
                container group-mappings-auto-rp {
                  presence
                    "Indicates a group-mappings-auto-rp node is configured.";
                  description
                    "Override default maximum for number of group
    mappings from autorp mapping agent";
                  leaf maximum-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM group mappings from
    autorp";
                  }
    
                  leaf threshold-group-ranges-auto-rp {
                    type uint32 {
                      range "1..10000";
                    }
                    default "450";
                    description
                      "Warning threshold number of PIM group mappings
    from autorp";
                  }
                }  // container group-mappings-auto-rp
    
                container bsr-group-mappings {
                  presence
                    "Indicates a bsr-group-mappings node is configured.";
                  description
                    "Override default maximum and threshold for
    number of group mappings from BSR";
                  leaf bsr-maximum-group-ranges {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM group mappings from BSR";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "500";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-group-mappings
    
                container register-states {
                  presence
                    "Indicates a register-states node is configured.";
                  description
                    "Override default maximum for number of
    sparse-mode source registers";
                  leaf maximum-register-states {
                    type uint32 {
                      range "0..75000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM Sparse-Mode register
    states";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "0..75000";
                    }
                    default "20000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container register-states
    
                container route-interfaces {
                  presence
                    "Indicates a route-interfaces node is configured.";
                  description
                    "Override default maximum for number of
    route-interfaces";
                  leaf maximum-route-interfaces {
                    type uint32 {
                      range "1..1100000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM route-interfaces";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..1100000";
                    }
                    default "300000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container route-interfaces
    
                container bsr-candidate-rp-cache {
                  presence
                    "Indicates a bsr-candidate-rp-cache node is configured.";
                  description
                    "Override default maximum and threshold for BSR
    C-RP cache setting";
                  leaf bsr-maximum-candidate-rp-cache {
                    type uint32 {
                      range "1..10000";
                    }
                    mandatory true;
                    description
                      "Maximum number of BSR C-RP cache setting";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..10000";
                    }
                    default "100";
                    description
                      "Set threshold to print warning";
                  }
                }  // container bsr-candidate-rp-cache
    
                container routes {
                  presence
                    "Indicates a routes node is configured.";
                  description
                    "Override default maximum for number of routes";
                  leaf maximum-routes {
                    type uint32 {
                      range "1..200000";
                    }
                    mandatory true;
                    description
                      "Maximum number of PIM routes";
                  }
    
                  leaf warning-threshold {
                    type uint32 {
                      range "1..200000";
                    }
                    default "100000";
                    description
                      "Set threshold to print warning";
                  }
                }  // container routes
              }  // container maximum
    
              container ssm {
                presence
                  "Contains mandatory nodes that used to set default values";
                description
                  "Configure IP Multicast SSM";
                leaf disable {
                  type boolean;
                  mandatory true;
                  description
                    "TRUE if SSM is disabled on this router";
                }
    
                leaf range {
                  type string {
                    length "1..64";
                  }
                  description
                    "Access list of groups enabled with SSM";
                }
              }  // container ssm
    
              container injects {
                description
                  "Inject Explicit PIM RPF Vector Proxy's";
                list inject {
                  key "source-address prefix-length";
                  description
                    "Inject Explicit PIM RPF Vector Proxy's";
                  leaf source-address {
                    type inet:ipv4-address-no-zone;
                    description "Source Address";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv4-prefix-length;
                    description "Masklen";
                  }
    
                  leaf-list rpf-proxy-address {
                    type inet:ipv4-address-no-zone;
                    min-elements 1;
                    max-elements 22;
                    description
                      "RPF Proxy Address";
                  }
                }  // list inject
              }  // container injects
    
              container bidir-rp-addresses {
                description
                  "Configure Bidirectional PIM Rendezvous Point";
                list bidir-rp-address {
                  key "rp-address";
                  description
                    "Address of the Rendezvous Point";
                  leaf rp-address {
                    type inet:ip-address-no-zone;
                    description
                      "RP address of Rendezvous Point";
                  }
    
                  leaf access-list-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..64";
                    }
                    description
                      "Access list of groups that should map to a
    given RP";
                  }
    
                  leaf auto-rp-override {
                    type boolean;
                    description
                      "TRUE Indicates if static RP config overrides
    AutoRP and BSR";
                  }
                }  // list bidir-rp-address
              }  // container bidir-rp-addresses
    
              leaf ssm-allow-override {
                type empty;
                description
                  "Allow SSM ranges to be overridden by more
    specific ranges";
              }
    
              container bsr {
                description
                  "PIM BSR configuration";
                container candidate-bsr {
                  presence
                    "Indicates a candidate-bsr node is configured.";
                  description
                    "PIM Candidate BSR configuration";
                  leaf address {
                    type inet:ip-address-no-zone;
                    mandatory true;
                    description
                      "BSR Address configured";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv4-prefix-length;
                    mandatory true;
                    description
                      "Hash Mask Length for this candidate BSR";
                  }
    
                  leaf priority {
                    type Pim-bsr-priority;
                    mandatory true;
                    description
                      "Priority of the Candidate BSR";
                  }
                }  // container candidate-bsr
    
                container candidate-rps {
                  description
                    "PIM RP configuration";
                  list candidate-rp {
                    key "address mode";
                    description
                      "Address of PIM SM BSR Candidate-RP";
                    leaf address {
                      type inet:ip-address-no-zone;
                      description
                        "Address of Candidate-RP";
                    }
    
                    leaf mode {
                      type Pim-protocol-mode;
                      description "SM or Bidir";
                    }
    
                    leaf group-list {
                      type string {
                        length "1..64";
                      }
                      description
                        "Access-list specifying the group range for the
    Candidate-RP";
                    }
    
                    leaf priority {
                      type Pim-bsr-priority;
                      mandatory true;
                      description
                        "Priority of the CRP";
                    }
    
                    leaf interval {
                      type uint32 {
                        range "30..600";
                      }
                      mandatory true;
                      description
                        "Advertisement interval";
                    }
                  }  // list candidate-rp
                }  // container candidate-rps
              }  // container bsr
    
              container mofrr {
                description
                  "Multicast Only Fast Re-Route";
                container clone-joins {
                  description
                    "Clone multicast joins";
                  list clone-join {
                    key "source primary backup prefix-length";
                    description
                      "Clone S,G joins as S1,G joins and S2,G joins";
                    leaf source {
                      type inet:ipv4-address-no-zone;
                      description
                        "Original source address (S)";
                    }
    
                    leaf primary {
                      type inet:ipv4-address-no-zone;
                      description
                        "Primary cloned address (S1)";
                    }
    
                    leaf backup {
                      type inet:ipv4-address-no-zone;
                      description
                        "Backup cloned address (S2)";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv4-prefix-length;
                      description "Mask length";
                    }
                  }  // list clone-join
                }  // container clone-joins
    
                container clone-sources {
                  description
                    "Clone multicast traffic";
                  list clone-source {
                    key "source primary backup prefix-length";
                    description
                      "Clone S,G traffic as S1,G traffic and S2,G
    traffic";
                    leaf source {
                      type inet:ipv4-address-no-zone;
                      description
                        "Original source address (S)";
                    }
    
                    leaf primary {
                      type inet:ipv4-address-no-zone;
                      description
                        "Primary cloned address (S1)";
                    }
    
                    leaf backup {
                      type inet:ipv4-address-no-zone;
                      description
                        "Backup cloned address (S2)";
                    }
    
                    leaf prefix-length {
                      type xr:Ipv4-prefix-length;
                      description "Mask length";
                    }
                  }  // list clone-source
                }  // container clone-sources
    
                leaf rib {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list specifying SG that should do RIB
    MOFRR";
                }
    
                leaf non-revertive {
                  type empty;
                  description
                    "Non-revertive Multicast Only Fast Re-Route";
                }
    
                leaf enable {
                  type empty;
                  description
                    "Enable Multicast Only FRR";
                }
    
                leaf flow {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list specifying SG that should do FLOW
    MOFRR";
                }
              }  // container mofrr
    
              leaf multipath {
                type Pim-multipath;
                description
                  "Enable equal-cost multipath routing";
              }
    
              leaf rp-static-deny {
                type xr:Cisco-ios-xr-string {
                  length "1..64";
                }
                description
                  "Configure static RP deny range";
              }
    
              container paths {
                description
                  "Inject PIM RPF Vector Proxy's";
                list path {
                  key "source-address prefix-length";
                  description
                    "Inject PIM RPF Vector Proxy's";
                  leaf source-address {
                    type inet:ipv4-address-no-zone;
                    description "Source Address";
                  }
    
                  leaf prefix-length {
                    type xr:Ipv4-prefix-length;
                    description "Masklen";
                  }
    
                  leaf-list rpf-proxy-address {
                    type inet:ipv4-address-no-zone;
                    min-elements 1;
                    max-elements 22;
                    description
                      "RPF Proxy Address";
                  }
                }  // list path
              }  // container paths
    
              container allow-rp {
                presence "enable allow-rp";
                description
                  "Enable allow-rp filtering for SM joins";
                leaf rp-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list specifiying applicable RPs";
                }
    
                leaf group-list-name {
                  type xr:Cisco-ios-xr-string {
                    length "1..64";
                  }
                  description
                    "Access-list specifiying applicable groups";
                }
              }  // container allow-rp
    
              leaf suppress-data-registers {
                type empty;
                description
                  "Suppress data registers after initial state
    setup";
              }
    
              leaf neighbor-check-on-send {
                type empty;
                description
                  "Enable PIM neighbor checking when sending
    join-prunes";
              }
    
              container convergence {
                description
                  "Configure convergence parameters";
                leaf rpf-conflict-join-delay {
                  type uint32 {
                    range "0..15";
                  }
                  units "second";
                  description
                    "Dampen first join if RPF path is through one of
    the downstream neighbor";
                }
    
                leaf link-down-prune-delay {
                  type uint32 {
                    range "0..60";
                  }
                  units "second";
                  description
                    "Delay prunes if route join state transitions to
    not-joined on link down";
                }
              }  // container convergence
    
              leaf auto-rp-disable {
                type empty;
                description
                  "Disable Rendezvous Point discovery through the
    AutoRP protocol";
              }
            }  // container ipv4
          }  // container default-context
        }  // container pim
      }  // module Cisco-IOS-XR-ipv4-pim-cfg
    

© 2024 YumaWorks, Inc. All rights reserved.