Cisco-IOS-XR-manageability-perfmgmt-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR manageability-perfmgmt package configuration. This modul...

  • Version: 2019-04-05

    Cisco-IOS-XR-manageability-perfmgmt-cfg@2019-04-05


    
      module Cisco-IOS-XR-manageability-perfmgmt-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-manageability-perfmgmt-cfg";
    
        prefix manageability-perfmgmt-cfg;
    
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR manageability-perfmgmt package configuration.
         
         This module contains definitions
         for the following management objects:
           perf-mgmt: Performance Management configuration & operations
         
         Copyright (c) 2013-2019 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2017-09-07" {
          description
            "Fixed type translation error.";
        }
    
        revision "2017-05-01" {
          description
            "Fixing backward compatibility error in module.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "1.0.0";
    
        typedef Pm-threshold-val-range {
          type uint32 {
            range "0..65536";
          }
          description "Pm threshold val range";
        }
    
        typedef Pm-threshold-val-range-counter32 {
          type uint32 {
            range "0..4294967295";
          }
          description
            "Pm threshold val range counter32";
        }
    
        typedef Pm-threshold-rearm {
          type enumeration {
            enum "always" {
              value 0;
              description "Rearm Always";
            }
            enum "window" {
              value 1;
              description
                "Rearm after window of sampling periods";
            }
            enum "toggle" {
              value 2;
              description
                "Rearm after the first period when condition is
               not met";
            }
          }
          description "Pm threshold rearm";
        }
    
        typedef Pm-threshold-op {
          type enumeration {
            enum "eq" {
              value 1;
              description "Equal to";
            }
            enum "ne" {
              value 2;
              description "Not equal to";
            }
            enum "lt" {
              value 3;
              description "Less than";
            }
            enum "le" {
              value 4;
              description
                "Less than or equal to";
            }
            enum "gt" {
              value 5;
              description "Greater than";
            }
            enum "ge" {
              value 6;
              description
                "Greater than or equal to";
            }
            enum "rg" {
              value 7;
              description "Not in Range";
            }
          }
          description "Pm threshold op";
        }
    
        typedef Pid-range {
          type uint32 {
            range "0..4294967295";
          }
          description "Pid range";
        }
    
        typedef Pm-threshold-rearm-window {
          type uint32 {
            range "1..100";
          }
          description
            "Pm threshold rearm window";
        }
    
        container perf-mgmt {
          description
            "Performance Management configuration & operations";
          container resources {
            description
              "Resources configuration";
            container tftp-resources {
              presence
                "Indicates a tftp-resources node is configured.";
              description
                "Configure the TFTP server IP address and
               directory name";
              leaf server-address {
                type inet:ipv4-address-no-zone;
                mandatory true;
                description
                  "IP address of the TFTP server";
              }
    
              leaf directory {
                type string;
                mandatory true;
                description
                  "Directory name on TFTP server";
              }
    
              leaf vrf-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description "VRF name";
              }
            }  // container tftp-resources
    
            container dump-local {
              description
                "Configure local dump parameters";
              leaf enable {
                type empty;
                description
                  "Enable data dump onto local filesystem";
              }
            }  // container dump-local
    
            container memory-resources {
              description
                "Configure the memory usage limits of
               performance management";
              leaf max-limit {
                type uint32;
                units "kilobyte";
                description
                  "Maximum limit for memory usage (Kbytes) for
                 data buffers";
              }
    
              leaf min-reserved {
                type uint32;
                units "kilobyte";
                description
                  "Specify a minimum free memory (Kbytes) to be
                 ensured before allowing a collection request";
              }
            }  // container memory-resources
          }  // container resources
    
          container statistics {
            description
              "Templates for collection of statistics";
            container generic-counter-interface {
              description
                "Interface Generic GenericCounter collection
               templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container generic-counter-interface
    
            container process-node {
              description
                "Node Process collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container process-node
    
            container basic-counter-interface {
              description
                "Interface BasicCounter collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container basic-counter-interface
    
            container ospfv3-protocol {
              description
                "OSPF v3 Protocol collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container ospfv3-protocol
    
            container cpu-node {
              description
                "Node CPU collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container cpu-node
    
            container data-rate-interface {
              description
                "Interface DataRate collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container data-rate-interface
    
            container memory-node {
              description
                "Node Memory collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container memory-node
    
            container ldp-mpls {
              description
                "MPLS LDP collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container ldp-mpls
    
            container bgp {
              description
                "BGP collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container bgp
    
            container ospfv2-protocol {
              description
                "OSPF v2 Protocol collection templates";
              container templates {
                description "Template name";
                list template {
                  key "template-name";
                  description
                    "A template instance";
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular
    expression";
                  }
    
                  leaf history-persistent {
                    type empty;
                    description
                      "Enable persistent history statistics";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "VRF group configured in regular expression to
    be applied";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of each sample in minutes";
                  }
    
                  leaf sample-size {
                    type uint32 {
                      range "1..60";
                    }
                    description
                      "Number of samples to be taken";
                  }
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
                }  // list template
              }  // container templates
            }  // container ospfv2-protocol
          }  // container statistics
    
          container enable {
            description
              "Start data collection and/or threshold
             monitoring";
            container threshold {
              description
                "Start threshold monitoring using a defined
               template";
              container ospfv3-protocol {
                description
                  "Threshold monitoring for OSPF v3 Protocol";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container ospfv3-protocol
    
              container bgp {
                description
                  "Threshold monitoring for BGP";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container bgp
    
              container data-rate-interface {
                description
                  "Threshold monitoring for Interface  data-rates";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container data-rate-interface
    
              container ospfv2-protocol {
                description
                  "Threshold monitoring for OSPF v2 Protocol";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container ospfv2-protocol
    
              container memory-node {
                description
                  "Threshold monitoring for memory";
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
    
                container node-all {
                  description
                    "All the the nodes";
                  leaf template-name {
                    type string;
                    description "Template name";
                  }
                }  // container node-all
              }  // container memory-node
    
              container generic-counter-interface {
                description
                  "Threshold monitoring for Interface
                 generic-counters";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container generic-counter-interface
    
              container cpu-node {
                description
                  "Threshold monitoring for CPU";
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
    
                container node-all {
                  description
                    "All the the nodes";
                  leaf template-name {
                    type string;
                    description "Template name";
                  }
                }  // container node-all
              }  // container cpu-node
    
              container ldp-mpls {
                description
                  "Threshold monitoring for LDP";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container ldp-mpls
    
              container process-node {
                description
                  "Threshold monitoring for process";
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
    
                container node-all {
                  description
                    "All the the nodes";
                  leaf template-name {
                    type string;
                    description "Template name";
                  }
                }  // container node-all
              }  // container process-node
    
              container basic-counter-interface {
                description
                  "Threshold monitoring for Interface
                 basic-counters";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container basic-counter-interface
            }  // container threshold
    
            container statistics {
              description
                "Start periodic collection using a defined a
               template";
              container generic-counter-interface {
                description
                  "Statistics collection for generic-counters";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container generic-counter-interface
    
              container bgp {
                description
                  "Data collection for BGP";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container bgp
    
              container ospfv2-protocol {
                description
                  "Data collection for OSPF v2 Protocol";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container ospfv2-protocol
    
              container ospfv3-protocol {
                description
                  "Data collection for OSPF v3 Protocol";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container ospfv3-protocol
    
              container cpu-node {
                description "Collection for CPU";
                container node-all {
                  description
                    "All the the nodes";
                  leaf template-name {
                    type string;
                    description "Template name";
                  }
                }  // container node-all
    
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
              }  // container cpu-node
    
              container basic-counter-interface {
                description
                  "Statistics collection for basic-counters";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container basic-counter-interface
    
              container process-node {
                description
                  "Collection for process";
                container node-all {
                  description
                    "All the the nodes";
                  leaf template-name {
                    type string;
                    description "Template name";
                  }
                }  // container node-all
    
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
              }  // container process-node
    
              container data-rate-interface {
                description
                  "Statistics collection for generic-counters";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container data-rate-interface
    
              container memory-node {
                description
                  "Collection for memory";
                container node-all {
                  description
                    "All the the nodes";
                  leaf template-name {
                    type string;
                    description "Template name";
                  }
                }  // container node-all
    
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
              }  // container memory-node
    
              container ldp-mpls {
                description
                  "Collection for labels distribution protocol";
                leaf template-name {
                  type string;
                  description "Template name";
                }
              }  // container ldp-mpls
            }  // container statistics
    
            container monitor-enable {
              description
                "Start data collection for a monitored instance";
              container ldp-mpls {
                description "Monitoring for LDP";
                container sessions {
                  description
                    "LDP session specification";
                  list session {
                    key "session";
                    description
                      "IP address of the LDP Session";
                    leaf session {
                      type inet:ipv4-address-no-zone;
                      description
                        "IP address of the LDP Session";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list session
                }  // container sessions
              }  // container ldp-mpls
    
              container ospfv3-protocol {
                description
                  "Monitor OSPF v3 Protocol";
                container ospf-instances {
                  description
                    "Monitor an instance";
                  list ospf-instance {
                    key "instance-name";
                    description
                      "Instance being monitored";
                    leaf instance-name {
                      type xr:Cisco-ios-xr-string;
                      description
                        "OSPF Instance Name";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list ospf-instance
                }  // container ospf-instances
              }  // container ospfv3-protocol
    
              container generic-counters {
                description
                  "Monitoring for generic-counters";
                container interfaces {
                  description
                    "Monitor an Interface";
                  list interface {
                    key "interface-name";
                    description
                      "Interface being Monitored";
                    leaf interface-name {
                      type xr:Interface-name;
                      description
                        "Interface Name";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list interface
                }  // container interfaces
              }  // container generic-counters
    
              container process {
                description
                  "Collection for a single process";
                container process-nodes {
                  description
                    "Node specification";
                  list process-node {
                    key "node-id";
                    description "Node instance";
                    container pids {
                      description
                        "Process ID specification";
                      list pid {
                        key "pid";
                        description
                          "Specify an existing template for data
                         collection";
                        leaf pid {
                          type Pid-range;
                          description
                            "Specify Process ID";
                        }
    
                        leaf template-name {
                          type string;
                          description
                            "Template name";
                        }
                      }  // list pid
                    }  // container pids
    
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
                  }  // list process-node
                }  // container process-nodes
              }  // container process
    
              container basic-counters {
                description
                  "Monitoring for basic-counters";
                container interfaces {
                  description
                    "Monitor an Interface";
                  list interface {
                    key "interface-name";
                    description
                      "Interface being Monitored";
                    leaf interface-name {
                      type xr:Interface-name;
                      description
                        "Interface Name";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list interface
                }  // container interfaces
              }  // container basic-counters
    
              container memory {
                description
                  "Collection for memory";
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
              }  // container memory
    
              container ospfv2-protocol {
                description
                  "Monitor OSPF v2 Protocol";
                container ospf-instances {
                  description
                    "Monitor an instance";
                  list ospf-instance {
                    key "instance-name";
                    description
                      "Instance being monitored";
                    leaf instance-name {
                      type xr:Cisco-ios-xr-string;
                      description
                        "OSPF Instance Name";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list ospf-instance
                }  // container ospf-instances
              }  // container ospfv2-protocol
    
              container cpu {
                description "Collection for CPU";
                container nodes {
                  description
                    "Node specification";
                  list node {
                    key "node-id";
                    description "Node instance";
                    leaf node-id {
                      type xr:Node-id;
                      description "Node ID";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list node
                }  // container nodes
              }  // container cpu
    
              container bgp {
                description
                  "Monitor BGP protocol";
                container neighbors {
                  description
                    "Monitor BGP protocol for a BGP peer";
                  list neighbor {
                    key "peer-address";
                    description
                      "Neighbor being monitored";
                    leaf peer-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "IP address of the Neighbor";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list neighbor
                }  // container neighbors
              }  // container bgp
    
              container data-rates {
                description
                  "Monitoring for data-rates";
                container interfaces {
                  description
                    "Monitor an Interface";
                  list interface {
                    key "interface-name";
                    description
                      "Interface being Monitored";
                    leaf interface-name {
                      type xr:Interface-name;
                      description
                        "Interface Name";
                    }
    
                    leaf template-name {
                      type string;
                      description
                        "Template name";
                    }
                  }  // list interface
                }  // container interfaces
              }  // container data-rates
            }  // container monitor-enable
          }  // container enable
    
          container reg-exp-groups {
            description
              "Configure regular expression group";
            list reg-exp-group {
              key "reg-exp-group-name";
              description
                "Specify regular expression group name";
              container reg-exps {
                description
                  "Configure regular expression";
                list reg-exp {
                  key "reg-exp-index";
                  description
                    "Specify regular expression index number";
                  leaf reg-exp-index {
                    type uint32 {
                      range "1..100";
                    }
                    description
                      "Regular expression index number";
                  }
    
                  leaf reg-exp-string {
                    type string {
                      length "1..128";
                    }
                    mandatory true;
                    description
                      "Regular expression string to match";
                  }
                }  // list reg-exp
              }  // container reg-exps
    
              leaf reg-exp-group-name {
                type xr:Cisco-ios-xr-string {
                  length "1..32";
                }
                description
                  "Regular expression group name";
              }
            }  // list reg-exp-group
          }  // container reg-exp-groups
    
          container threshold {
            description
              "Container for threshold templates";
            container generic-counter-interface {
              description
                "Interface Generic Counter threshold
               configuration";
              container generic-counter-interface-templates {
                description
                  "Interface Generic Counter threshold templates";
                list generic-counter-interface-template {
                  key "template-name";
                  description
                    "Interface Generic Counter threshold template
                   instance";
                  container in-octets {
                    presence "enable in-octets";
                    description
                      "Number of inbound octets/bytes";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-octets
    
                  container in-ucast-pkts {
                    presence
                      "enable in-ucast-pkts";
                    description
                      "Number of inbound unicast packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-ucast-pkts
    
                  container out-ucast-pkts {
                    presence
                      "enable out-ucast-pkts";
                    description
                      "Number of outbound unicast packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-ucast-pkts
    
                  container out-broadcast-pkts {
                    presence
                      "enable out-broadcast-pkts";
                    description
                      "Number of outbound broadcast packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-broadcast-pkts
    
                  container out-multicast-pkts {
                    presence
                      "enable out-multicast-pkts";
                    description
                      "Number of outbound multicast packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-multicast-pkts
    
                  container input-overrun {
                    presence
                      "enable input-overrun";
                    description
                      "Number of inbound packets with overrun
                     errors";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-overrun
    
                  container out-octets {
                    presence "enable out-octets";
                    description
                      "Number of outbound octets/bytes";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-octets
    
                  container output-underrun {
                    presence
                      "enable output-underrun";
                    description
                      "Number of outbound packets with underrun
                     errors";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-underrun
    
                  container input-total-errors {
                    presence
                      "enable input-total-errors";
                    description
                      "Number of inbound incorrect packets
                     discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-total-errors
    
                  container output-total-drops {
                    presence
                      "enable output-total-drops";
                    description
                      "Number of outbound correct packets discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-total-drops
    
                  container input-crc {
                    presence "enable input-crc";
                    description
                      "Number of inbound packets discarded with
                     incorrect CRC";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-crc
    
                  container in-broadcast-pkts {
                    presence
                      "enable in-broadcast-pkts";
                    description
                      "Number of inbound broadcast packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-broadcast-pkts
    
                  container in-multicast-pkts {
                    presence
                      "enable in-multicast-pkts";
                    description
                      "Number of inbound multicast packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-multicast-pkts
    
                  container out-packets {
                    presence
                      "enable out-packets";
                    description
                      "Number of outbound packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-packets
    
                  container output-total-errors {
                    presence
                      "enable output-total-errors";
                    description
                      "Number of outbound incorrect packets
                     discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-total-errors
    
                  container in-packets {
                    presence "enable in-packets";
                    description
                      "Number of inbound packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-packets
    
                  container input-unknown-proto {
                    presence
                      "enable input-unknown-proto";
                    description
                      "Number of inbound packets discarded with
                     unknown protocol";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-unknown-proto
    
                  container input-queue-drops {
                    presence
                      "enable input-queue-drops";
                    description
                      "Number of input queue drops";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-queue-drops
    
                  container input-total-drops {
                    presence
                      "enable input-total-drops";
                    description
                      "Number of inbound correct packets discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-total-drops
    
                  container input-frame {
                    presence
                      "enable input-frame";
                    description
                      "Number of inbound packets with framing
                     errors";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-frame
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
    
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular expression";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by VRF name regular
    expression ";
                  }
                }  // list generic-counter-interface-template
              }  // container generic-counter-interface-templates
            }  // container generic-counter-interface
    
            container ldp-mpls {
              description
                "MPLS LDP threshold configuration";
              container ldp-mpls-templates {
                description
                  "MPLS LDP threshold templates";
                list ldp-mpls-template {
                  key "template-name";
                  description
                    "MPLS LDP threshold template instance";
                  container address-withdraw-msgs-rcvd {
                    presence
                      "enable address-withdraw-msgs-rcvd";
                    description
                      "Number of Address Withdraw messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container address-withdraw-msgs-rcvd
    
                  container label-withdraw-msgs-rcvd {
                    presence
                      "enable label-withdraw-msgs-rcvd";
                    description
                      "Number of Label Withdraw messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container label-withdraw-msgs-rcvd
    
                  container address-withdraw-msgs-sent {
                    presence
                      "enable address-withdraw-msgs-sent";
                    description
                      "Number of Address Withdraw messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container address-withdraw-msgs-sent
    
                  container label-withdraw-msgs-sent {
                    presence
                      "enable label-withdraw-msgs-sent";
                    description
                      "Number of Label Withdraw messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container label-withdraw-msgs-sent
    
                  container notification-msgs-rcvd {
                    presence
                      "enable notification-msgs-rcvd";
                    description
                      "Number of Notification messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container notification-msgs-rcvd
    
                  container total-msgs-rcvd {
                    presence
                      "enable total-msgs-rcvd";
                    description
                      "Total number of messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container total-msgs-rcvd
    
                  container notification-msgs-sent {
                    presence
                      "enable notification-msgs-sent";
                    description
                      "Number of Notification messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container notification-msgs-sent
    
                  container total-msgs-sent {
                    presence
                      "enable total-msgs-sent";
                    description
                      "Total number of messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container total-msgs-sent
    
                  container label-release-msgs-rcvd {
                    presence
                      "enable label-release-msgs-rcvd";
                    description
                      "Number of LAbel Release messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container label-release-msgs-rcvd
    
                  container init-msgs-rcvd {
                    presence
                      "enable init-msgs-rcvd";
                    description
                      "Number of Init messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container init-msgs-rcvd
    
                  container label-release-msgs-sent {
                    presence
                      "enable label-release-msgs-sent";
                    description
                      "Number of Label Release messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container label-release-msgs-sent
    
                  container init-msgs-sent {
                    presence
                      "enable init-msgs-sent";
                    description
                      "Number of Init messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container init-msgs-sent
    
                  container label-mapping-msgs-rcvd {
                    presence
                      "enable label-mapping-msgs-rcvd";
                    description
                      "Number of Label Mapping messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container label-mapping-msgs-rcvd
    
                  container keepalive-msgs-rcvd {
                    presence
                      "enable keepalive-msgs-rcvd";
                    description
                      "Number of Keepalive messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container keepalive-msgs-rcvd
    
                  container label-mapping-msgs-sent {
                    presence
                      "enable label-mapping-msgs-sent";
                    description
                      "Number of Label Mapping messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container label-mapping-msgs-sent
    
                  container keepalive-msgs-sent {
                    presence
                      "enable keepalive-msgs-sent";
                    description
                      "Number of Keepalive messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container keepalive-msgs-sent
    
                  container address-msgs-rcvd {
                    presence
                      "enable address-msgs-rcvd";
                    description
                      "Number of Address messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container address-msgs-rcvd
    
                  container address-msgs-sent {
                    presence
                      "enable address-msgs-sent";
                    description
                      "Number of Address messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container address-msgs-sent
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
                }  // list ldp-mpls-template
              }  // container ldp-mpls-templates
            }  // container ldp-mpls
    
            container basic-counter-interface {
              description
                "Interface Basic Counter threshold configuration";
              container basic-counter-interface-templates {
                description
                  "Interface Basic Counter threshold templates";
                list basic-counter-interface-template {
                  key "template-name";
                  description
                    "Interface Basic Counter threshold template
                   instance";
                  container in-octets {
                    presence "enable in-octets";
                    description
                      "Number of inbound octets/bytes";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-octets
    
                  container out-octets {
                    presence "enable out-octets";
                    description
                      "Number of outbound octets/bytes";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-octets
    
                  container output-queue-drops {
                    presence
                      "enable output-queue-drops";
                    description
                      "Number of outbound queue drops";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-queue-drops
    
                  container input-total-errors {
                    presence
                      "enable input-total-errors";
                    description
                      "Number of inbound incorrect packets
                     discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-total-errors
    
                  container output-total-drops {
                    presence
                      "enable output-total-drops";
                    description
                      "Number of outbound correct packets discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-total-drops
    
                  container out-packets {
                    presence
                      "enable out-packets";
                    description
                      "Number of outbound packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container out-packets
    
                  container output-total-errors {
                    presence
                      "enable output-total-errors";
                    description
                      "Number of outbound incorrect packets
                     discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-total-errors
    
                  container in-packets {
                    presence "enable in-packets";
                    description
                      "Number of inbound packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container in-packets
    
                  container input-queue-drops {
                    presence
                      "enable input-queue-drops";
                    description
                      "Number of input queue drops";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-queue-drops
    
                  container input-total-drops {
                    presence
                      "enable input-total-drops";
                    description
                      "Number of inbound correct packets discarded";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-total-drops
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
    
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular expression";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by VRF name regular
    expression ";
                  }
                }  // list basic-counter-interface-template
              }  // container basic-counter-interface-templates
            }  // container basic-counter-interface
    
            container bgp {
              description
                "BGP threshold configuration";
              container bgp-templates {
                description
                  "BGP threshold templates";
                list bgp-template {
                  key "template-name";
                  description
                    "BGP threshold template instance";
                  container output-update-messages {
                    presence
                      "enable output-update-messages";
                    description
                      "Number of update messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-update-messages
    
                  container errors-received {
                    presence
                      "enable errors-received";
                    description
                      "Number of error notifications received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container errors-received
    
                  container conn-established {
                    presence
                      "enable conn-established";
                    description
                      "Number of times the connection was
                     established";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container conn-established
    
                  container output-messages {
                    presence
                      "enable output-messages";
                    description
                      "Number of messages sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-messages
    
                  container conn-dropped {
                    presence
                      "enable conn-dropped";
                    description
                      "Number of times the connection was dropped";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container conn-dropped
    
                  container input-update-messages {
                    presence
                      "enable input-update-messages";
                    description
                      "Number of update messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-update-messages
    
                  container errors-sent {
                    presence
                      "enable errors-sent";
                    description
                      "Number of error notifications sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container errors-sent
    
                  container input-messages {
                    presence
                      "enable input-messages";
                    description
                      "Number of messages received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-messages
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
                }  // list bgp-template
              }  // container bgp-templates
            }  // container bgp
    
            container ospfv2-protocol {
              description
                "OSPF v2 Protocol threshold configuration";
              container ospfv2-protocol-templates {
                description
                  "OSPF v2 Protocol threshold templates";
                list ospfv2-protocol-template {
                  key "template-name";
                  description
                    "OSPF v2 Protocol threshold template instance";
                  container checksum-errors {
                    presence
                      "enable checksum-errors";
                    description
                      "Number of packets received with checksum
                     errors";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container checksum-errors
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  container input-lsa-acks-lsa {
                    presence
                      "enable input-lsa-acks-lsa";
                    description
                      "Number of LSA received in LSA Acknowledgements";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-acks-lsa
    
                  container output-db-ds-lsa {
                    presence
                      "enable output-db-ds-lsa";
                    description
                      "Number of LSA sent in DBD packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-db-ds-lsa
    
                  container input-db-ds-lsa {
                    presence
                      "enable input-db-ds-lsa";
                    description
                      "Number of LSA received in DBD packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-db-ds-lsa
    
                  container input-lsa-updates {
                    presence
                      "enable input-lsa-updates";
                    description
                      "Number of LSA Updates received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-updates
    
                  container output-db-ds {
                    presence
                      "enable output-db-ds";
                    description
                      "Number of DBD packets sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-db-ds
    
                  container output-lsa-updates-lsa {
                    presence
                      "enable output-lsa-updates-lsa";
                    description
                      "Number of LSA sent in LSA Updates";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-updates-lsa
    
                  container input-db-ds {
                    presence
                      "enable input-db-ds";
                    description
                      "Number of DBD packets received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-db-ds
    
                  container input-lsa-updates-lsa {
                    presence
                      "enable input-lsa-updates-lsa";
                    description
                      "Number of LSA received in LSA Updates";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-updates-lsa
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
    
                  container output-packets {
                    presence
                      "enable output-packets";
                    description
                      "Total number of packets sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-packets
    
                  container input-packets {
                    presence
                      "enable input-packets";
                    description
                      "Total number of packets received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-packets
    
                  container output-hello-packets {
                    presence
                      "enable output-hello-packets";
                    description
                      "Total number of packets sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-hello-packets
    
                  container input-hello-packets {
                    presence
                      "enable input-hello-packets";
                    description
                      "Number of Hello packets received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-hello-packets
    
                  container output-ls-requests {
                    presence
                      "enable output-ls-requests";
                    description
                      "Number of LS Requests sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-ls-requests
    
                  container output-lsa-acks-lsa {
                    presence
                      "enable output-lsa-acks-lsa";
                    description
                      "Number of LSA sent in LSA Acknowledgements";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-acks-lsa
    
                  container output-lsa-acks {
                    presence
                      "enable output-lsa-acks";
                    description
                      "Number of LSA Acknowledgements sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-acks
    
                  container input-lsa-acks {
                    presence
                      "enable input-lsa-acks";
                    description
                      "Number of LSA Acknowledgements received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-acks
    
                  container output-lsa-updates {
                    presence
                      "enable output-lsa-updates";
                    description
                      "Number of LSA Updates sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-updates
    
                  container output-ls-requests-lsa {
                    presence
                      "enable output-ls-requests-lsa";
                    description
                      "Number of LSA sent in LS Requests";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-ls-requests-lsa
    
                  container input-ls-requests-lsa {
                    presence
                      "enable input-ls-requests-lsa";
                    description
                      "Number of LSA received in LS Requests";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-ls-requests-lsa
    
                  container input-ls-requests {
                    presence
                      "enable input-ls-requests";
                    description
                      "Number of LS Requests received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-ls-requests
                }  // list ospfv2-protocol-template
              }  // container ospfv2-protocol-templates
            }  // container ospfv2-protocol
    
            container cpu-node {
              description
                "Node CPU threshold configuration";
              container cpu-node-templates {
                description
                  "Node CPU threshold configuration templates";
                list cpu-node-template {
                  key "template-name";
                  description
                    "Node CPU threshold configuration template
                   instances";
                  container average-cpu-used {
                    presence
                      "enable average-cpu-used";
                    description
                      "Average %CPU utilization";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32 {
                        range "0..100";
                      }
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32 {
                        range "0..100";
                      }
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container average-cpu-used
    
                  container no-processes {
                    presence
                      "enable no-processes";
                    description
                      "Number of processes";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container no-processes
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
                }  // list cpu-node-template
              }  // container cpu-node-templates
            }  // container cpu-node
    
            container data-rate-interface {
              description
                "Interface Data Rates threshold configuration";
              container data-rate-interface-templates {
                description
                  "Interface Data Rates threshold templates";
                list data-rate-interface-template {
                  key "template-name";
                  description
                    "Interface Data Rates threshold template
                   instance";
                  container input-data-rate {
                    presence
                      "enable input-data-rate";
                    description
                      "Input data rate in kbps";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-data-rate
    
                  container bandwidth {
                    presence "enable bandwidth";
                    description
                      "Bandwidth in kbps";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container bandwidth
    
                  container output-packet-rate {
                    presence
                      "enable output-packet-rate";
                    description
                      "Number of Output packets per second";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-packet-rate
    
                  container input-peak-pkts {
                    presence
                      "enable input-peak-pkts";
                    description
                      "Maximum number of input packets per second";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-peak-pkts
    
                  container output-peak-rate {
                    presence
                      "enable output-peak-rate";
                    description
                      "Peak output data rate in kbps";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-peak-rate
    
                  container output-data-rate {
                    presence
                      "enable output-data-rate";
                    description
                      "Output data rate in kbps";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-data-rate
    
                  container input-packet-rate {
                    presence
                      "enable input-packet-rate";
                    description
                      "Number of input packets per second";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-packet-rate
    
                  container output-peak-pkts {
                    presence
                      "enable output-peak-pkts";
                    description
                      "Maximum number of output packets per second";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container output-peak-pkts
    
                  container input-peak-rate {
                    presence
                      "enable input-peak-rate";
                    description
                      "Peak input data rate in kbps";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container input-peak-rate
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
    
                  leaf reg-exp-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by regular expression";
                  }
    
                  leaf vrf-group {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Enable instance filtering by VRF name regular
    expression ";
                  }
                }  // list data-rate-interface-template
              }  // container data-rate-interface-templates
            }  // container data-rate-interface
    
            container process-node {
              description
                "Node Process threshold configuration";
              container process-node-templates {
                description
                  "Node Memory threshold templates";
                list process-node-template {
                  key "template-name";
                  description
                    "Node Memory threshold template instance";
                  container average-cpu-used {
                    presence
                      "enable average-cpu-used";
                    description
                      "Average %CPU utilization";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32 {
                        range "0..100";
                      }
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32 {
                        range "0..100";
                      }
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container average-cpu-used
    
                  container peak-memory {
                    presence
                      "enable peak-memory";
                    description
                      "Max memory (KBytes) used since startup time";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container peak-memory
    
                  container no-threads {
                    presence "enable no-threads";
                    description
                      "Number of threads";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32 {
                        range "0..32767";
                      }
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32 {
                        range "0..32767";
                      }
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container no-threads
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
                }  // list process-node-template
              }  // container process-node-templates
            }  // container process-node
    
            container memory-node {
              description
                "Node Memory threshold configuration";
              container memory-node-templates {
                description
                  "Node Memory threshold configuration templates";
                list memory-node-template {
                  key "template-name";
                  description
                    "Node Memory threshold configuration template
                   instance";
                  container peak-memory {
                    presence
                      "enable peak-memory";
                    description
                      "Maximum memory (KBytes) used";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32 {
                        range "0..4194304";
                      }
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32 {
                        range "0..4194304";
                      }
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container peak-memory
    
                  container curr-memory {
                    presence
                      "enable curr-memory";
                    description
                      "Current memory (Bytes) in use";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type uint32;
                      description
                        "Threshold value (or start range value for
                       operator RG)";
                    }
    
                    leaf end-range-value {
                      type uint32;
                      description
                        "Threshold end range value (for operator RG,
                       set to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values
                       are in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm
                       type Window)";
                    }
                  }  // container curr-memory
    
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
                }  // list memory-node-template
              }  // container memory-node-templates
            }  // container memory-node
    
            container ospfv3-protocol {
              description
                "OSPF v2 Protocol threshold configuration";
              container ospfv3-protocol-templates {
                description
                  "OSPF v2 Protocol threshold templates";
                list ospfv3-protocol-template {
                  key "template-name";
                  description
                    "OSPF v2 Protocol threshold template instance";
                  leaf template-name {
                    type xr:Cisco-ios-xr-string;
                    description "Template Name";
                  }
    
                  container input-lsa-acks-lsa {
                    presence
                      "enable input-lsa-acks-lsa";
                    description
                      "Number of LSA received in LSA Acknowledgements";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-acks-lsa
    
                  container output-db-ds-lsa {
                    presence
                      "enable output-db-ds-lsa";
                    description
                      "Number of LSA sent in DBD packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-db-ds-lsa
    
                  container input-db-ds-lsa {
                    presence
                      "enable input-db-ds-lsa";
                    description
                      "Number of LSA received in DBD packets";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-db-ds-lsa
    
                  container input-lsa-updates {
                    presence
                      "enable input-lsa-updates";
                    description
                      "Number of LSA Updates received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-updates
    
                  container output-db-ds {
                    presence
                      "enable output-db-ds";
                    description
                      "Number of DBD packets sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-db-ds
    
                  container output-lsa-updates-lsa {
                    presence
                      "enable output-lsa-updates-lsa";
                    description
                      "Number of LSA sent in LSA Updates";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-updates-lsa
    
                  container input-db-ds {
                    presence
                      "enable input-db-ds";
                    description
                      "Number of DBD packets received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-db-ds
    
                  container input-lsa-updates-lsa {
                    presence
                      "enable input-lsa-updates-lsa";
                    description
                      "Number of LSA received in LSA Updates";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-updates-lsa
    
                  leaf sample-interval {
                    type uint32 {
                      range "1..60";
                    }
                    units "minute";
                    description
                      "Frequency of sampling in minutes";
                  }
    
                  container output-packets {
                    presence
                      "enable output-packets";
                    description
                      "Total number of packets sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-packets
    
                  container input-packets {
                    presence
                      "enable input-packets";
                    description
                      "Total number of packets received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-packets
    
                  container output-hello-packets {
                    presence
                      "enable output-hello-packets";
                    description
                      "Total number of packets sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-hello-packets
    
                  container input-hello-packets {
                    presence
                      "enable input-hello-packets";
                    description
                      "Number of Hello packets received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-hello-packets
    
                  container output-ls-requests {
                    presence
                      "enable output-ls-requests";
                    description
                      "Number of LS Requests sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-ls-requests
    
                  container output-lsa-acks-lsa {
                    presence
                      "enable output-lsa-acks-lsa";
                    description
                      "Number of LSA sent in LSA Acknowledgements";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-acks-lsa
    
                  container output-lsa-acks {
                    presence
                      "enable output-lsa-acks";
                    description
                      "Number of LSA Acknowledgements sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-acks
    
                  container input-lsa-acks {
                    presence
                      "enable input-lsa-acks";
                    description
                      "Number of LSA Acknowledgements received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-lsa-acks
    
                  container output-lsa-updates {
                    presence
                      "enable output-lsa-updates";
                    description
                      "Number of LSA Updates sent";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-lsa-updates
    
                  container output-ls-requests-lsa {
                    presence
                      "enable output-ls-requests-lsa";
                    description
                      "Number of LSA sent in LS Requests";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container output-ls-requests-lsa
    
                  container input-ls-requests-lsa {
                    presence
                      "enable input-ls-requests-lsa";
                    description
                      "Number of LSA received in LS Requests";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-ls-requests-lsa
    
                  container input-ls-requests {
                    presence
                      "enable input-ls-requests";
                    description
                      "Number of LS Requests received";
                    leaf operator {
                      type Pm-threshold-op;
                      description "Operator";
                    }
    
                    leaf value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold value (or start range value for
    operator RG)";
                    }
    
                    leaf end-range-value {
                      type Pm-threshold-val-range-counter32;
                      description
                        "Threshold end range value (for operator RG, set
    to 0 otherwise)";
                    }
    
                    leaf percent {
                      type boolean;
                      description
                        "Set to TRUE if Specified threshold values are
    in percent";
                    }
    
                    leaf rearm-type {
                      type Pm-threshold-rearm;
                      description
                        "Configure the Rearm type";
                    }
    
                    leaf rearm-window {
                      type Pm-threshold-rearm-window;
                      description
                        "Configure the rearm window size (for rearm type
    Window)";
                    }
                  }  // container input-ls-requests
                }  // list ospfv3-protocol-template
              }  // container ospfv3-protocol-templates
            }  // container ospfv3-protocol
          }  // container threshold
        }  // container perf-mgmt
      }  // module Cisco-IOS-XR-manageability-perfmgmt-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.