Cisco-IOS-XR-perf-meas-oper-sub2

This submodule contains a collection of YANG definitions for Cisco IOS-XR perf-meas package operational data. Copyright (c) 201...

  • Version: 2021-06-02

    Cisco-IOS-XR-perf-meas-oper-sub2@2021-06-02


    
      submodule Cisco-IOS-XR-perf-meas-oper-sub2 {
    
        yang-version 1;
    
        belongs-to Cisco-IOS-XR-perf-meas-oper {
            prefix Cisco-IOS-XR-perf-meas-oper;
        }
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-yang-types {
          prefix yang;
        }
        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 submodule contains a collection of YANG definitions
         for Cisco IOS-XR perf-meas package operational data.
         
         Copyright (c) 2013-2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-06-02" {
          description
            "Added session id to endpoint liveness bag.
           2021-04-17
             Removed liveness parameters from delay profile bag.
           2021-02-26
             Remove PM hidden show cli, loss, history packet.
           2021-02-16
             Remove liveness history and liveness detection verbose from sr-policy delay schema.
           2021-01-08
             Added srpolicy liveness schema.
           2021-01-08
             Added srpolicy liveness history schema and renamed liveness detection schema.
           2020-12-19
             Added schema for endpoint liveness profile.
           2020-12-02
             Add sr-policy liveness profile bag and oper schema.
           2020-11-26
             Update endpoint show command bags in order to support liveness-detection.
           2020-11-17
             Added new bag for PPS info. IosSetYangSchemaRev Cisco-IOS-XR-perf-meas-oper
           2020-10-27
             Added anomaly support for sr-policy min delay metrics.
           2020-10-27
             Added all endpoint show commands support and respective bags.
           2020-10-15
             Update probe running reason name for link down.
           2020-10-02
             Added anomaly support for interface min delay metrics.
           2020-08-06
             Added liveness session state history information.
           2020-07-23
             Fixed typos in perf-meas oper bag.";
        }
    
        revision "2020-06-24" {
          description
            "Update perf-meas oper schema task group.
           2020-04-10
           Added new TX error counter for next hop MAC missing.
           2020-03-31
           721 nohelp CLI for liveness, loopback, endpoint, src-port, named profile, distribution.
           2020-03-25
           Add trace id in PM session bag.
           2020-03-17
           Added new types counters to count different types of PM DM sessions.
           2020-03-09
           Added new types of probe running errors and counters for probe running errors.
           2020-02-24
           Modifid type of service knobs from array to integer.
           2020-02-21
           Modify router alert type
           2020-02-19
           Modifiy periodic minimum change value.
           2020-02-13
           Modifiy delay-measurement hisotry key words.
           2020-01-22
           Added a new advertisement reason for interface delay-measurement.
           2019-12-16
           Revision IOS XR 7.2.1 Added responder src address and num of hops for PM DM.
           2019-12-09
           Added new reason for DM probe not running.
           2019-11-18
           Revision IOS XR 7.2.1 Added EDT for Liveness state for SR Policy Candidate path atmoic path.";
        }
    
        revision "2019-10-19" {
          description
            "Added burst-interval-effective to oper data.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2018-12-13" {
          description
            "Revision IOS XR 7.0.1 Added delay measurment for SR Policy and RSVP-TE LSP.";
        }
    
        revision "2017-10-17" {
          description "Revision Zero.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "4.0.0";
        semver:module-version "3.0.0";
        semver:module-version "2.0.0";
        semver:module-version "1.0.0";
    
        typedef Pm-rl-pps-pool {
          type enumeration {
            enum "single-pps-pool" {
              value 0;
              description "Single PPS Pool";
            }
            enum "multiple-pps-pool" {
              value 1;
              description "Multiple PPS Pool";
            }
          }
          description "PM PPS Pool Type";
        }
    
        typedef Pm-payload {
          type enumeration {
            enum "payload-type-pm-dm" {
              value 0;
              description "Payload type PM DM";
            }
            enum "payload-type-twamp-test" {
              value 1;
              description
                "Payload type TWAMP test";
            }
            enum "payload-type-pm-lm" {
              value 2;
              description "Payload type PM LM";
            }
          }
          description "PM Payload Type";
        }
    
        typedef Pm-encap-mode {
          type enumeration {
            enum "encap-mode-mpls" {
              value 0;
              description "Encap-mode MPLS";
            }
            enum "encap-mode-udp" {
              value 1;
              description "Encap-mode UDP";
            }
          }
          description "PM Packet Encapsulation";
        }
    
        typedef Pm-delay-mode {
          type enumeration {
            enum "delay-mode-one-way" {
              value 0;
              description
                "One-way delay-measurement mode";
            }
            enum "delay-mode-two-way" {
              value 1;
              description
                "Two-way delay-measurement mode";
            }
            enum "delay-mode-loopback" {
              value 2;
              description
                "Loopback delay-measurement mode";
            }
          }
          description "PM Delay Mode Type";
        }
    
        typedef Pm-measurement {
          type enumeration {
            enum "delay-measurement-type" {
              value 0;
              description
                "Delay Measurement Type";
            }
            enum "loss-measurement-type" {
              value 1;
              description
                "Loss Measurement Type";
            }
            enum "liveness-detection-type" {
              value 2;
              description
                "Liveness Detection Type";
            }
          }
          description "PM Measurement Type";
        }
    
        typedef Pm-transport {
          type enumeration {
            enum "interface-transport-type" {
              value 0;
              description
                "Transport type for interface";
            }
            enum "rsvp-te-transport-type" {
              value 1;
              description
                "Transport type for RSVP-TE LSP";
            }
            enum "sr-policy-transport-type" {
              value 2;
              description
                "Transport type for SR Policy";
            }
            enum "endpoiont-transport-type" {
              value 3;
              description
                "Transport type for endpoint";
            }
          }
          description "PM Transport Type";
        }
    
        typedef Pm-history {
          type enumeration {
            enum "history-type-probe" {
              value 0;
              description
                "History type for delay measurement probe info";
            }
            enum "history-type-packet" {
              value 1;
              description
                "History type for delay measurement packet info";
            }
            enum "history-type-aggregated" {
              value 2;
              description
                "History type for delay measurement aggregated
               info";
            }
            enum "history-type-advertisement" {
              value 3;
              description
                "History type for delay measurement
               advertisement info";
            }
            enum "history-type-liveness-state" {
              value 4;
              description
                "History type for liveness state change info";
            }
            enum "history-type-lm-probe" {
              value 5;
              description
                "History type for loss measurement probe info";
            }
            enum "history-type-lm-packet" {
              value 6;
              description
                "History type for loss measurement aggregation
               info";
            }
            enum "history-type-lm-aggregated" {
              value 7;
              description
                "History type for loss measurement advertisement
               info";
            }
            enum "history-type-lm-advertisement" {
              value 8;
              description
                "History type for loss measurement advertisement
               info";
            }
          }
          description "PM history types";
        }
    
        typedef Pm-probe-running-error-reason {
          type enumeration {
            enum "probe-is-running" {
              value 0;
              description
                "Probe is running without error";
            }
            enum "platform-not-supported" {
              value 1;
              description
                "Measurement is not supported on this plaftorm";
            }
            enum "nonv1-active-node" {
              value 2;
              description
                "Node is not V1 active";
            }
            enum "control-code-error" {
              value 3;
              description
                "An uncleared control code error was received";
            }
            enum "interface-admin-down" {
              value 4;
              description "Interface admin down";
            }
            enum "mpls-capability-not-present" {
              value 5;
              description
                "MPLS is not enabled on interface";
            }
            enum "interface-not-present" {
              value 6;
              description
                "Interface not present or preconfigured";
            }
            enum "ip-address-not-configured" {
              value 7;
              description
                "IP address is not present on interface";
            }
            enum "next-hop-not-configured" {
              value 8;
              description
                "Nexthop address not configured.";
            }
            enum
              "wrong-next-hop-ip-address-type" {
              value 9;
              description
                "Wrong nexthop address type configured";
            }
            enum "protocol-port-not-configured" {
              value 10;
              description
                "Protocol querier destination port missing";
            }
            enum "protocol-port-failed-to-open" {
              value 11;
              description
                "Protocol querier destination port failed to
               open";
            }
            enum
              "high-total-interface-packets-per-second" {
              value 12;
              description
                "Total interface delay packets per second
               exceeds 80% of the total maximum packets per
               second allowed";
            }
            enum
              "client-end-of-data-not-received" {
              value 13;
              description
                "Client end of data message has not been
               received";
            }
            enum "missing-reverse-path" {
              value 14;
              description
                "Missing reverse path for loopback measurement
               mode";
            }
            enum "process-not-in-run-state" {
              value 15;
              description
                "Process is not in run state";
            }
            enum "session-suspended" {
              value 16;
              description
                "Measurement has been suspended by user using
               exec command";
            }
            enum "profile-not-configured" {
              value 17;
              description
                "Profile is not configured";
            }
            enum "missing-source-address" {
              value 18;
              description
                "Endpoint source address is missing";
            }
            enum "interface-type-not-supported" {
              value 19;
              description
                "Delay measurement is not supported for this
               interface type";
            }
            enum "interface-non-default-vrf" {
              value 20;
              description
                "Interface is not in default VRF";
            }
            enum "interface-down" {
              value 21;
              description "Interface down";
            }
            enum "invalid-vrf" {
              value 22;
              description
                "unable to resolve (non-existing) VRF";
            }
            enum "invalid-source-address" {
              value 23;
              description
                "Endpoint source address is invalid - cannot be
               same as endpoint destination";
            }
            enum "invalid-seg-list" {
              value 24;
              description
                "Segment list is invalid or not created";
            }
            enum "invalid-seg-list-version" {
              value 25;
              description
                "Segment list data is outdated";
            }
            enum "interface-ipv4-protocol-down" {
              value 26;
              description
                "IPv4 protocol is down for this interface";
            }
            enum "interface-ipv6-protocol-down" {
              value 27;
              description
                "IPv6 protocol is down for this interface";
            }
            enum "interface-ip-protocol-down" {
              value 28;
              description
                "Both IPv4 protocol and IPv6 protocol are down
               for this interface";
            }
            enum
              "interface-next-hop-mac-missing" {
              value 29;
              description
                "Next hop MAC address missing";
            }
            enum "ep-loopback-without-seglist" {
              value 30;
              description
                "Endpoint Loopback mode without segment list";
            }
          }
          description
            "PM probe not running reason";
        }
    
        typedef Pm-advert-reason {
          type enumeration {
            enum "no-advertisements" {
              value 0;
              description
                "Periodic timer expired. No advertisements have
               occured";
            }
            enum
              "periodic-advertisement-threshold-average" {
              value 1;
              description
                "Periodic timer expired. Average value threshold
               crossed";
            }
            enum
              "periodic-advertisement-threshold-minimum" {
              value 2;
              description
                "Periodic timer expired. Minimum value threshold
               crossed";
            }
            enum
              "periodic-advertisement-threshold-maximum" {
              value 3;
              description
                "Periodic timer expired. Maximum value threshold
               crossed";
            }
            enum
              "periodic-advertisement-threshold-variance" {
              value 4;
              description
                "Periodic timer expired. Variance value
               threshold crossed";
            }
            enum
              "accelerated-advertisement-threshold-average" {
              value 5;
              description
                "Accelerated average value threshold crossed";
            }
            enum
              "accelerated-advertisement-threshold-minimum" {
              value 6;
              description
                "Accelerated minimum value threshold crossed";
            }
            enum
              "accelerated-advertisement-threshold-maximum" {
              value 7;
              description
                "Accelerated maximum value threshold crossed";
            }
            enum
              "accelerated-advertisement-upper-bound-average" {
              value 8;
              description
                "Accelerated average value upper bound crossed";
            }
            enum
              "accelerated-advertisement-upper-bound-minimum" {
              value 9;
              description
                "Accelerated minimum value upper bound crossed";
            }
            enum
              "accelerated-advertisement-upper-bound-maximum" {
              value 10;
              description
                "Accelerated maximum value upper bound crossed";
            }
            enum
              "anomaly-check-advertisement-min-dynamic-delay" {
              value 11;
              description
                "Min delay A flag toggled and dynamic delay
               measurement is in effect";
            }
            enum
              "anomaly-check-advertisement-min-static-delay" {
              value 12;
              description
                "Min delay A flag toggled and static delay is in
               effect";
            }
            enum "advertisement-enabled" {
              value 13;
              description
                "Advertisement enabled";
            }
            enum "advertisement-disabled" {
              value 14;
              description
                "Advertisement disabled";
            }
            enum "session-unconfigured" {
              value 15;
              description "Session unconfigured";
            }
            enum "clear-cli-command" {
              value 16;
              description
                "Session cleared via CLI";
            }
            enum "advertise-delay-config" {
              value 17;
              description
                "Advertise delay config";
            }
            enum "advertise-delay-unconfig" {
              value 18;
              description
                "Advertise delay unconfig";
            }
            enum "received-control-code-error" {
              value 19;
              description
                "Recevied control code error, as per RFC 6374,
               from the responder";
            }
            enum "first-advertisement" {
              value 20;
              description "First advertisement";
            }
            enum "link-is-down" {
              value 21;
              description
                "Link is in down state";
            }
            enum "new-child-session" {
              value 22;
              description
                "Advertisement occured due to a new child
               session";
            }
            enum "invalid-measurement" {
              value 23;
              description
                "Performance measurement metrics withdrawn due
               to measurement error";
            }
            enum
              "dynamic-delay-measurement-in-effect" {
              value 24;
              description
                "Advertisement occured due to dynamic delay
               measurement is in effect";
            }
          }
          description "PM advertisement reason";
        }
    
        typedef Pm-xtc-srpolicy-origin {
          type enumeration {
            enum "candidate-path-origin-invalid" {
              value 0;
              description "Invalid Origin Type";
            }
            enum "candidate-path-origin-pce" {
              value 10;
              description
                "Candidate-path From PCE";
            }
            enum "candidate-path-origin-bgp" {
              value 20;
              description
                "Candidate-path From BGP";
            }
            enum
              "candidate-path-origin-configured" {
              value 30;
              description
                "Candidate-path From Configuration";
            }
          }
          description
            "Candidate-path Orign Type Shared By PM And XTC";
        }
    
        typedef Pm-ipv6-addr {
          type inet:ipv6-address;
          description "Pm ipv6 addr";
        }
    
        typedef Pm-ipv4-addr {
          type inet:ipv4-address;
          description "Pm ipv4 addr";
        }
    
        typedef Pm-addr {
          type enumeration {
            enum "ipv4" {
              value 0;
              description "IPv4";
            }
            enum "ipv6" {
              value 1;
              description "IPv6";
            }
            enum "unknown" {
              value 2;
              description "Unknown";
            }
          }
          description "Type of PM address";
        }
    
        grouping PM-NAME-PROFILE-UNION {
          description "PM Name profile union";
          container delay {
            when
              "../measurement-type = 'delay-measurement-type'" {
              description
                "../MeasurementType = 'DelayMeasurementType'";
            }
            description
              "Delay-Measurement name profile bag";
            uses PM-DELAY-TRANSPORT-PROFILE-BAG;
          }  // container delay
    
          container loss {
            when
              "../measurement-type = 'loss-measurement-type'" {
              description
                "../MeasurementType = 'LossMeasurementType'";
            }
            description
              "Loss-Measurement name profile bag";
            uses PM-LOSS-TRANSPORT-PROFILE-BAG;
          }  // container loss
    
          container liveness {
            when
              "../measurement-type = 'liveness-detection-type'" {
              description
                "../MeasurementType = 'LivenessDetectionType'";
            }
            description
              "Liveness-detection name profile bag";
            uses PM-LIVENESS-TRANSPORT-PROFILE-BAG;
          }  // container liveness
    
          leaf measurement-type {
            type Pm-measurement;
            description "MeasurementType";
          }
        }  // grouping PM-NAME-PROFILE-UNION
    
        grouping PM-NAME-PROFILE-BAG {
          description "PM Name Profile bag";
          container profile {
            description "Profile bag";
            uses PM-NAME-PROFILE-UNION;
          }  // container profile
    
          leaf name {
            type string;
            description "Profile name";
          }
    
          leaf transport-type {
            type Pm-transport;
            description "Transport type";
          }
        }  // grouping PM-NAME-PROFILE-BAG
    
        grouping PM-DR-SESSION-INFO {
          description "PM DR SESSION INFO";
          leaf distribution-record-name {
            type string;
            description
              "Name of the distribution record";
          }
    
          leaf lsp-id {
            type uint32;
            description "LSP ID";
          }
    
          leaf delay-notification-received {
            type boolean;
            description
              "True if the delay notification message was
             received";
          }
    
          leaf liveness-notification-received {
            type boolean;
            description
              "True if the liveness notification message was
             received";
          }
        }  // grouping PM-DR-SESSION-INFO
    
        grouping PM-DR-INFO {
          description
            "PM session distribution record information";
          leaf distribution-record-name {
            type string;
            description
              "Name of the distribution record";
          }
    
          leaf linecard-name {
            type string;
            description "Name of the linecard";
          }
    
          leaf record-creation-timestamp {
            type uint64;
            units "second";
            description
              "Time when the distribution record were created
             (seconds since Jan. 1, 1970)";
          }
    
          list session {
            description "List of DR sessions";
            uses PM-DR-SESSION-INFO;
          }  // list session
        }  // grouping PM-DR-INFO
    
        grouping PM-PPS-TRANSPORT-INFO {
          description
            "PPS resource information bag for one type of
           session";
          leaf pps-budget {
            type uint32;
            units "packet/s";
            description
              "Packets per second resource assigned for this
             type of session";
          }
    
          leaf requested-pps {
            type uint32;
            units "packet/s";
            description
              "Packets per second requested";
          }
    
          leaf current-multi-hop-burst-interval-stretch-factor {
            type uint32;
            units "percentage";
            description
              "Multi hop session's burst interval stretch
             factor percentage current value";
          }
    
          leaf dampened-multi-hop-burst-interval-stretch-factor {
            type uint32;
            units "percentage";
            description
              "Multi hop session's burst interval stretch
             factor percentage dampened value";
          }
    
          leaf inuse-multi-hop-burst-interval-stretch-factor {
            type uint32;
            units "percentage";
            description
              "Multi hop session's burst interval stretch
             factor percentage inuse value";
          }
        }  // grouping PM-PPS-TRANSPORT-INFO
    
        grouping PM-MULTI-PPS-POOL-BAG {
          description "Split type PPS pool";
          leaf maximum-pps-for-interface-session {
            type uint32;
            units "packet/s";
            description
              "Total maximum packets per second allowed for
             Interface sessions";
          }
    
          leaf total-pps-requested-for-interface-session {
            type uint32;
            units "packet/s";
            description
              "Total packets per second requested for Interface
             sessions";
          }
    
          leaf maximum-pps-for-mutihop-session {
            type uint32;
            units "packet/s";
            description
              "Total maximum packets per second allowed for
             multi-hop delay sessions";
          }
    
          leaf total-pps-requested-for-mh-session {
            type uint32;
            units "packet/s";
            description
              "Total packets per second requested for multi-hop
             delay sessions";
          }
    
          leaf minimum-pps-budget {
            type uint32;
            description
              "Guaranteed Minimum PPS budget per transport type";
          }
    
          leaf pps-budget-rebalance-threshold {
            type uint32;
            description
              "PPS budget will be rebalanced when the changed
             requested PPS crosses this threshold";
          }
        }  // grouping PM-MULTI-PPS-POOL-BAG
    
        grouping PM-SINGLE-PPS-POOL-BAG {
          description "Shared type PPS pool";
          leaf maximum-pps-for-all-session {
            type uint32;
            units "packet/s";
            description
              "Total maximum packets per second allowed for all
             the sessions";
          }
    
          leaf total-pps-requested {
            type uint32;
            units "packet/s";
            description
              "Total packets per second requested for all the
             sessions";
          }
    
          leaf minimum-pps-budget {
            type uint32;
            description
              "Guaranteed Minimum PPS budget per transport type";
          }
    
          leaf pps-budget-rebalance-threshold {
            type uint32;
            description
              "PPS budget will be rebalanced when the changed
             requested PPS crosses this threshold";
          }
        }  // grouping PM-SINGLE-PPS-POOL-BAG
    
        grouping PM-PPS-POOL-UNION {
          description "PPS Pool type";
          container single-pps-pool {
            when
              "../pps-pool-type = 'single-pps-pool'" {
              description
                "../PPSPoolType = 'SinglePPSPool'";
            }
            description "Single PPS pool";
            uses PM-SINGLE-PPS-POOL-BAG;
          }  // container single-pps-pool
    
          container multiple-pps-pool {
            when
              "../pps-pool-type = 'multiple-pps-pool'" {
              description
                "../PPSPoolType = 'MultiplePPSPool'";
            }
            description "Multiple PPS pool";
            uses PM-MULTI-PPS-POOL-BAG;
          }  // container multiple-pps-pool
    
          leaf pps-pool-type {
            type Pm-rl-pps-pool;
            description "PPSPoolType";
          }
        }  // grouping PM-PPS-POOL-UNION
    
        grouping PM-PPS-SUMMARY-BAG {
          description
            "PM Summary Rate Limiting bag";
          container pps-pool {
            description "PPS resource pool";
            uses PM-PPS-POOL-UNION;
          }  // container pps-pool
    
          container interface-session-info {
            description
              "Information for interface performance
             measurement sessions";
            uses PM-PPS-TRANSPORT-INFO;
          }  // container interface-session-info
    
          container sr-policy-session-info {
            description
              "Information for SR Policy performance
             measurement sessions";
            uses PM-PPS-TRANSPORT-INFO;
          }  // container sr-policy-session-info
    
          container rsvp-te-session-info {
            description
              "Information for RSVP-TE tunnel performance
             measurement sessions";
            uses PM-PPS-TRANSPORT-INFO;
          }  // container rsvp-te-session-info
    
          container endpoint-session-info {
            description
              "Information for Endpoint performance measurement
             sessions";
            uses PM-PPS-TRANSPORT-INFO;
          }  // container endpoint-session-info
        }  // grouping PM-PPS-SUMMARY-BAG
    
        grouping PM-LIVENESS-DETECTION-BAG {
          description
            "Liveness detection state information bag";
          leaf multiplier {
            type uint8;
            description "Detect multiplier";
          }
    
          leaf logging-state-change-enabled {
            type boolean;
            description
              "Emit syslog when the state of the session
             changes";
          }
        }  // grouping PM-LIVENESS-DETECTION-BAG
    
        grouping PM-LIVENESS-DETECTION-UNION {
          description
            "PM liveness detection profile union";
          container sr-policy-liveness-detection {
            when
              "../transport-type = 'sr-policy-transport-type'" {
              description
                "../TransportType = 'SRPolicyTransportType'";
            }
            description
              "Liveness detection info of SR Policy";
            uses PM-LIVENESS-DETECTION-BAG;
          }  // container sr-policy-liveness-detection
    
          container ep-liveness-detection {
            when
              "../transport-type = 'endpoiont-transport-type'" {
              description
                "../TransportType = 'EndpoiontTransportType'";
            }
            description
              "Liveness detection info of Endpoint";
            uses PM-LIVENESS-DETECTION-BAG;
          }  // container ep-liveness-detection
    
          leaf transport-type {
            type Pm-transport;
            description "TransportType";
          }
        }  // grouping PM-LIVENESS-DETECTION-UNION
    
        grouping PM-LIVENESS-TRANSPORT-PROFILE-BAG {
          description
            "PM interface liveness profile bag";
          container destination-sweeping-address {
            description
              "IPv4/IPv6 sweeping address";
            uses PM-IP-ADDR-TYPE;
          }  // container destination-sweeping-address
    
          container liveness-detection-config {
            description
              "Liveness detection config";
            uses PM-LIVENESS-DETECTION-UNION;
          }  // container liveness-detection-config
    
          leaf tos-dscp-value {
            type uint8;
            description
              "TOS DSCP value specified for protocol
             TWAMP-LIGHT";
          }
    
          leaf burst-interval {
            type uint32;
            description "Burst Interval (msec)";
          }
    
          leaf burst-interval-effective {
            type uint32;
            description
              "Effective Burst Interval (msec)";
          }
    
          leaf delay-measurement-mode {
            type Pm-delay-mode;
            description
              "Delay Measurement Mode Type";
          }
    
          leaf payload-type {
            type Pm-payload;
            description
              "Type of the probe packet payload";
          }
    
          leaf encap-mode {
            type Pm-encap-mode;
            description "Encap Mode";
          }
    
          leaf destination-sweeping-mode-enabled {
            type boolean;
            description
              "Measure liveness detection with ECMP hashing by
             sweeping destination address";
          }
    
          leaf destination-sweeping-range {
            type uint32;
            description
              "Number of IP addresses to sweep";
          }
        }  // grouping PM-LIVENESS-TRANSPORT-PROFILE-BAG
    
        grouping PM-LIVENESS-PROFILE-BAG {
          description "PM Liveness Profile bag";
          container sr-policy-liveness-profile {
            description
              "Profile of SR Policy liveness detection ";
            uses PM-LIVENESS-TRANSPORT-PROFILE-BAG;
          }  // container sr-policy-liveness-profile
    
          container endpoint-liveness-profile {
            description
              "Profile of Endpoint liveness detection ";
            uses PM-LIVENESS-TRANSPORT-PROFILE-BAG;
          }  // container endpoint-liveness-profile
        }  // grouping PM-LIVENESS-PROFILE-BAG
    
        grouping PM-LOSS-TRANSPORT-PROFILE-BAG {
          description
            "PM interface loss measurement profile bag";
          leaf probe-interval {
            type uint32;
            description "Probe Interval (sec)";
          }
    
          leaf encap-mode {
            type Pm-encap-mode;
            description "Encap Mode";
          }
    
          leaf periodic-advertisement-enabled {
            type boolean;
            description
              "Advertisement Periodic Enabled";
          }
    
          leaf periodic-advertisement-interval {
            type uint32;
            description
              "Advertisement Periodic Interval (sec)";
          }
    
          leaf effective-periodic-advertisement-interval {
            type uint32;
            description
              "Advertisement Periodic Effective (sec)";
          }
    
          leaf periodic-advertisement-threshold {
            type uint32;
            description
              "Advertisement Periodic Threshold (%)";
          }
    
          leaf periodic-advertisement-minimum-change {
            type uint32;
            description
              "Advertisement Periodic Minimum Change (uSec)";
          }
    
          leaf accelerated-advertisement-threshold {
            type uint32;
            description
              "Advertisement Accelerated Threshold (%)";
          }
    
          leaf accelerated-advertisement-minimum-change {
            type uint32;
            description
              "Advertisement Accelerated Minimum Change (uSec)";
          }
    
          leaf accelerated-advertisement-enabled {
            type boolean;
            description
              "Advertisement Accelerated Enabled";
          }
        }  // grouping PM-LOSS-TRANSPORT-PROFILE-BAG
    
        grouping PM-LOSS-PROFILE-BAG {
          description
            "PM loss measurement profile bag";
          container interface-delay-profile {
            description
              "Profile info of Interface loss measurement";
            uses PM-LOSS-TRANSPORT-PROFILE-BAG;
          }  // container interface-delay-profile
        }  // grouping PM-LOSS-PROFILE-BAG
    
        grouping PM-DELAY-TRANSPORT-PROFILE-BAG {
          description
            "PM interface delay profile bag";
          container destination-sweeping-address {
            description
              "IPv4/IPv6 sweeping address";
            uses PM-IP-ADDR-TYPE;
          }  // container destination-sweeping-address
    
          leaf probe-computation-interval {
            type uint32;
            description
              "Probe Computation Interval (sec)";
          }
    
          leaf probe-computation-interval-effective {
            type uint32;
            description
              "Effective Probe Computation Interval (sec)";
          }
    
          leaf tos-traffic-class-value {
            type uint8;
            description
              "TOS Traffic Class value specified for protocol
             PM-MPLS";
          }
    
          leaf tos-dscp-value {
            type uint8;
            description
              "TOS DSCP value specified for protocol
             TWAMP-LIGHT";
          }
    
          leaf burst-interval {
            type uint32;
            description "Burst Interval (msec)";
          }
    
          leaf burst-interval-effective {
            type uint32;
            description
              "Effective Burst Interval (msec)";
          }
    
          leaf burst-count {
            type uint32;
            description
              "Number of burst in one probe";
          }
    
          leaf delay-measurement-mode {
            type Pm-delay-mode;
            description
              "Delay Measurement Mode Type";
          }
    
          leaf router-alert {
            type boolean;
            description "IP router alert option";
          }
    
          leaf encap-mode {
            type Pm-encap-mode;
            description "Encap Mode";
          }
    
          leaf payload-type {
            type Pm-payload;
            description
              "Type of the probe packet payload";
          }
    
          leaf destination-sweeping-mode-enabled {
            type boolean;
            description
              "Measure the delay with ECMP hashing by sweeping
             destination address";
          }
    
          leaf destination-sweeping-range {
            type uint32;
            description
              "Number of IP addresses to sweep";
          }
    
          leaf periodic-advertisement-enabled {
            type boolean;
            description
              "Advertisement Periodic Enabled";
          }
    
          leaf periodic-advertisement-interval {
            type uint32;
            description
              "Advertisement Periodic Interval (sec)";
          }
    
          leaf periodic-advertisement-interval-effective {
            type uint32;
            description
              "Advertisement Periodic Effective (sec)";
          }
    
          leaf periodic-advertisement-threshold {
            type uint32;
            description
              "Advertisement Periodic Threshold (%)";
          }
    
          leaf periodic-advertisement-minimum-change {
            type uint32;
            description
              "Advertisement Periodic Minimum Change (uSec)";
          }
    
          leaf accelerated-advertisement-threshold {
            type uint32;
            description
              "Advertisement Accelerated Threshold (%)";
          }
    
          leaf accelerated-advertisement-minimum-change {
            type uint32;
            description
              "Advertisement Accelerated Minimum Change (uSec)";
          }
    
          leaf advertisement-logging-delay-exceeded-enabled {
            type boolean;
            description
              "Enable emitting syslog when delay exceeds
             threshold";
          }
    
          leaf accelerated-advertisement-enabled {
            type boolean;
            description
              "Advertisement Accelerated Enabled";
          }
    
          leaf advertisement-threshold-check-average-delay {
            type boolean;
            description
              "Check Average-delay For Advertisement Threshold
             Crossing";
          }
    
          leaf advertisement-threshold-check-minimum-delay {
            type boolean;
            description
              "Check Minimum-delay For Advertisement Threshold
             Crossing";
          }
    
          leaf advertisement-threshold-check-maximum-delay {
            type boolean;
            description
              "Check Maximum-delay For Advertisement Threshold
             Crossing";
          }
    
          leaf anomaly-check-advertisement-upper-bound {
            type uint32;
            description
              "Advertisement Anomaly Check Upper Bound (uSec)";
          }
    
          leaf anomaly-check-advertisement-lower-bound {
            type uint32;
            description
              "Advertisement Anomaly Check Lower Bound (uSec)";
          }
    
          leaf anomaly-check-advertisement-enabled {
            type boolean;
            description
              "Advertisement Anomaly Check Enabled";
          }
        }  // grouping PM-DELAY-TRANSPORT-PROFILE-BAG
    
        grouping PM-DELAY-PROFILE-BAG {
          description "PM Delay Profile bag";
          container interface-delay-profile {
            description
              "Profile of Interface delay measurement";
            uses PM-DELAY-TRANSPORT-PROFILE-BAG;
          }  // container interface-delay-profile
    
          container sr-policy-delay-profile {
            description
              "Profile of SR Policy delay measurement";
            uses PM-DELAY-TRANSPORT-PROFILE-BAG;
          }  // container sr-policy-delay-profile
    
          container rsvp-te-delay-profile {
            description
              "Profile of RSVP-TE delay measurement";
            uses PM-DELAY-TRANSPORT-PROFILE-BAG;
          }  // container rsvp-te-delay-profile
    
          container endpoint-delay-profile {
            description
              "Profile of Endpoint delay measurement";
            uses PM-DELAY-TRANSPORT-PROFILE-BAG;
          }  // container endpoint-delay-profile
        }  // grouping PM-DELAY-PROFILE-BAG
    
        grouping PM-PROFILE-BAG {
          description "PM Profile bag";
          container delay-profile {
            description
              "Profile info of delay measurement";
            uses PM-DELAY-PROFILE-BAG;
          }  // container delay-profile
    
          container loss-profile {
            description
              "Profile info of loss measurement";
            uses PM-LOSS-PROFILE-BAG;
          }  // container loss-profile
    
          container liveness-profile {
            description
              "Profile info of liveness detection";
            uses PM-LIVENESS-PROFILE-BAG;
          }  // container liveness-profile
        }  // grouping PM-PROFILE-BAG
    
        grouping PM-INTF-LAST-ADVERT-BAG {
          description
            "PM interface delay last advertisement bag";
          container last-advertisement {
            description
              "Last advertisement info for delay measurement";
            uses PM-SCB-LAST-ADVERT-BAG;
          }  // container last-advertisement
        }  // grouping PM-INTF-LAST-ADVERT-BAG
    
        grouping PM-INTF-LAST-PROBE-BAG {
          description
            "PM interface delay last probe bag";
          container last-probe {
            description
              "Last probe info for delay measurement";
            uses PM-PROBE-SAMPLE-BAG;
          }  // container last-probe
        }  // grouping PM-INTF-LAST-PROBE-BAG
    
        grouping PM-INTF-LAST-AGGR-BAG {
          description
            "PM interface delay last aggregation bag";
          container last-aggregation {
            description
              "Last aggregation interval";
            uses PM-AGGR-SAMPLE-BAG;
          }  // container last-aggregation
    
          leaf interface-name-xr {
            type string;
            description "Interface name";
          }
    
          leaf interface-handle {
            type uint32;
            description "Interface handle";
          }
        }  // grouping PM-INTF-LAST-AGGR-BAG
    
        grouping PM-INTF-HISTORY-BAG {
          description "PM interface history bag";
          container history-info {
            description
              "History info of the interface";
            uses PM-HISTORY-SAMPLE-UNION;
          }  // container history-info
    
          leaf interface-name-xr {
            type string;
            description "Name of the interface";
          }
    
          leaf interface-handle {
            type uint32;
            description
              "Ifhandle of the interface";
          }
        }  // grouping PM-INTF-HISTORY-BAG
    
        grouping PM-LOSS-ADVERTISEMENT-BAG {
          description " PM loss advertisement";
          leaf loss-percentage {
            type uint32;
            units "percentage";
            description "Packet loss percentage";
          }
    
          leaf timestamp-of-advertisement {
            type uint64;
            description
              "Advertisement timestamp";
          }
    
          leaf advertisement-reason {
            type Pm-advert-reason;
            description "Advertisement reason";
          }
        }  // grouping PM-LOSS-ADVERTISEMENT-BAG
    
        grouping PM-LOSS-WINDOW-BAG {
          description "PM loss window";
          leaf last-tx-packet-counter {
            type uint64;
            description "Last TX packet counter";
          }
    
          leaf last-rx-packet-counter {
            type uint64;
            description "Last RX packet counter";
          }
    
          leaf current-packet-tx-in-window {
            type uint64;
            description
              "Current packet TX in window";
          }
    
          leaf current-packet-rx-in-window {
            type uint64;
            description
              "Current packet RX in window";
          }
    
          leaf loss-percentage {
            type uint32;
            units "percentage";
            description "Packet loss percentage";
          }
        }  // grouping PM-LOSS-WINDOW-BAG
    
        grouping PM-INTF-LOSS-SUB-SESSION-BAG {
          description
            "Interface loss-measurement sub-session bag";
          container probe-window {
            description "Probe window loss";
            uses PM-LOSS-WINDOW-BAG;
          }  // container probe-window
    
          container periodic-window {
            description "Periodic window loss";
            uses PM-LOSS-WINDOW-BAG;
          }  // container periodic-window
    
          leaf interface-name {
            type string;
            description "Interface name";
          }
    
          leaf interface-handle {
            type uint32;
            description "Interface handle";
          }
    
          leaf interface-state-is-up {
            type boolean;
            description
              "True if interface state is up";
          }
    
          leaf session-id {
            type uint32;
            description "Session ID";
          }
    
          leaf rolling-average {
            type uint32;
            description "Rolling average";
          }
        }  // grouping PM-INTF-LOSS-SUB-SESSION-BAG
    
        grouping PM-INTF-LOSS-SESSION-BAG {
          description
            "Interface loss-measurement session";
          container probe-window {
            description "Probe window loss";
            uses PM-LOSS-WINDOW-BAG;
          }  // container probe-window
    
          container periodic-window {
            description "Periodic window loss";
            uses PM-LOSS-WINDOW-BAG;
          }  // container periodic-window
    
          container advertisement {
            description "Loss advertisement";
            uses PM-LOSS-ADVERTISEMENT-BAG;
          }  // container advertisement
    
          leaf session-id {
            type uint32;
            description "Session ID";
          }
    
          leaf rolling-average {
            type uint32;
            description "Rolling average";
          }
    
          leaf next-probe-start-time-remaining-in-millisec {
            type uint32;
            units "millisecond";
            description
              "Time in milliseconds until the next probe starts";
          }
    
          leaf probe-not-running-reason {
            type Pm-probe-running-error-reason;
            description
              "Reason why probe is not running";
          }
    
          list interface-loss-sub-session {
            description
              "Interface loss-measurement sub-sessions";
            uses PM-INTF-LOSS-SUB-SESSION-BAG;
          }  // list interface-loss-sub-session
        }  // grouping PM-INTF-LOSS-SESSION-BAG
    
        grouping PM-INTF-BAG {
          description "PM interface bag";
          container in-use-source-ip-address {
            description
              "Source IP address used for PM probe packet";
            uses PM-IP-ADDR-TYPE;
          }  // container in-use-source-ip-address
    
          container in-use-destination-ip-address {
            description
              "Destination IP address used for PM probe packet";
            uses PM-IP-ADDR-TYPE;
          }  // container in-use-destination-ip-address
    
          container next-hop {
            description
              "Nexthop address of the interface";
            uses PM-IP-ADDR-TYPE;
          }  // container next-hop
    
          container loss-measurement-session {
            description
              "Loss-measurement session";
            uses PM-INTF-LOSS-SESSION-BAG;
          }  // container loss-measurement-session
    
          leaf interface-name-xr {
            type string;
            description "Name of the interface";
          }
    
          leaf interface-handle {
            type uint32;
            description
              "Ifhandle of the interface";
          }
    
          leaf interface-state {
            type boolean;
            description "State of the interface";
          }
    
          leaf source-address {
            type inet:ipv4-address;
            description
              "Source address of the interface";
          }
    
          leaf source-v6-address {
            type inet:ipv6-address;
            description
              "Source IPv6 Address of the interface";
          }
    
          leaf link-local-iv6-address {
            type inet:ipv6-address;
            description
              "Link local IPv6 of the interface";
          }
    
          leaf source-mac-address {
            type yang:mac-address;
            description
              "Source Mac address of the interface";
          }
    
          leaf next-hop-mac-address {
            type yang:mac-address;
            description
              "Next-hop Mac address of the next-hop IP address";
          }
    
          leaf primary-vlan-tag {
            type uint16;
            description
              "Primary VLAN Tag of the interface";
          }
    
          leaf secondary-vlan-tag {
            type uint16;
            description
              "Secondary VLAN Tag of the interface";
          }
    
          list delay-measurement-session {
            description
              "List of all the Delay-measurement sessions of
             the interface";
            uses PM-SCB-BAG;
          }  // list delay-measurement-session
        }  // grouping PM-INTF-BAG
    
        grouping PM-LOSS-TRANSPORT-SUMMARY-BAG {
          description
            "PM interface loss summary bag";
          container loss-transport-counters {
            description
              "TODO: PM loss counters for a transport types";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container loss-transport-counters
    
          leaf total-loss-sessions {
            type uint32;
            description
              "Number of loss measurement sessions enabled";
          }
        }  // grouping PM-LOSS-TRANSPORT-SUMMARY-BAG
    
        grouping PM-LOSS-SUMMARY-BAG {
          description "PM Loss Summary bag";
          container interface-loss-summary {
            description "Interface loss summary";
            uses PM-LOSS-TRANSPORT-SUMMARY-BAG;
          }  // container interface-loss-summary
    
          container delay-global-counters {
            description
              "PM delay global counters";
            uses PM-DELAY-GLOBAL-COUNTERS-BAG;
          }  // container delay-global-counters
        }  // grouping PM-LOSS-SUMMARY-BAG
    
        grouping PM-DELAY-GLOBAL-COUNTERS-BAG {
          description "PM global counters";
          leaf query-packets-sent {
            type uint64;
            description
              "Number of query packets sent";
          }
    
          leaf query-packets-received {
            type uint64;
            description
              "Number of received query packets";
          }
    
          leaf received-packet-error-invalid-session-id {
            type uint64;
            description
              "Number of received packet error caused by
             invalid session ID";
          }
    
          leaf received-packet-error-no-session {
            type uint64;
            description
              "Number of received packet error caused by no
             session";
          }
        }  // grouping PM-DELAY-GLOBAL-COUNTERS-BAG
    
        grouping PM-DELAY-SESSION-COUNTER-BAG {
          description
            "PM delay session counter info bag";
          leaf total-delay-sessions {
            type uint32;
            description
              "Number of delay measurement sessions enabled";
          }
    
          leaf total-probe-running-with-error-delay-sessions {
            type uint32;
            description
              "Number of running with error delay measurement
             sessions";
          }
    
          leaf total-probe-running-delay-sessions {
            type uint32;
            description
              "Number of running delay measurement sessions";
          }
    
          leaf total-probe-running-ipv4-delay-sessions {
            type uint32;
            description
              "Number of running ipv4 delay measurement
             sessions";
          }
    
          leaf total-probe-running-ipv6-delay-sessions {
            type uint32;
            description
              "Number of running ipv6 delay measurement
             sessions";
          }
    
          leaf total-probe-running-mpls-delay-sessions {
            type uint32;
            description
              "Number of running mpls delay measurement
             sessions";
          }
        }  // grouping PM-DELAY-SESSION-COUNTER-BAG
    
        grouping PM-DELAY-TRANSPORT-SUMMARY-BAG {
          description
            "PM interface delay summary bag";
          container delay-session-counters {
            description
              "PM delay session counters for a transport type";
            uses PM-DELAY-SESSION-COUNTER-BAG;
          }  // container delay-session-counters
    
          container delay-transport-counters {
            description
              "PM delay counters for a transport types";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container delay-transport-counters
        }  // grouping PM-DELAY-TRANSPORT-SUMMARY-BAG
    
        grouping PM-DELAY-SUMMARY-BAG {
          description "PM Delay Summary bag";
          container endpoint-delay-summary {
            description
              "Summary of Endpoint delay measurement";
            uses PM-DELAY-TRANSPORT-SUMMARY-BAG;
          }  // container endpoint-delay-summary
    
          container interface-delay-summary {
            description
              "Summary info of Interface delay measurement";
            uses PM-DELAY-TRANSPORT-SUMMARY-BAG;
          }  // container interface-delay-summary
    
          container sr-policy-delay-summary {
            description
              "Summary of SR Policy delay measurement";
            uses PM-DELAY-TRANSPORT-SUMMARY-BAG;
          }  // container sr-policy-delay-summary
    
          container rsvp-te-delay-summary {
            description
              "Summary of RSVP-TE delay measurement";
            uses PM-DELAY-TRANSPORT-SUMMARY-BAG;
          }  // container rsvp-te-delay-summary
    
          container delay-global-counters {
            description
              "Global counters for PM delay measurement";
            uses PM-DELAY-GLOBAL-COUNTERS-BAG;
          }  // container delay-global-counters
        }  // grouping PM-DELAY-SUMMARY-BAG
    
        grouping PM-SUMMARY-BAG {
          description "PM Summary bag";
          container delay-summary {
            description
              "Summary info of delay measurement";
            uses PM-DELAY-SUMMARY-BAG;
          }  // container delay-summary
    
          container loss-summary {
            description "Loss summary";
            uses PM-LOSS-SUMMARY-BAG;
          }  // container loss-summary
    
          leaf total-endpoints {
            type uint32;
            description "Number of endpoints";
          }
    
          leaf total-interfaces {
            type uint32;
            description "Number of interfaces";
          }
    
          leaf total-sr-policies {
            type uint32;
            description "Number of SR Policies";
          }
    
          leaf total-rsvp-te-tunnels {
            type uint32;
            description
              "Number of RSVP-TE tunnels";
          }
        }  // grouping PM-SUMMARY-BAG
    
        grouping PM-SESSION-ENDPOINT-BAG {
          description "PM Endpoint session";
          container end-point-dest-address {
            description
              "Endpoint destination address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-dest-address
    
          container end-point-src-address {
            description
              "Endpoint source address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-src-address
    
          container session {
            description "Endpoint session";
            uses PM-SCB-BAG;
          }  // container session
    
          leaf endpoint-name {
            type string;
            description "Endpoint name";
          }
    
          leaf vrf-name {
            type string;
            description "VRF name";
          }
    
          leaf segment-list-name {
            type string;
            description "Segment-list name";
          }
        }  // grouping PM-SESSION-ENDPOINT-BAG
    
        grouping PM-SESSION-SRPOLICY-BAG {
          description "PM SR Policy session";
          container end-point-address {
            description "End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          container atomic-path {
            description
              "SR Policy atomic path session";
            uses PM-SRPOLICY-ATOMIC-PATH-BAG;
          }  // container atomic-path
    
          leaf color {
            type uint32;
            description "Color";
          }
    
          leaf policy-name {
            type string;
            description "Policy name";
          }
    
          leaf instance {
            type uint32;
            description "Session instance";
          }
    
          leaf preference {
            type uint32;
            description "Preference";
          }
    
          leaf origin {
            type Pm-xtc-srpolicy-origin;
            description "Protocol origin";
          }
    
          leaf discriminator {
            type uint32;
            description "Discriminator";
          }
    
          leaf segment-list-name {
            type string;
            description "Segment-list name";
          }
        }  // grouping PM-SESSION-SRPOLICY-BAG
    
        grouping PM-SESSION-RSVPTE-BAG {
          description "PM RSVP-TE session";
          container lsp-session {
            description "RSVP-TE LSP session";
            uses PM-RSVPTE-LSP-DELAY-BAG;
          }  // container lsp-session
    
          leaf tunnel-name {
            type string;
            description "RSVP-TE tunnel name";
          }
    
          leaf interface-handle {
            type uint32;
            description "Interface handle";
          }
        }  // grouping PM-SESSION-RSVPTE-BAG
    
        grouping PM-SESSION-INTF-BAG {
          description "PM interface session";
          container next-hop {
            description "Nexthop address";
            uses PM-IP-ADDR-TYPE;
          }  // container next-hop
    
          container session {
            description "Interface session";
            uses PM-SCB-BAG;
          }  // container session
    
          leaf interface-name {
            type string;
            description "Interface name";
          }
    
          leaf interface-handle {
            type uint32;
            description "Interface handle";
          }
        }  // grouping PM-SESSION-INTF-BAG
    
        grouping PM-SESSION-BAG-UNION {
          description "PM session union";
          container interface-session {
            when
              "../type = 'interface-transport-type'" {
              description
                "../type = 'InterfaceTransportType'";
            }
            description "Interface session";
            uses PM-SESSION-INTF-BAG;
          }  // container interface-session
    
          container rsvpte-tunnel-session {
            when
              "../type = 'rsvp-te-transport-type'" {
              description
                "../type = 'RSVP_TETransportType'";
            }
            description "RSVP-TE tunnel session";
            uses PM-SESSION-RSVPTE-BAG;
          }  // container rsvpte-tunnel-session
    
          container sr-policy-session {
            when
              "../type = 'sr-policy-transport-type'" {
              description
                "../type = 'SRPolicyTransportType'";
            }
            description "SR Policy session";
            uses PM-SESSION-SRPOLICY-BAG;
          }  // container sr-policy-session
    
          container endpoint-session {
            when
              "../type = 'endpoiont-transport-type'" {
              description
                "../type = 'EndpoiontTransportType'";
            }
            description "Endpoint session";
            uses PM-SESSION-ENDPOINT-BAG;
          }  // container endpoint-session
    
          leaf type {
            type Pm-transport;
            description "type";
          }
        }  // grouping PM-SESSION-BAG-UNION
    
        grouping PM-SESSION-BAG {
          description "PM session";
          container session {
            description "Session union";
            uses PM-SESSION-BAG-UNION;
          }  // container session
    
          leaf measurement-type {
            type Pm-measurement;
            description "Measurement type";
          }
        }  // grouping PM-SESSION-BAG
    
        grouping PM-SCB-BAG {
          description
            "PM interface delay measurement session bag";
          container current-probe {
            description
              "Information for the current probe";
            uses PM-SCB-PROBE-BAG;
          }  // container current-probe
    
          container session-counters {
            description
              "Counters info for the session";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container session-counters
    
          container last-advertisement-information {
            description
              "Last advertisement information of the session";
            uses PM-SCB-LAST-ADVERT-BAG;
          }  // container last-advertisement-information
    
          container next-advertisement-information {
            description
              "Next advertisement information of the session";
            uses PM-SCB-NEXT-ADVERT-BAG;
          }  // container next-advertisement-information
    
          container last-notification-control-code {
            description
              "Last notifcation control code received of the
             session";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-notification-control-code
    
          container last-error-control-code {
            description
              "Last error control code received of the session";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-error-control-code
    
          container responder-address {
            description
              "Address of the Responder";
            uses PM-IP-ADDR-TYPE;
          }  // container responder-address
    
          leaf session-id {
            type uint32;
            description "ID of the session";
          }
    
          leaf transport-type {
            type Pm-transport;
            description
              "Transport Type of the session";
          }
    
          leaf measurement-type {
            type Pm-measurement;
            description
              "Measurement Type of the session";
          }
    
          leaf profile-name {
            type string;
            description
              "Interface delay-measurement profile name";
          }
    
          leaf periodic-advertisement-interval-in-sec {
            type uint32;
            units "second";
            description
              "Interval of periodic advertisement in seconds";
          }
    
          leaf query-number-of-hops {
            type uint8;
            description
              "Number of hops traversed by the query packet";
          }
    
          list probe-history {
            description "Current probe history";
            uses PM-SCB-SAMPLE-BAG;
          }  // list probe-history
        }  // grouping PM-SCB-BAG
    
        grouping PM-ENDPOINT-DETAIL-SEGMENT-LIST-BAG {
          description
            "PM Endpoint segment-list bag";
          leaf segment-list-name {
            type string;
            description
              "Name of the segment-list";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
    
          list delay-measurement-session {
            description
              "List of all the Delay-measurement sessions of
             this segment-list";
            uses PM-SCB-BAG;
          }  // list delay-measurement-session
        }  // grouping PM-ENDPOINT-DETAIL-SEGMENT-LIST-BAG
    
        grouping PM-ENDPOINT-CONSOLIDATED-DETAIL-BAG {
          description
            "PM endpoint consolidated details bag";
          leaf ep-cons-profile-name {
            type string;
            description
              "Endpoint delay-measurement profile name";
          }
    
          list ep-segment-list {
            description
              "List of segment-lists in the endpoint";
            uses PM-ENDPOINT-DETAIL-SEGMENT-LIST-BAG;
          }  // list ep-segment-list
        }  // grouping PM-ENDPOINT-CONSOLIDATED-DETAIL-BAG
    
        grouping PM-ENDPOINT-DETAIL {
          description "PM Endpoint instance";
          container end-point-address {
            description
              "IPv4/IPv6 End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          container end-point-session-source-address {
            description
              "IPv4/IPv6 End point session source address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-session-source-address
    
          leaf endpoint-name {
            type string;
            description
              "Name of the endpoint session";
          }
    
          leaf vrf-name {
            type string;
            description "Name of the VRF";
          }
    
          leaf description {
            type string;
            description "Endpoint Description";
          }
    
          list ep-consolidated-detail {
            description
              "Consolidated Details to hold all segment lists
             of this endpoint";
            uses PM-ENDPOINT-CONSOLIDATED-DETAIL-BAG;
          }  // list ep-consolidated-detail
        }  // grouping PM-ENDPOINT-DETAIL
    
        grouping PM-ENDPOINT-COMMON {
          description "PM Endpoint common bag";
          leaf endpoint-name-xr {
            type string;
            description
              "Name of the endpoint session";
          }
    
          list endpoint-delay {
            description
              "List of Endpoint delay measurement";
            uses PM-ENDPOINT-DETAIL;
          }  // list endpoint-delay
    
          list endpoint-liveness {
            description
              "List of Endpoint liveness";
            uses PM-ENDPOINT-LIVENESS;
          }  // list endpoint-liveness
        }  // grouping PM-ENDPOINT-COMMON
    
        grouping PM-ENDPOINT-SEGMENT-LIST-COUNTERS-BAG {
          description
            "PM endpoint segment-list counters bag";
          container counters {
            description "Segment-list counters";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container counters
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
        }  // grouping PM-ENDPOINT-SEGMENT-LIST-COUNTERS-BAG
    
        grouping PM-ENDPOINT-CONSOLIDATED-COUNTERS-DATA-BAG {
          description
            "PM endpoint consolidated counters data bag";
          list segment-list-counter {
            description
              "List of counters for segment-lists in this
             consolidated data";
            uses PM-ENDPOINT-SEGMENT-LIST-COUNTERS-BAG;
          }  // list segment-list-counter
        }  // grouping PM-ENDPOINT-CONSOLIDATED-COUNTERS-DATA-BAG
    
        grouping PM-ENDPOINT-COUNTERS-BAG {
          description "PM endpoint counters bag";
          leaf endpoint-name-xr {
            type string;
            description
              "Name of the endpoint session";
          }
    
          list consolidated-counters-data {
            description
              "List of consolidated data counters";
            uses PM-ENDPOINT-CONSOLIDATED-COUNTERS-DATA-BAG;
          }  // list consolidated-counters-data
        }  // grouping PM-ENDPOINT-COUNTERS-BAG
    
        grouping PM-ENDPOINT-HISTORY-SEGMENT-LIST-BAG {
          description
            "PM endpoint segment-list history bag";
          container history-info {
            description
              "History info of the segment-list";
            uses PM-HISTORY-SAMPLE-UNION;
          }  // container history-info
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
        }  // grouping PM-ENDPOINT-HISTORY-SEGMENT-LIST-BAG
    
        grouping PM-ENDPOINT-HISTORY-BAG {
          description "PM endpoint history bag";
          container end-point-address {
            description
              "IPv4/IPv6 End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          container end-point-session-source-address {
            description
              "IPv4/IPv6 End point session source address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-session-source-address
    
          leaf endpoint-name-xr {
            type string;
            description
              "Name of the endpoint session";
          }
    
          leaf vrf-name {
            type string;
            description "Name of the VRF";
          }
    
          leaf ep-liveness-detection-enabled {
            type boolean;
            description
              "True if liveness detection is enabled for the
             endpoint";
          }
    
          list ep-segment-lists-history {
            description "List of segment-lists";
            uses PM-ENDPOINT-HISTORY-SEGMENT-LIST-BAG;
          }  // list ep-segment-lists-history
        }  // grouping PM-ENDPOINT-HISTORY-BAG
    
        grouping PM-ENDPOINT-SEGMENT-LIST-METRICS-BAG {
          description
            "PM Endpoint segment-list metrics bag";
          container metrics {
            description "Segment-list metrics";
            uses PM-VALUES-BAG;
          }  // container metrics
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
    
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Time when the metrics were computed
             (milliseconds since Jan. 1, 1970)";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
        }  // grouping PM-ENDPOINT-SEGMENT-LIST-METRICS-BAG
    
        grouping PM-ENDPOINT-CONSOLIDATED-METRICS-BAG {
          description
            "PM Endpoint consolidated metrics bag";
          list ep-segment-list {
            description "List of segment-lists";
            uses PM-ENDPOINT-SEGMENT-LIST-METRICS-BAG;
          }  // list ep-segment-list
        }  // grouping PM-ENDPOINT-CONSOLIDATED-METRICS-BAG
    
        grouping PM-ENDPOINT-METRICS-BAG {
          description "PM Endpoint metrics bag";
          leaf endpoint-name-xr {
            type string;
            description "Name of the Endpoint";
          }
    
          list ep-consolidated-metric {
            description
              "List of Consolidated Metrics of all segment
             lists";
            uses PM-ENDPOINT-CONSOLIDATED-METRICS-BAG;
          }  // list ep-consolidated-metric
        }  // grouping PM-ENDPOINT-METRICS-BAG
    
        grouping PM-ENDPOINT-LIVENESS-SEGMENT-LIST-BAG {
          description
            "PM endpoint liveness segment list bag";
          container ep-liveness-info {
            description
              "Information of endpoint liveness detection
             session";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container ep-liveness-info
    
          leaf segment-list-name {
            type string;
            description
              "Name of the segment-list";
          }
    
          leaf session-id {
            type uint32;
            description "ID of the session";
          }
    
          leaf liveness-detection-enabled {
            type boolean;
            description
              "Liveness detection is enabled";
          }
    
          leaf probe-not-running-reason {
            type Pm-probe-running-error-reason;
            description
              "Reason why probe is not running";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
        }  // grouping PM-ENDPOINT-LIVENESS-SEGMENT-LIST-BAG
    
        grouping PM-ENDPOINT-CONSOLIDATED-LIVENESS-BAG {
          description
            "PM endpoint consolidated liveness bag";
          leaf ep-live-profile-name {
            type string;
            description
              "Endpoint liveness-detection profile name";
          }
    
          list ep-liveness-segment-list {
            description
              "List of liveness segment-lists in the endpoint";
            uses PM-ENDPOINT-LIVENESS-SEGMENT-LIST-BAG;
          }  // list ep-liveness-segment-list
        }  // grouping PM-ENDPOINT-CONSOLIDATED-LIVENESS-BAG
    
        grouping PM-ENDPOINT-LIVENESS {
          description
            "PM Endpoint liveness-detection bag";
          container end-point-address {
            description
              "IPv4/IPv6 End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          container end-point-session-source-address {
            description
              "IPv4/IPv6 End point session source address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-session-source-address
    
          leaf endpoint-name-xr {
            type string;
            description
              "Name of the endpoint session";
          }
    
          leaf vrf-name {
            type string;
            description "Name of the VRF";
          }
    
          list ep-consolidated-liveness {
            description
              "Consolidated liveness details of this endpoint";
            uses PM-ENDPOINT-CONSOLIDATED-LIVENESS-BAG;
          }  // list ep-consolidated-liveness
        }  // grouping PM-ENDPOINT-LIVENESS
    
        grouping PM-CAP-HW-OFFLOAD-INFO {
          description
            "PM hardware offload capability informaation bag";
          leaf hardware-offload-npu-count {
            type uint32;
            description
              "Number of NPU available for Hardware Offload";
          }
    
          leaf hardware-offload-max-supported-inject-pps-limit-per-npu {
            type uint32;
            units "packet/s";
            description
              "Packets per second limit for Hardware Offload
             inject per NPU";
          }
    
          leaf hardware-offload-min-supported-inject-interval-per-npu {
            type uint32;
            description
              "Interval in msec supported for Hardware Offload
             per NPU";
          }
    
          leaf hardware-offload-maxupported-session-number-per-npu {
            type uint32;
            description
              "Max number of sessions supported for Hardware
             Offload per NPU";
          }
        }  // grouping PM-CAP-HW-OFFLOAD-INFO
    
        grouping PM-CAP-PDDLL-INFO {
          description
            "PM PD-DLL capability informaation bag";
          leaf pd-dll-max-supported-inject-pps-limit {
            type uint32;
            units "packet/s";
            description
              "Packets per second limit for PD-DLL inject";
          }
    
          leaf pd-dll-min-supported-inject-interval {
            type uint32;
            description
              "Interval in msec supported for PD-DLL inject";
          }
        }  // grouping PM-CAP-PDDLL-INFO
    
        grouping PM-CAP-SPIO-INFO {
          description
            "PM SPIO capability informaation bag";
          leaf spio-max-supported-inject-pps-limit {
            type uint32;
            units "packet/s";
            description
              "Packets per second limit for SPIO inject";
          }
    
          leaf spio-min-supported-inject-interval {
            type uint32;
            description
              "Interval in msec supported for SPIO inject";
          }
        }  // grouping PM-CAP-SPIO-INFO
    
        grouping PM-CAP-NETIO-INFO {
          description
            "PM NETIO capability informaation bag";
          leaf netio-max-supported-inject-pps-limit {
            type uint32;
            units "packet/s";
            description
              "Packets per second limit for NETIO inject";
          }
    
          leaf netio-min-supported-inject-interval {
            type uint32;
            description
              "Interval in msec supported for NETIO inject";
          }
        }  // grouping PM-CAP-NETIO-INFO
    
        grouping PM-CAPABILITY-INFO {
          description
            "Performance-measurement capability information";
          container netio-capability-info {
            description
              "Capability information for NETIO";
            uses PM-CAP-NETIO-INFO;
          }  // container netio-capability-info
    
          container spio-capability-info {
            description
              "Capability information for SPIO";
            uses PM-CAP-SPIO-INFO;
          }  // container spio-capability-info
    
          container pd-dll-capability-info {
            description
              "Capability information for PD-DLL";
            uses PM-CAP-PDDLL-INFO;
          }  // container pd-dll-capability-info
    
          container hardware-offload-capability-info {
            description
              "Capability information for Hardware offload";
            uses PM-CAP-HW-OFFLOAD-INFO;
          }  // container hardware-offload-capability-info
    
          leaf netio-supported {
            type boolean;
            description
              "True if NETIO is supported on this location for
             Performance-measurement";
          }
    
          leaf spio-supported {
            type boolean;
            description
              "True if SPIO is supported on this location for
             Performance-measurement";
          }
    
          leaf pd-dll-supported {
            type boolean;
            description
              "True if PD-DLL is supported on this location for
             Performance-measurement";
          }
    
          leaf hardware-offload-supported {
            type boolean;
            description
              "True if Hardware Offload is supported on this
             location for Performance-measurement";
          }
    
          leaf remote-punt-supportec {
            type boolean;
            description
              "True if packet remote punt is supported on this
             location for Performance-measurement";
          }
    
          leaf linecard-distribution-supported {
            type boolean;
            description
              "True if linecard distribution is supported on
             this location";
          }
        }  // grouping PM-CAPABILITY-INFO
    
        grouping PM-CAPABILITY-BAG {
          description
            "PM Capability information bag";
          container performance-measurement-capability-info {
            description "PM capability info";
            uses PM-CAPABILITY-INFO;
          }  // container performance-measurement-capability-info
    
          leaf performance-measurement-supported {
            type boolean;
            description
              "True if performance-measurement is supported on
             this location";
          }
        }  // grouping PM-CAPABILITY-BAG
    
        grouping PM-RSVPTE-LSP-HISTORY-BAG {
          description
            "PM RSVP-TE LSP history bag";
          container history-union {
            description
              "History info of the RSVP-TE LSP";
            uses PM-HISTORY-SAMPLE-UNION;
          }  // container history-union
    
          leaf lsp-id {
            type uint32;
            description "LSP ID";
          }
        }  // grouping PM-RSVPTE-LSP-HISTORY-BAG
    
        grouping PM-RSVPTE-HISTORY-BAG {
          description
            "PM RSVP-TE tunnel history bag";
          leaf tunnel-name-xr {
            type string;
            description "RSVP-TE tunnel name";
          }
    
          list lsp {
            description "List of LSPs";
            uses PM-RSVPTE-LSP-HISTORY-BAG;
          }  // list lsp
        }  // grouping PM-RSVPTE-HISTORY-BAG
    
        grouping PM-RSVPTE-LSP-DELAY-METRICS-BAG {
          description
            "PM RSVP-TE LSP delay metrics bag";
          container metrics {
            description "LSP metrics";
            uses PM-VALUES-BAG;
          }  // container metrics
    
          leaf lsp-id {
            type uint32;
            description "LSP ID";
          }
    
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Time when the metrics were computed
             (milliseconds since Jan. 1, 1970)";
          }
        }  // grouping PM-RSVPTE-LSP-DELAY-METRICS-BAG
    
        grouping PM-RSVPTE-DELAY-METRICS-BAG {
          description
            "PM RSVP-TE tunnel delay metrics bag";
          leaf tunnel-name-xr {
            type string;
            description "RSVP-TE tunnel name";
          }
    
          list lsp {
            description "List of LSPs";
            uses PM-RSVPTE-LSP-DELAY-METRICS-BAG;
          }  // list lsp
        }  // grouping PM-RSVPTE-DELAY-METRICS-BAG
    
        grouping PM-RSVPTE-LSP-DELAY-BAG {
          description "PM RSVP-TE LSP delay bag";
          container last-probe-results {
            description
              "Last probe results of LSP";
            uses PM-SCB-PROBE-RESULTS-BAG;
          }  // container last-probe-results
    
          container current-probe {
            description
              "Information for the current probe of the LSP";
            uses PM-SCB-PROBE-BAG;
          }  // container current-probe
    
          container last-advertisement-information {
            description
              "Last advertisement information of the RSVP-TE
             LSP";
            uses PM-SCB-LAST-ADVERT-BAG;
          }  // container last-advertisement-information
    
          container next-advertisement-information {
            description
              "Next advertisement information of the RSVP-TE
             LSP";
            uses PM-SCB-NEXT-ADVERT-BAG;
          }  // container next-advertisement-information
    
          container last-notification-control-code {
            description
              "Last notifcation control code received of the
             RSVP-TE LSP";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-notification-control-code
    
          container last-error-control-code {
            description
              "Last error control code received of the RSVP-TE
             LSP";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-error-control-code
    
          container responder-address {
            description
              "Address of the Responder";
            uses PM-IP-ADDR-TYPE;
          }  // container responder-address
    
          leaf session-id {
            type uint32;
            description "Session ID of the LSP";
          }
    
          leaf lsp-id {
            type uint32;
            description "LSP ID";
          }
    
          leaf lsp-source-ipv4-address {
            type inet:ipv4-address;
            description
              "LSP Source IPv4 Address";
          }
    
          leaf periodic-advertisement-interval-in-sec {
            type uint32;
            units "second";
            description
              "Interval of periodic advertisement in seconds";
          }
    
          leaf query-number-of-hops {
            type uint8;
            description
              "Number of hops traversed by the query packet";
          }
    
          list probe-history {
            description
              "Current probe history of the LSP";
            uses PM-SCB-SAMPLE-BAG;
          }  // list probe-history
        }  // grouping PM-RSVPTE-LSP-DELAY-BAG
    
        grouping PM-RSVPTE-BAG {
          description "PM RSVP-TE bag";
          leaf tunnel-name-xr {
            type string;
            description "RSVP-TE tunnel name";
          }
    
          leaf interface-handle {
            type uint32;
            description "Ifhandle of the tunnel";
          }
    
          leaf tunnel-destination-ipv4-address {
            type inet:ipv4-address;
            description
              "IPv4 address destination of the tunnel";
          }
    
          list rsvptelsp-delay-session {
            description
              "RSVP-TE LSP delay-measurement sessions";
            uses PM-RSVPTE-LSP-DELAY-BAG;
          }  // list rsvptelsp-delay-session
        }  // grouping PM-RSVPTE-BAG
    
        grouping PM-RSVPTE-LSP-DELAY-COUNTERS-BAG {
          description
            "RSVP-TE LSP delay counters bag";
          container counters {
            description "LSP counters";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container counters
    
          leaf lsp-id {
            type uint32;
            description "LSP ID";
          }
        }  // grouping PM-RSVPTE-LSP-DELAY-COUNTERS-BAG
    
        grouping PM-RSVPTE-COUNTERS-BAG {
          description
            "RSVP-TE tunnel counters bag";
          leaf tunnel-name-xr {
            type string;
            description "RSVP-TE tunnel name";
          }
    
          list rsvptelsp-delay-counter {
            description "List of LSPs";
            uses PM-RSVPTE-LSP-DELAY-COUNTERS-BAG;
          }  // list rsvptelsp-delay-counter
        }  // grouping PM-RSVPTE-COUNTERS-BAG
    
        grouping PM-SRPOLICY-SEGMENT-LIST-COUNTERS-BAG {
          description
            "PM segment-list counters bag";
          container counters {
            description "Segment-list counters";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container counters
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
        }  // grouping PM-SRPOLICY-SEGMENT-LIST-COUNTERS-BAG
    
        grouping PM-ENDPOINT-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG {
          description
            "PM exclusive counters bag for Endpoint delay";
          leaf query-packets-sent-error-sl-label-missing {
            type uint64;
            description
              "Number of query packets sent error caused by
             Missing Segment list Labels";
          }
    
          leaf liveness-detection-missed-count {
            type uint64;
            description
              "Number of missed packets";
          }
        }  // grouping PM-ENDPOINT-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG
    
        grouping PM-SRPOLICY-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG {
          description
            "PM exclusive counters bag for SR Policy delay";
          leaf liveness-detection-missed-count {
            type uint64;
            description
              "Number of missed packets";
          }
        }  // grouping PM-SRPOLICY-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG
    
        grouping PM-INTF-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG {
          description
            "PM exclusive counters bag for interface delay";
          leaf query-packet-sent-error-interface-down {
            type uint64;
            description
              "Number of query packets sent error caused by
             interface down";
          }
    
          leaf query-packet-sent-error-no-mpls-caps {
            type uint64;
            description
              "Number of query packets sent error caused by no
             MPLS caps";
          }
    
          leaf query-packet-sent-error-ipv4-down-with-v4-next-hop {
            type uint64;
            description
              "Number of query packets sent error caused by
             IPv4 protocl in down state with configured IPv4
             next hop";
          }
    
          leaf query-packet-sent-error-ipv6-down-with-v6-next-hop {
            type uint64;
            description
              "Number of query packets sent error caused by
             IPv6 protocl in down state with configured IPv6
             next hop";
          }
    
          leaf query-packet-sent-error-ipv4ipv6-down-without-next-hop {
            type uint64;
            description
              "Number of query packets sent error caused by
             both IPv4 and IPv6 protocl in down state without
             configured next hop";
          }
    
          leaf query-packet-sent-error-next-hop-mac-missing {
            type uint64;
            description
              "Number of query packets sent error caused by
             missing next hop MAC";
          }
        }  // grouping PM-INTF-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG
    
        grouping PM-EXCLUSIVE-DELAY-COUNTERS-INFO-UNION {
          description
            "Counters info type for interface, RSVP-TE LSP, SR
           Policy and Endpoint";
          container interface-exclusive-counters {
            when
              "../transport-type = 'interface-transport-type'" {
              description
                "../TransportType = 'InterfaceTransportType'";
            }
            description
              "Counters exclusive for interface";
            uses PM-INTF-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG;
          }  // container interface-exclusive-counters
    
          container sr-policy-exclusive-counters {
            when
              "../transport-type = 'sr-policy-transport-type'" {
              description
                "../TransportType = 'SRPolicyTransportType'";
            }
            description
              "Counters exclusive for SR Policies";
            uses PM-SRPOLICY-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG;
          }  // container sr-policy-exclusive-counters
    
          container endpoint-exclusive-counters {
            when
              "../transport-type = 'endpoiont-transport-type'" {
              description
                "../TransportType = 'EndpoiontTransportType'";
            }
            description
              "Counters exclusive for Endpoint";
            uses PM-ENDPOINT-EXCLUSIVE-DELAY-COUNTERS-INFO-BAG;
          }  // container endpoint-exclusive-counters
    
          leaf transport-type {
            type Pm-transport;
            description "TransportType";
          }
        }  // grouping PM-EXCLUSIVE-DELAY-COUNTERS-INFO-UNION
    
        grouping PM-QUERIER-DELAY-COUNTERS-BAG {
          description
            "PM delay querier counters";
          leaf query-packets-sent {
            type uint64;
            description
              "Number of query packets sent";
          }
    
          leaf query-packet-sent-errors {
            type uint64;
            description
              "Number of query packets sent error";
          }
    
          leaf query-packet-sent-error-no-ip-address {
            type uint64;
            description
              "Number of query packets sent error caused by no
             IP address";
          }
    
          leaf query-packets-received {
            type uint64;
            description
              "Number of received query packets";
          }
    
          leaf received-packet-error-negative-delay {
            type uint64;
            description
              "Number of packet error caused by receiving
             negative delay";
          }
    
          leaf received-packet-error-delay-exceeds-threshold {
            type uint64;
            description
              "Number of packet error caused by measured delay
             is invalid due to exceeding threshold";
          }
    
          leaf received-packet-error-missing-tx-timestamp {
            type uint64;
            description
              "Number of packet error caused by received packet
             is missing Tx timestamp";
          }
    
          leaf received-packet-error-missing-rx-timestamp {
            type uint64;
            description
              "Number of packet error caused by received packet
             is missing Rx timestamp";
          }
    
          leaf received-packet-error-probe-full {
            type uint64;
            description
              "Number of packet error caused by receiving
             packet when probe is full";
          }
    
          leaf received-packet-error-probe-not-started {
            type uint64;
            description
              "Number of packet error caused by receiving
             packet when probe is not started";
          }
    
          leaf received-packet-control-code-error {
            type uint64;
            description
              "Number of packet error caused by a control code
             error from responder";
          }
    
          leaf received-packet-control-code-notification {
            type uint64;
            description
              "Number of packet error caused by a control code
             notification from responder";
          }
    
          leaf probes-started {
            type uint64;
            description
              "Number of probes started";
          }
    
          leaf probes-complete {
            type uint64;
            description
              "Number of probes completed";
          }
    
          leaf probes-incomplete {
            type uint64;
            description
              "Number of probes incomplete";
          }
    
          leaf advertisement {
            type uint64;
            description
              "Number of advertisements";
          }
        }  // grouping PM-QUERIER-DELAY-COUNTERS-BAG
    
        grouping PM-DELAY-COUNTERS-INFO-BAG {
          description
            "PM delay counters info bag";
          container generic-counters {
            description
              "Generic counters for a PM interface instance";
            uses PM-QUERIER-DELAY-COUNTERS-BAG;
          }  // container generic-counters
    
          container exclusive-counters {
            description
              "Exclusive counters for a PM interface instance";
            uses PM-EXCLUSIVE-DELAY-COUNTERS-INFO-UNION;
          }  // container exclusive-counters
        }  // grouping PM-DELAY-COUNTERS-INFO-BAG
    
        grouping PM-SRPOLICY-CANDIDATE-PATH-COUNTERS-BAG {
          description
            "PM candidate-path counters bag";
          container counters {
            description
              "Candidate-path counters";
            uses PM-DELAY-COUNTERS-INFO-BAG;
          }  // container counters
    
          leaf instance {
            type uint32;
            description "Session instance";
          }
    
          leaf preference {
            type uint32;
            description
              "Preference of the candidate-path";
          }
    
          leaf origin {
            type Pm-xtc-srpolicy-origin;
            description "Protocol origin";
          }
    
          leaf discriminator {
            type uint32;
            description
              "Discriminator of the candidate-path";
          }
    
          list segment-list-counter {
            description
              "List of counters for segment-lists in this
             candidate-path";
            uses PM-SRPOLICY-SEGMENT-LIST-COUNTERS-BAG;
          }  // list segment-list-counter
        }  // grouping PM-SRPOLICY-CANDIDATE-PATH-COUNTERS-BAG
    
        grouping PM-SRPOLICY-COUNTERS-BAG {
          description
            "PM SR Policy counters bag";
          leaf policy-name-xr {
            type string;
            description "Name of the SR Policy";
          }
    
          list candidate-counter {
            description
              "List of candidate path counters";
            uses PM-SRPOLICY-CANDIDATE-PATH-COUNTERS-BAG;
          }  // list candidate-counter
        }  // grouping PM-SRPOLICY-COUNTERS-BAG
    
        grouping PM-SRPOLICY-ATOMIC-PATH-LIVENESS {
          description
            "PM SR Policy atomic path liveness detection bag";
          container liveness-detection-info {
            description
              "Information of liveness detection session state";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container liveness-detection-info
    
          list hop-address {
            description "Hop addresses list";
            uses PM-IP-ADDR-TYPE;
          }  // list hop-address
    
          list label {
            description "MPLS labels";
            leaf entry {
              type uint32;
              description "MPLS labels";
            }
          }  // list label
        }  // grouping PM-SRPOLICY-ATOMIC-PATH-LIVENESS
    
        grouping PM-SRPOLICY-SEGMENT-LIST-LIVENESS {
          description
            "PM SR Policy segment-list liveness detection bag";
          container liveness-detection-info {
            description
              "Information of liveness detection session state";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container liveness-detection-info
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
    
          list atomic-path {
            description "List of atomic paths";
            uses PM-SRPOLICY-ATOMIC-PATH-LIVENESS;
          }  // list atomic-path
        }  // grouping PM-SRPOLICY-SEGMENT-LIST-LIVENESS
    
        grouping PM-SRPOLICY-CANDIDATE-PATH-LIVENESS {
          description
            "PM SR Policy candidate-path liveness detection
           bag";
          container liveness-detection-info {
            description
              "Information of liveness detection session state";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container liveness-detection-info
    
          leaf instance {
            type uint32;
            description "Session instance";
          }
    
          leaf preference {
            type uint32;
            description
              "Preference of the candidate-path";
          }
    
          leaf origin {
            type Pm-xtc-srpolicy-origin;
            description "Protocol origin";
          }
    
          leaf discriminator {
            type uint32;
            description
              "Discriminator of the candidate-path";
          }
    
          list segment-list {
            description "List of segment-lists";
            uses PM-SRPOLICY-SEGMENT-LIST-LIVENESS;
          }  // list segment-list
        }  // grouping PM-SRPOLICY-CANDIDATE-PATH-LIVENESS
    
        grouping PM-SRPOLICY-LIVENESS {
          description
            "PM SR Policy liveness detection bag";
          container end-point-address {
            description
              "IPv4/IPv6 End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          leaf policy-name {
            type string;
            description "Name of the SR Policy";
          }
    
          leaf color {
            type uint32;
            description "Color";
          }
    
          leaf liveness-detection-enabled {
            type boolean;
            description
              "True if liveness detection is enabled for the
             policy";
          }
    
          list candidate-path {
            description
              "List of candidate-paths";
            uses PM-SRPOLICY-CANDIDATE-PATH-LIVENESS;
          }  // list candidate-path
        }  // grouping PM-SRPOLICY-LIVENESS
    
        grouping PM-SRPOLICY-HISTORY-ATOMIC-PATH-BAG {
          description
            "PM SR Policy atomic path history bag";
          container history-info {
            description
              "History info of the atomic path ";
            uses PM-HISTORY-SAMPLE-UNION;
          }  // container history-info
    
          list hop-address {
            description "Hop addresses list";
            uses PM-IP-ADDR-TYPE;
          }  // list hop-address
        }  // grouping PM-SRPOLICY-HISTORY-ATOMIC-PATH-BAG
    
        grouping PM-SRPOLICY-HISTORY-SEGMENT-LIST-BAG {
          description
            "PM SR Policy segment-list history bag";
          container history-info {
            description
              "History info of the segment-list";
            uses PM-HISTORY-SAMPLE-UNION;
          }  // container history-info
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
    
          list atomic-paths-history {
            description "List of atomic paths";
            uses PM-SRPOLICY-HISTORY-ATOMIC-PATH-BAG;
          }  // list atomic-paths-history
        }  // grouping PM-SRPOLICY-HISTORY-SEGMENT-LIST-BAG
    
        grouping PM-LM-ADV-SAMPLE-BAG {
          description "LM advertisement sample";
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Timestamp (milliseconds since Jan. 1, 1970)";
          }
    
          leaf advertisement-reason {
            type Pm-advert-reason;
            description "Advertisement reason";
          }
    
          leaf loss-percentage {
            type uint32;
            units "percentage";
            description "Packet loss percentage";
          }
        }  // grouping PM-LM-ADV-SAMPLE-BAG
    
        grouping PM-LM-ADV-HISTORY-BAG {
          description
            "PM LM advertisement history";
          list lm-advertisement-history {
            description
              "LM advertisement history";
            uses PM-LM-ADV-SAMPLE-BAG;
          }  // list lm-advertisement-history
        }  // grouping PM-LM-ADV-HISTORY-BAG
    
        grouping PM-LM-AGGR-SAMPLE-BAG {
          description "LM probe sample";
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Timestamp (milliseconds since Jan. 1, 1970)";
          }
    
          leaf num-sent-packet {
            type uint64;
            description
              "Number of packets been sent in this aggregation
             interval";
          }
    
          leaf num-received-packet {
            type uint64;
            description
              "Number of packets been received in this
             aggregation interval";
          }
    
          leaf loss-percentage {
            type uint32;
            units "percentage";
            description "Packet loss percentage";
          }
        }  // grouping PM-LM-AGGR-SAMPLE-BAG
    
        grouping PM-LM-AGGR-HISTORY-BAG {
          description
            "PM LM aggregation history";
          list lm-aggregated-hisotry {
            description "LM aggregation history";
            uses PM-LM-AGGR-SAMPLE-BAG;
          }  // list lm-aggregated-hisotry
        }  // grouping PM-LM-AGGR-HISTORY-BAG
    
        grouping PM-LM-PKT-SAMPLE-BAG {
          description "LM packet sample";
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Timestamp (milliseconds since Jan. 1, 1970)";
          }
    
          leaf tx-counter {
            type uint64;
            description "TX counter";
          }
    
          leaf rx-counter {
            type uint64;
            description "RX RX counter";
          }
        }  // grouping PM-LM-PKT-SAMPLE-BAG
    
        grouping PM-LM-PKT-HISTORY-BAG {
          description "PM LM packet history";
          list lm-packet-hisotry {
            description "LM packet history";
            uses PM-LM-PKT-SAMPLE-BAG;
          }  // list lm-packet-hisotry
        }  // grouping PM-LM-PKT-HISTORY-BAG
    
        grouping PM-LM-PROBE-SAMPLE-BAG {
          description "LM probe sample";
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Timestamp (milliseconds since Jan. 1, 1970)";
          }
    
          leaf num-sent-packet {
            type uint64;
            description
              "Number of packets been sent in this probe
             interval";
          }
    
          leaf num-received-packet {
            type uint64;
            description
              "Number of packets been received in this probe
             interval";
          }
    
          leaf loss-percentage {
            type uint32;
            units "percentage";
            description "Packet loss percentage";
          }
        }  // grouping PM-LM-PROBE-SAMPLE-BAG
    
        grouping PM-LM-PROBE-HISTORY-BAG {
          description "PM LM probe history";
          list lm-probe-hisotry {
            description "LM probe history";
            uses PM-LM-PROBE-SAMPLE-BAG;
          }  // list lm-probe-hisotry
        }  // grouping PM-LM-PROBE-HISTORY-BAG
    
        grouping PM-LIVE-SAMPLE-BAG {
          description
            "PM liveness session history bag";
          leaf liveness-state-change-timestamp {
            type uint64;
            description
              "Time liveness session state was changed";
          }
    
          leaf liveness-state-is-up {
            type boolean;
            description
              "True if liveness session is in UP state";
          }
        }  // grouping PM-LIVE-SAMPLE-BAG
    
        grouping PM-LIVE-HISTORY-BAG {
          description "PM liveness history";
          list liveness-hisotry {
            description
              "List of records of liveness history";
            uses PM-LIVE-SAMPLE-BAG;
          }  // list liveness-hisotry
        }  // grouping PM-LIVE-HISTORY-BAG
    
        grouping PM-ADV-SAMPLE-BAG {
          description
            "PM advertisement history bag";
          container advertised-values {
            description
              "Advertised delay information";
            uses PM-VALUES-BAG;
          }  // container advertised-values
    
          leaf advertisement-timestamp {
            type uint64;
            units "millisecond";
            description
              "Time advertisement was done (milliseconds since
             Jan. 1, 1970)";
          }
    
          leaf advertisement-reason {
            type Pm-advert-reason;
            description
              "Reason for advertisement";
          }
        }  // grouping PM-ADV-SAMPLE-BAG
    
        grouping PM-ADV-HISTORY-BAG {
          description "PM advertisement history";
          list advertisement-history {
            description
              "List of samples of advertisement history records";
            uses PM-ADV-SAMPLE-BAG;
          }  // list advertisement-history
        }  // grouping PM-ADV-HISTORY-BAG
    
        grouping PM-AGGR-SAMPLE-BAG {
          description
            "PM aggregated delay probe history bag";
          container aggregated-probe-values {
            description
              "Summarised results of the aggregated probe";
            uses PM-VALUES-BAG;
          }  // container aggregated-probe-values
    
          leaf aggregation-timestamp {
            type uint64;
            units "millisecond";
            description
              "Time probe aggregation was done (milliseconds
             since Jan. 1, 1970)";
          }
        }  // grouping PM-AGGR-SAMPLE-BAG
    
        grouping PM-AGGR-HISTORY-BAG {
          description "PM aggregated history";
          list aggregated-history {
            description
              "List of samples of aggregation history records";
            uses PM-AGGR-SAMPLE-BAG;
          }  // list aggregated-history
        }  // grouping PM-AGGR-HISTORY-BAG
    
        grouping PM-PROBE-SAMPLE-BAG {
          description
            "PM delay probe history bag";
          container probe-values {
            description
              "Summarized results of the probe";
            uses PM-VALUES-BAG;
          }  // container probe-values
    
          leaf probe-start-timestamp {
            type uint64;
            units "millisecond";
            description
              "Time last probe started (milliseconds since Jan.
             1, 1970)";
          }
    
          leaf packets-sent {
            type uint32;
            description
              "Number of query packets sent";
          }
    
          leaf packets-received {
            type uint32;
            description
              "Number of query Packets received";
          }
        }  // grouping PM-PROBE-SAMPLE-BAG
    
        grouping PM-PROBE-HISTORY-BAG {
          description "PM probe history";
          list probe-history {
            description
              "List of samples of probe history records";
            uses PM-PROBE-SAMPLE-BAG;
          }  // list probe-history
        }  // grouping PM-PROBE-HISTORY-BAG
    
        grouping PM-HISTORY-SAMPLE-UNION {
          description "PM history sample union";
          container probe-history {
            when
              "../history-type = 'history-type-probe'" {
              description
                "../HistoryType = 'HistoryTypeProbe'";
            }
            description
              "Info of delay-measurement probe history";
            uses PM-PROBE-HISTORY-BAG;
          }  // container probe-history
    
          container aggregated-history {
            when
              "../history-type = 'history-type-aggregated'" {
              description
                "../HistoryType = 'HistoryTypeAggregated'";
            }
            description
              "Info of delay-measurement aggregation history";
            uses PM-AGGR-HISTORY-BAG;
          }  // container aggregated-history
    
          container advertisement-history {
            when
              "../history-type = 'history-type-advertisement'" {
              description
                "../HistoryType = 'HistoryTypeAdvertisement'";
            }
            description
              "Info of delay-measurement advertisement history";
            uses PM-ADV-HISTORY-BAG;
          }  // container advertisement-history
    
          container liveness-history {
            when
              "../history-type = 'history-type-liveness-state'" {
              description
                "../HistoryType = 'HistoryTypeLivenessState'";
            }
            description
              "Info of liveness session history";
            uses PM-LIVE-HISTORY-BAG;
          }  // container liveness-history
    
          container lm-probe-history {
            when
              "../history-type = 'history-type-lm-probe'" {
              description
                "../HistoryType = 'HistoryTypeLMProbe'";
            }
            description
              "Info of loss-measurement probe history";
            uses PM-LM-PROBE-HISTORY-BAG;
          }  // container lm-probe-history
    
          container lm-packet-history {
            when
              "../history-type = 'history-type-lm-packet'" {
              description
                "../HistoryType = 'HistoryTypeLMPacket'";
            }
            description
              "Info of loss-measurement packet history";
            uses PM-LM-PKT-HISTORY-BAG;
          }  // container lm-packet-history
    
          container lm-aggregated-history {
            when
              "../history-type = 'history-type-lm-aggregated'" {
              description
                "../HistoryType = 'HistoryTypeLMAggregated'";
            }
            description
              "Info of loss-measurement aggregation history";
            uses PM-LM-AGGR-HISTORY-BAG;
          }  // container lm-aggregated-history
    
          container lm-advertisement-history {
            when
              "../history-type = 'history-type-lm-advertisement'" {
              description
                "../HistoryType = 'HistoryTypeLMAdvertisement'";
            }
            description
              "Info of loss-measurement advertisement history";
            uses PM-LM-ADV-HISTORY-BAG;
          }  // container lm-advertisement-history
    
          leaf history-type {
            type Pm-history;
            description "HistoryType";
          }
        }  // grouping PM-HISTORY-SAMPLE-UNION
    
        grouping PM-SRPOLICY-HISTORY-CANDIDATE-PATH-BAG {
          description
            "PM SR Policy segment-list history bag";
          container history-info {
            description
              "History info of the candidate-path";
            uses PM-HISTORY-SAMPLE-UNION;
          }  // container history-info
    
          leaf preference {
            type uint32;
            description
              "Preference of the candidate-path";
          }
    
          leaf origin {
            type Pm-xtc-srpolicy-origin;
            description "Protocol origin";
          }
    
          leaf discriminator {
            type uint32;
            description
              "Discriminator of the candidate-path";
          }
    
          list segment-lists-history {
            description "List of segment-lists";
            uses PM-SRPOLICY-HISTORY-SEGMENT-LIST-BAG;
          }  // list segment-lists-history
        }  // grouping PM-SRPOLICY-HISTORY-CANDIDATE-PATH-BAG
    
        grouping PM-SRPOLICY-HISTORY-BAG {
          description "PM SR Policy history bag";
          container end-point-address {
            description
              "IPv4/IPv6 End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          leaf color {
            type uint32;
            description "Color";
          }
    
          leaf policy-name {
            type string;
            description "Name of the SR Policy";
          }
    
          list candidate-paths-history {
            description
              "List of candidate-paths";
            uses PM-SRPOLICY-HISTORY-CANDIDATE-PATH-BAG;
          }  // list candidate-paths-history
        }  // grouping PM-SRPOLICY-HISTORY-BAG
    
        grouping PM-SRPOLICY-METRICS-ATOMIC-PATH-BAG {
          description
            "PM SR Policy atomic path metrics bag";
          container metrics {
            description "Atomic Path metrics";
            uses PM-VALUES-BAG;
          }  // container metrics
    
          list hop-address {
            description "Hop addresses list";
            uses PM-IP-ADDR-TYPE;
          }  // list hop-address
    
          list label {
            description "MPLS labels";
            leaf entry {
              type uint32;
              description "MPLS labels";
            }
          }  // list label
        }  // grouping PM-SRPOLICY-METRICS-ATOMIC-PATH-BAG
    
        grouping PM-SRPOLICY-SEGMENT-LIST-METRICS-BAG {
          description
            "PM SR Policy segment-list metrics bag";
          container metrics {
            description "Segment-list metrics";
            uses PM-VALUES-BAG;
          }  // container metrics
    
          leaf segment-list-name {
            type string;
            description
              "Segment-list name, not set if path is dynamic";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
    
          list atomic-path {
            description "List of atomic paths";
            uses PM-SRPOLICY-METRICS-ATOMIC-PATH-BAG;
          }  // list atomic-path
        }  // grouping PM-SRPOLICY-SEGMENT-LIST-METRICS-BAG
    
        grouping PM-SRPOLICY-CANDIDATE-PATH-METRICS-BAG {
          description
            "PM SR Policy candidate-path metrics bag";
          container metrics {
            description "Candidate-path metrics";
            uses PM-VALUES-BAG;
          }  // container metrics
    
          leaf instance {
            type uint32;
            description "Session instance";
          }
    
          leaf preference {
            type uint32;
            description
              "Preference of the candidate-path";
          }
    
          leaf origin {
            type Pm-xtc-srpolicy-origin;
            description "Protocol origin";
          }
    
          leaf discriminator {
            type uint32;
            description
              "Discriminator of the candidate-path";
          }
    
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Time when the metrics were computed
             (milliseconds since Jan. 1, 1970)";
          }
    
          list segment-list {
            description "List of segment-lists";
            uses PM-SRPOLICY-SEGMENT-LIST-METRICS-BAG;
          }  // list segment-list
        }  // grouping PM-SRPOLICY-CANDIDATE-PATH-METRICS-BAG
    
        grouping PM-SRPOLICY-METRICS-BAG {
          description "PM SR Policy metrics bag";
          leaf policy-name {
            type string;
            description "Name of the SR Policy";
          }
    
          list candidate-path {
            description
              "List of candidate-paths";
            uses PM-SRPOLICY-CANDIDATE-PATH-METRICS-BAG;
          }  // list candidate-path
        }  // grouping PM-SRPOLICY-METRICS-BAG
    
        grouping PM-SCB-SAMPLE-BAG {
          description
            "PM delay probe sample bag";
          leaf measurement-value {
            type uint64;
            description
              "Measurement value (nsec)";
          }
    
          leaf query-timestamp {
            type uint64;
            units "millisecond";
            description
              "Timestamp when the measurement was taken
             (milliseconds since Jan. 1, 1970)";
          }
        }  // grouping PM-SCB-SAMPLE-BAG
    
        grouping PM-SRPOLICY-ATOMIC-PATH-BAG {
          description
            "PM SR Policy atomic path bag";
          container last-advertisement-information {
            description
              "Last advertisement information of the atomic
             path";
            uses PM-SCB-LAST-ADVERT-BAG;
          }  // container last-advertisement-information
    
          container next-advertisement-information {
            description
              "Current advertisement information of the atomic
             path";
            uses PM-SCB-NEXT-ADVERT-BAG;
          }  // container next-advertisement-information
    
          container current-probe-results {
            description
              "Current probe results of the atomic path";
            uses PM-SCB-PROBE-RESULTS-BAG;
          }  // container current-probe-results
    
          container last-probe-results {
            description
              "Last probe results of the atomic path";
            uses PM-SCB-PROBE-RESULTS-BAG;
          }  // container last-probe-results
    
          container liveness-detection-info {
            description
              "Information for liveness detection";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container liveness-detection-info
    
          container last-notification-control-code {
            description
              "Last notifcation control code received of the
             atomic path";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-notification-control-code
    
          container last-error-control-code {
            description
              "Last error control code received of the atomic
             path";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-error-control-code
    
          container responder-address {
            description
              "Address of the Responder";
            uses PM-IP-ADDR-TYPE;
          }  // container responder-address
    
          leaf outgoing-interface {
            type uint32;
            description
              "Outgoing interface of the atomic path";
          }
    
          leaf session-id {
            type uint32;
            description
              "Session ID of the atomic path";
          }
    
          leaf liveness-detection-enabled {
            type boolean;
            description
              "Liveness detection is enabled";
          }
    
          leaf query-number-of-hops {
            type uint8;
            description
              "Number of hops traversed by the query packet";
          }
    
          list hop-address {
            description "Hop addresses list";
            uses PM-IP-ADDR-TYPE;
          }  // list hop-address
    
          list label {
            description
              "MPLS labels of the atomic path";
            leaf entry {
              type uint32;
              description
                "MPLS labels of the atomic path";
            }
          }  // list label
    
          list current-probe-history {
            description
              "Current probe history of the atomic path";
            uses PM-SCB-SAMPLE-BAG;
          }  // list current-probe-history
        }  // grouping PM-SRPOLICY-ATOMIC-PATH-BAG
    
        grouping PM-SEGMENT-BAG {
          description "PM segment information";
          container ip-address {
            description "Segment IP address";
            uses PM-IP-ADDR-TYPE;
          }  // container ip-address
    
          leaf mpls-label {
            type uint32;
            description "Segment mpls label";
          }
        }  // grouping PM-SEGMENT-BAG
    
        grouping PM-SRPOLICY-SEGMENT-LIST-BAG {
          description
            "PM SR Policy segment-list bag";
          container last-advertisement-information {
            description
              "Last advertisement information of the
             segment-list";
            uses PM-SCB-LAST-ADVERT-BAG;
          }  // container last-advertisement-information
    
          container next-advertisement-information {
            description
              "Current advertisement information of the
             segment-list";
            uses PM-SCB-NEXT-ADVERT-BAG;
          }  // container next-advertisement-information
    
          container current-probe-results {
            description
              "Current probe results of the segment-list";
            uses PM-SCB-PROBE-RESULTS-BAG;
          }  // container current-probe-results
    
          container last-probe-results {
            description
              "Last probe results of the segment-list";
            uses PM-SCB-PROBE-RESULTS-BAG;
          }  // container last-probe-results
    
          container liveness-detection-info {
            description
              "Information for liveness detection";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container liveness-detection-info
    
          container last-notification-control-code {
            description
              "Last notifcation control code received of the
             segment-list";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-notification-control-code
    
          container last-error-control-code {
            description
              "Last error control code received of the
             segment-list";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-error-control-code
    
          leaf segment-list-name {
            type string;
            description
              "Name of the segment-list";
          }
    
          leaf atomic-path-total-count {
            type uint32;
            description
              "Number of atomic paths in the segment-list";
          }
    
          leaf liveness-detection-enabled {
            type boolean;
            description
              "Liveness detection is enabled";
          }
    
          list segment {
            description "List of segments";
            uses PM-SEGMENT-BAG;
          }  // list segment
    
          list atomic-path {
            description "List of atomic paths";
            uses PM-SRPOLICY-ATOMIC-PATH-BAG;
          }  // list atomic-path
        }  // grouping PM-SRPOLICY-SEGMENT-LIST-BAG
    
        grouping PM-LIVENESS-STATE-INFO-BAG {
          description
            "Liveness detection session state information";
          leaf session-is-up {
            type boolean;
            description "Liveness session state";
          }
    
          leaf miss-count {
            type uint32;
            description
              "Number of continuously missed probe packets";
          }
    
          leaf last-session-state-change-timestamp {
            type uint64;
            description
              "Timestamp of the last liveness session state
             change";
          }
        }  // grouping PM-LIVENESS-STATE-INFO-BAG
    
        grouping PM-SCB-CONTROL-CODE {
          description
            "Last received control code";
          leaf control-code {
            type uint8;
            description
              "MPLS PM RFC 6374 control code";
          }
    
          leaf timestamp {
            type uint64;
            units "millisecond";
            description
              "Received timestamp of the control code
             (milliseconds since Jan. 1, 1970)";
          }
        }  // grouping PM-SCB-CONTROL-CODE
    
        grouping PM-SCB-PROBE-BAG {
          description "PM delay probe bag";
          container probe-results {
            description
              "Summarized  results of the current probe";
            uses PM-VALUES-BAG;
          }  // container probe-results
    
          leaf probe-start-time-stamp {
            type uint64;
            units "millisecond";
            description
              "Timestamp in milliseconds of the current probe
             start (milliseconds since Jan. 1, 1970)";
          }
    
          leaf next-probe-start-time-remaining-in-millisec {
            type uint32;
            units "millisecond";
            description
              "Time in milliseconds until the next probe starts";
          }
    
          leaf next-packet-sent-time-remaining-in-millisec {
            type uint32;
            units "millisecond";
            description
              "Time in milliseconds until the next packet is
             sent";
          }
    
          leaf burst-interval {
            type uint32;
            units "millisecond";
            description
              "Burst interval (in milliseconds)";
          }
    
          leaf burst-interval-is-stretched {
            type boolean;
            description
              "True if the burst interval has been stretched
             for packet rate-limiting";
          }
    
          leaf number-of-packets-sent {
            type uint32;
            description
              "Number of packets sent in the current probe";
          }
    
          leaf number-of-packets-received {
            type uint32;
            description
              "Number of packets received in the current probe";
          }
    
          leaf probe-not-running-reason {
            type Pm-probe-running-error-reason;
            description
              "Reason why probe is not running";
          }
        }  // grouping PM-SCB-PROBE-BAG
    
        grouping PM-SCB-PROBE-RESULTS-BAG {
          description "PM probe results bag";
          container probe-values {
            description
              "Summarized results of the probe";
            uses PM-VALUES-BAG;
          }  // container probe-values
    
          leaf number-of-packets-sent {
            type uint32;
            description
              "Number of packets sent in the probe";
          }
    
          leaf number-of-packets-received {
            type uint32;
            description
              "Number of packets received in the probe";
          }
        }  // grouping PM-SCB-PROBE-RESULTS-BAG
    
        grouping PM-SCB-NEXT-ADVERT-BAG {
          description
            "PM delay next advertisement bag";
          container advertisement-interval-values {
            description
              "Next advertisement values";
            uses PM-VALUES-BAG;
          }  // container advertisement-interval-values
    
          leaf advertisement-interval-probes-remaining {
            type uint32;
            description
              "Probes remaining until next periodic
             advertisement check";
          }
    
          leaf rolling-average {
            type uint32;
            description
              "Rolling average value (uSec)";
          }
        }  // grouping PM-SCB-NEXT-ADVERT-BAG
    
        grouping PM-VALUES-BAG {
          description
            "PM delay summarized delay values";
          leaf average {
            type uint32;
            description "Average value (uSec)";
          }
    
          leaf minimum {
            type uint32;
            description "Minimum value (uSec)";
          }
    
          leaf maximum {
            type uint32;
            description "Maximum value (uSec)";
          }
    
          leaf variance {
            type uint32;
            description "Variance value (uSec)";
          }
        }  // grouping PM-VALUES-BAG
    
        grouping PM-SCB-LAST-ADVERT-BAG {
          description
            "PM delay last advertisement bag";
          container advertised-values {
            description
              "Advertised delay information";
            uses PM-VALUES-BAG;
          }  // container advertised-values
    
          leaf time-of-advertisement {
            type uint64;
            units "millisecond";
            description
              "Time of the advertisement (milliseconds since
             Jan. 1, 1970)";
          }
    
          leaf advertisement-reason {
            type Pm-advert-reason;
            description
              "Reason for advertisement";
          }
    
          leaf aflag-set {
            type boolean;
            description "A flag is set";
          }
        }  // grouping PM-SCB-LAST-ADVERT-BAG
    
        grouping PM-SRPOLICY-CANDIDATE-PATH-BAG {
          description
            "PM SR Policy candidate-path bag";
          container last-advertisement-information {
            description
              "Last advertisement information of the
             candidate-path";
            uses PM-SCB-LAST-ADVERT-BAG;
          }  // container last-advertisement-information
    
          container next-advertisement-information {
            description
              "Current advertisement information of the
             candidate-path";
            uses PM-SCB-NEXT-ADVERT-BAG;
          }  // container next-advertisement-information
    
          container last-probe-results {
            description
              "Last probe results of candidate-path";
            uses PM-SCB-PROBE-RESULTS-BAG;
          }  // container last-probe-results
    
          container current-probe {
            description
              "Information for the current probe";
            uses PM-SCB-PROBE-BAG;
          }  // container current-probe
    
          container last-notification-control-code {
            description
              "Last notifcation control code received of the
             candidate-path";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-notification-control-code
    
          container last-error-control-code {
            description
              "Last error control code received of the
             candidate-path";
            uses PM-SCB-CONTROL-CODE;
          }  // container last-error-control-code
    
          container liveness-detection-info {
            description
              "Information for liveness detection";
            uses PM-LIVENESS-STATE-INFO-BAG;
          }  // container liveness-detection-info
    
          leaf instance {
            type uint32;
            description "Session instance";
          }
    
          leaf preference {
            type uint32;
            description
              "Preference of the candidate-path";
          }
    
          leaf origin {
            type Pm-xtc-srpolicy-origin;
            description
              "Protocol-origin of the candidate-path";
          }
    
          leaf discriminator {
            type uint32;
            description
              "Discriminator of the candidate-path";
          }
    
          leaf source-address-v4 {
            type inet:ipv4-address;
            description
              "Source address of the candidate-path";
          }
    
          leaf reverse-path-label {
            type uint32;
            description "Reverse-path label";
          }
    
          leaf profile-name {
            type string;
            description
              "SR Policy delay-measurement profile name";
          }
    
          leaf periodic-advertisement-interval-in-sec {
            type uint32;
            units "second";
            description
              "Interval of periodic advertisement in seconds";
          }
    
          leaf liveness-detection-enabled {
            type boolean;
            description
              "Liveness detection is enabled";
          }
    
          leaf segment-list-total-count {
            type uint32;
            description
              "Number of segment lists in the candidate-path";
          }
    
          list segment-list {
            description "List of segment-lists";
            uses PM-SRPOLICY-SEGMENT-LIST-BAG;
          }  // list segment-list
        }  // grouping PM-SRPOLICY-CANDIDATE-PATH-BAG
    
        grouping PM-IP-ADDR-TYPE {
          description "IPv4/IPv6 address type";
          leaf ip-address-type {
            type Pm-addr;
            description "IPAddressType";
          }
    
          leaf ipv4 {
            when "../ip-address-type = 'ipv4'" {
              description
                "../IPAddressType = 'IPv4'";
            }
            type Pm-ipv4-addr;
            description "IPv4 address type";
          }
    
          leaf ipv6 {
            when "../ip-address-type = 'ipv6'" {
              description
                "../IPAddressType = 'IPv6'";
            }
            type Pm-ipv6-addr;
            description "IPv6 address type";
          }
        }  // grouping PM-IP-ADDR-TYPE
    
        grouping PM-SRPOLICY-BAG {
          description "PM SR Policy bag";
          container end-point-address {
            description
              "IPv4/IPv6 End point address";
            uses PM-IP-ADDR-TYPE;
          }  // container end-point-address
    
          leaf color {
            type uint32;
            description "Color";
          }
    
          leaf policy-name-xr {
            type string;
            description "Name of the SR Policy";
          }
    
          leaf candidate-path-total-count {
            type uint32;
            description
              "Number of candidate-paths in the SR Policy";
          }
    
          list candidate-path {
            description
              "List of candidate-paths";
            uses PM-SRPOLICY-CANDIDATE-PATH-BAG;
          }  // list candidate-path
        }  // grouping PM-SRPOLICY-BAG
      }  // submodule Cisco-IOS-XR-perf-meas-oper-sub2
    

© 2023 YumaWorks, Inc. All rights reserved.