netconfcentral logo

ietf-mplstpoam@2017-10-29



  module ietf-mplstpoam {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-mplstpoam";

    prefix mplstpoam;

    import ietf-inet-types {
      prefix inet;
    }

    organization "IETF MPLS Working Group";

    contact "draft-zhang-mpls-tp-yang-oam";

    description "MPLS TP OAM YANG Module";

    revision "2017-10-29" {
      description "05 revision";
      reference
        "draft-zhang-mpls-tp-yang-oam";

    }


    typedef enable {
      type boolean;
      description "enable";
    }

    typedef me-type {
      type enumeration {
        enum "none" {
          value 0;
          description
            "ME type is not assigned.";
        }
        enum "section" {
          value 1;
          description
            "ME type is MPLS-TP Sections (between MPLS
        LSRs).";
        }
        enum "lsp" {
          value 2;
          description
            "ME type is an end-to-end LSP (between LERs).";
        }
        enum "pw" {
          value 3;
          description
            "ME type is an end-to-end Single-Segment
        Pseudowire (SS-PW) or MS-PW (between T-PEs).";
        }
        enum "lsp-spme" {
          value 4;
          description
            "ME type is an SPME (between a given pair
        of LERs and/or LSRs along an LSP).";
        }
        enum "pw-spme" {
          value 5;
          description
            "ME type is an SPME (between a given pair
        of T-PEs and/or S-PEs along an (MS-)PW).";
        }
      }
      description "ME type";
    }

    typedef cc-session-mode {
      type enumeration {
        enum "coordinated" {
          value 0;
          description "coordinated";
        }
        enum "independent" {
          value 1;
          description "independent";
        }
      }
      description "CC session mode";
    }

    typedef cc-interval {
      type uint32 {
        range "1..65535";
      }
      description
        "The value rang for cc packet transmit and receive
    interval.";
    }

    typedef cv-interval {
      type uint32 {
        range "1..65535";
      }
      description
        "The value rang for cv packet transmit interval.";
    }

    typedef cc-detect-multiplier {
      type uint8 {
        range "1..255";
      }
      description
        "The value rang for cv packet detect multiplier";
    }

    typedef cv-detect-multiplier {
      type uint8 {
        range "1..255";
      }
      description
        "The value rang for cv packet detect multiplier";
    }

    typedef lkr-interval {
      type enumeration {
        enum "interval1000ms" {
          value 0;
          description "1000ms";
        }
        enum "interval60000ms" {
          value 1;
          description "60000ms";
        }
      }
      description "lkr-interval";
    }

    typedef ais-interval {
      type enumeration {
        enum "interval1000ms" {
          value 0;
          description "1000ms";
        }
        enum "interval60000ms" {
          value 1;
          description "60000ms";
        }
      }
      description "ais-interval";
    }

    typedef me-direction {
      type enumeration {
        enum "ingress" {
          value 0;
          description
            "The direction to the ME is ingress";
        }
        enum "egress" {
          value 1;
          description
            "The direction to the ME is egress";
        }
        enum "dual" {
          value 2;
          description
            "The direction to the ME is dual";
        }
        enum "none" {
          value 3;
          description
            "The direction to the ME is none";
        }
      }
      description "me-direction";
    }

    typedef me-state {
      type enumeration {
        enum "init" {
          value 0;
          description "The me state is init";
        }
        enum "down" {
          value 1;
          description "The me state is down";
        }
        enum "up" {
          value 2;
          description "The me state is up";
        }
      }
      description "me-state";
    }

    typedef dm-interval {
      type uint32 {
        range "1..65535";
      }
      description
        "The value rang for dm packet transmit interval";
    }

    typedef dm-padding-value {
      type enumeration {
        enum "paddingvalue0" {
          value 0;
          description "0";
        }
        enum "paddingvalue1" {
          value 1;
          description "1";
        }
      }
      description "dm-padding-value";
    }

    typedef lm-interval {
      type uint32 {
        range "1..65535";
      }
      description
        "The value rang for lm packet transmit interval";
    }

    typedef measure-mode {
      type enumeration {
        enum "on-demand" {
          value 0;
          description "on-demand";
        }
        enum "proactive" {
          value 1;
          description "proactive";
        }
      }
      description "measure mode";
    }

    typedef vc-type {
      type uint16 {
        range "1..65535";
      }
      description
        "The namespace of the vc type of pw";
    }

    typedef statistics-status {
      type enumeration {
        enum "finished" {
          value 0;
          description "finished";
        }
        enum "working" {
          value 1;
          description "working";
        }
      }
      description "statistics status";
    }

    typedef error-info {
      type enumeration {
        enum "valid" {
          value 0;
          description "valid";
        }
        enum "invalid-loss" {
          value 1;
          description "invalid-loss";
        }
        enum "invalid-delay" {
          value 2;
          description "invalid-delay";
        }
      }
      description "error-info";
    }

    typedef defect-status-type {
      type string {
        length "1..8191";
      }
      description
        "The namespace of defect status type";
    }

    typedef defect-type {
      type string {
        length "1..8191";
      }
      description
        "The namespace of defect type";
    }

    typedef tunnel-type {
      type enumeration {
        enum "ingress" {
          value 0;
          description "ingress";
        }
        enum "egress" {
          value 1;
          description "egress";
        }
        enum "bidirectional" {
          value 2;
          description "bidirectional";
        }
      }
      description "tunnel type";
    }

    typedef tunnel-direction-type {
      type enumeration {
        enum "unidirectional" {
          value 0;
          description "unidirectional";
        }
        enum "bidirectional" {
          value 1;
          description "bidirectional";
        }
      }
      description "tunnel direction type";
    }

    typedef active-type {
      type enumeration {
        enum "deactive" {
          value 0;
          description "deactive";
        }
        enum "active" {
          value 1;
          description "active";
        }
      }
      description "active-type";
    }

    typedef gal-mode {
      type enumeration {
        enum "with-13" {
          value 0;
          description
            "Gal mode is with label 13";
        }
        enum "without-13" {
          value 1;
          description
            "Gal mode is without label 13";
        }
      }
      description "gal mode";
    }

    typedef one-way-rcv-type {
      type enumeration {
        enum "on-demand" {
          value 0;
          description
            "The switch of receive eanble takes effect
        on-demand one-way delay-measure";
        }
        enum "proactive" {
          value 1;
          description
            "The switch of receive eanble takes effect
        proactive one-way delay-measure";
        }
      }
      description "one way receive type";
    }

    grouping pw {
      description "pw";
      leaf local-peer-ip {
        type inet:ip-address;
        mandatory true;
        description
          "This object indicates the peer IP address";
      }

      leaf local-vc-id {
        type uint32 {
          range "1..4294967295";
        }
        mandatory true;
        description
          "This object indicates the vc ID of PW
      type ME";
      }

      leaf local-vc-type {
        type vc-type;
        mandatory true;
        description
          "This object indicates the vc type of VC
      type ME";
      }

      leaf remote-peer-ip {
        type inet:ip-address;
        description
          "This object indicates the remote peer IP of
      PW type ME";
      }

      leaf remote-vc-id {
        type uint32 {
          range "1..4294967295";
        }
        description
          "This object indicates the remote vc ID of
      PW type ME";
      }

      leaf remote-vc-type {
        type vc-type;
        description
          "This object indicates the remote vc type of
      PW type ME";
      }
    }  // grouping pw

    grouping lsp {
      description "lsp";
      leaf tunnel-name {
        type string {
          length "0..63";
        }
        mandatory true;
        description
          "The object indicates the name of tunnel";
      }

      leaf tunnel-id {
        type uint32 {
          range "1..65535";
        }
        description
          "The object indicates the tunnel id";
      }

      leaf ingress-lsr-id {
        type inet:ip-address;
        description
          "The object indicates the ingress LSR-ID";
      }
    }  // grouping lsp

    grouping pw-spme {
      description "pw spme";
      leaf local-peer-ip {
        type inet:ip-address;
        mandatory true;
        description
          "This object indicates the peer IP address of
      PW type MIP";
      }

      leaf local-vc-id {
        type uint32 {
          range "1..4294967295";
        }
        mandatory true;
        description
          "This object indicates the vc ID of PW type MIP";
      }

      leaf switch-peer-ip {
        type inet:ip-address;
        mandatory true;
        description
          "This object indicates the peer IP address of
      PW switch node";
      }

      leaf switch-vc-id {
        type uint32 {
          range "1..4294967295";
        }
        mandatory true;
        description
          "This object indicates the vc id of PW switch
      node";
      }

      leaf vc-type {
        type vc-type;
        mandatory true;
        description
          "This object indicates the vc type of PW type MIP";
      }

      leaf instance-name {
        type string {
          length "1..31";
        }
        mandatory true;
        description
          "This object specifies the VPWS instance name";
      }
    }  // grouping pw-spme

    grouping me-detect-status {
      description
        "This node indicate detect status of ME";
      leaf me-index {
        type uint32 {
          range "1..65535";
        }
        description
          "The object indicates the index of ME";
      }

      leaf me-direction {
        type me-direction;
        description
          "The object indicates the direction of ME";
      }

      leaf me-state {
        type me-state;
        description
          "The object indicates the state of ME";
      }

      leaf local-state {
        type me-state;
        description
          "The object indicates the local status of ME";
      }

      leaf remote-state {
        type me-state;
        description
          "The object indicates the remote state of ME";
      }

      leaf alarm-indicate {
        type string {
          length "1..26";
        }
        description
          "The object indicates the alarm of ME";
      }

      leaf local-defect-status {
        type defect-status-type;
        default "init";
        description
          "This object indicates the local defect status";
      }

      leaf local-invalid-time {
        type uint32 {
          range "0..4294967295";
        }
        description
          "This object indicates the invalid Time of
      local detect";
      }

      leaf local-defect-location {
        type string {
          length "1..32";
        }
        description
          "This object indicates the local defect location";
      }

      leaf local-defect-type {
        type defect-type;
        description
          "This object indicates the local defect type";
      }

      leaf remote-defect-status {
        type defect-status-type;
        default "init";
        description
          "This object indicates the remote defect status";
      }

      leaf remote-invalid-time {
        type uint32 {
          range "0..4294967295";
        }
        description
          "This object indicates the invalid Time of
      remote detect";
      }

      leaf remote-defect-location {
        type string {
          length "1..32";
        }
        description
          "This object indicates the remote defect location";
      }

      leaf remote-defect-type {
        type defect-type;
        description
          "This object indicates the remote defect type";
      }
    }  // grouping me-detect-status

    grouping gal-set {
      description
        "This object indicates the gal set";
      leaf gal-enable {
        type enable;
        default "true";
        description
          "This object indicates the gal flag";
      }

      leaf gal-mode {
        type gal-mode;
        description
          "This object indicates the gal flag";
      }
    }  // grouping gal-set

    container mplstp-oam {
      description "Top level container.";
      leaf ais-enable {
        type enable;
        default "false";
        description
          "This object indicates the global ais flag
      of mpls-tp oam";
      }

      list meg {
        key "meg-name";
        description "meg multi instances.";
        leaf meg-name {
          type string {
            length "1..14";
          }
          mandatory true;
          description
            "The object indicates the name of MEG";
        }

        leaf me-type {
          type me-type;
          default "none";
          description
            "The object indicates the type of ME";
        }

        leaf meg-id {
          type string {
            length "1..96";
          }
          description
            "The object indicates the ID of MEG";
        }

        leaf meg-level {
          type uint8 {
            range "0..7";
          }
          default "7";
          description
            "The object indicates the level of MEG";
        }

        leaf oam-active-state {
          type active-type;
          default "deactive";
          description
            "This object indicates the oam active state";
        }

        list pw {
          key "local-peer-ip local-vc-id local-vc-type remote-peer-ip remote-vc-id remote-vc-type";
          description "PW";
          uses pw;

          leaf mep-id {
            type uint16 {
              range "1..8191";
            }
            description
              "This object indicates the MEP Id of local ME";
          }

          leaf remote-mep-id {
            type uint16 {
              range "1..8191";
            }
            description
              "This object indicates the MEP Id of remote
           ME";
          }

          leaf vll-ttl {
            type uint8 {
              range "1..255";
            }
            description
              "This object indicates the VLL ttl of PW
          type ME";
          }

          uses gal-set;
        }  // list pw

        list lsp {
          key "tunnel-name tunnel-id ingress-lsr-id";
          description "LSP";
          uses lsp;

          leaf mep-id {
            type uint16 {
              range "1..8191";
            }
            description
              "This object indicates the MEP Id of
          local ME";
          }

          leaf remote-mep-id {
            type uint16 {
              range "1..8191";
            }
            description
              "This object indicates the MEP Id of
          remote ME";
          }

          leaf reverse-tunnel-name {
            type string {
              length "0..63";
            }
            mandatory true;
            description
              "The object indicates the name of
          reverse tunnel";
          }

          leaf reverse-tunnel-id {
            type uint16 {
              range "1..65535";
            }
            description
              "The object indicates the ingress
          reverse tunnelId";
          }

          leaf reverse-ingress-lsr-id {
            type inet:ip-address;
            description
              "The object indicates the ingress
          reverse LSR-ID";
          }

          leaf tunnel-description {
            type string {
              length "1..32";
            }
            description
              "The object indicates the description
          of tunnel";
          }

          leaf tunnel-type {
            type tunnel-type;
            default "ingress";
            description
              "The object indicates the type of tunnel";
          }

          leaf tunnel-direction {
            type tunnel-direction-type;
            description
              "The object indicates the direction of tunnel";
          }
        }  // list lsp

        list section {
          key "section-id";
          description "Section";
          leaf section-id {
            type uint64 {
              range "1..2147483647";
            }
            description
              "This object indicates the section ID";
          }

          leaf if-name {
            type string {
              length "1..63";
            }
            description
              "The object indicates the interface name";
          }

          leaf peer-ip {
            type inet:ip-address;
            mandatory true;
            description
              "This object indicates the peer IP address";
          }

          leaf peer-lsr-id {
            type inet:ip-address;
            description
              "This object indicates the peer lsr ID";
          }

          leaf mep-id {
            type uint16 {
              range "1..8191";
            }
            description
              "This object indicates the MEP Id of
          local ME";
          }

          leaf remote-mep-id {
            type uint16 {
              range "1..8191";
            }
            description
              "This object indicates the MEP Id of
          remote ME";
          }
        }  // list section

        list pw-spme {
          key "local-peer-ip local-vc-id switch-peer-ip switch-vc-id vc-type instance-name";
          description "PW-SPME";
          uses pw-spme;
        }  // list pw-spme

        list lsp-spme {
          key "tunnel-id local-lsr-id remote-lsr-id";
          description "LSP-SPME";
          leaf tunnel-id {
            type uint32 {
              range "1..65535";
            }
            description
              "The object indicates the tunnel id";
          }

          leaf local-lsr-id {
            type inet:ip-address;
            description
              "The object indicates the ingress LSR-ID";
          }

          leaf remote-lsr-id {
            type inet:ip-address;
            description
              "The object indicates the egress LSR-ID";
          }
        }  // list lsp-spme

        container cc {
          description "CC";
          leaf cc-session-mode {
            type cc-session-mode;
            default "coordinated";
            description
              "This object indicates the session
          mode of CC";
          }

          leaf cc-authentication-enable {
            type enable;
            default "true";
            description
              "CC authentication enable";
          }

          leaf cc-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of CC
          packet which is sent in the MEG";
          }

          leaf cc-transmit-interval {
            type cc-interval;
            default "1";
            description
              "The interval of CC packet which is
          transmit in the MEG";
          }

          leaf cc-recieve-interval {
            type cc-interval;
            default "1";
            description
              "The interval of CC packet which is
          recieved in the MEG";
          }

          leaf cc-detect-multiplier {
            type cc-detect-multiplier;
            default "3";
            description
              "The object indicate the detect
          multiplier of CC packet";
          }

          leaf cc-enable {
            type enable;
            default "true";
            description
              "The object indicates whether CC can be
          sent by the MEG";
          }
        }  // container cc

        container cv {
          description "CV";
          leaf cv-session-mode {
            type cc-session-mode;
            default "coordinated";
            description
              "This object indicates the session
          mode of CC";
          }

          leaf cv-authentication-enable {
            type enable;
            default "true";
            description
              "CV authentication enable";
          }

          leaf cv-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of CV packet
          which is sent in the MEG";
          }

          leaf cv-interval {
            type cv-interval;
            default "1";
            description
              "The interval of CV packet which is sent
          in the MEG";
          }

          leaf cv-detect-multiplier {
            type cv-detect-multiplier;
            default "3";
            description
              "The object indicate the detect multiplier
          of CV packet";
          }

          leaf cv-enable {
            type enable;
            default "true";
            description
              "The object indicates whether CC can be
          received by the MEG";
          }
        }  // container cv

        container ais {
          description "AIS";
          leaf ais-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of AIS packet
          which is sent in the MEG";
          }

          leaf ais-interval {
            type ais-interval;
            default "interval1000ms";
            description
              "This object indicates the interval of AIS
          packet which is sent in the MEG";
          }
        }  // container ais

        container lkr {
          description "LKR";
          leaf lkr-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of lock report
          packet which is sent in the MEG";
          }

          leaf lkr-interval {
            type lkr-interval;
            default "interval1000ms";
            description
              "This object indicates the interval of lock
          report packet which is sent in the MEG";
          }

          leaf lkr-enable {
            type enable;
            default "false";
            description
              "The object indicates whether lock report
          is enabled in the MEG";
          }
        }  // container lkr

        container one-way-dm-send {
          description
            "One way delay measurement send";
          leaf one-dm-send-enable {
            type enable;
            default "false";
            description
              "This object indicates the 1DM statistics
          is enabled in the MEG";
          }

          leaf one-dm-interval {
            type dm-interval;
            default "1000";
            description
              "This object indicates the interval of
          1DM statistics in the MEG";
          }

          leaf one-dm-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of 1DM
          packet which is sent in the MEG";
          }

          leaf one-dm-packet-size {
            type uint16 {
              range "64..1518";
            }
            description
              "This object indicates the packet size
          of 1DM packet which is sent in the MEG";
          }

          leaf one-dm-pad-value {
            type dm-padding-value;
            default "paddingvalue0";
            description
              "This object indicates the padding value
          of 1DM packet which is sent in the MEG";
          }
        }  // container one-way-dm-send

        container one-way-dm-rcv {
          description
            "One way delay measurement received";
          leaf onr-dm-rcv-enable {
            type enable;
            default "false";
            description
              "This object indicates the 1DM receive
          is enabled in the MEG";
          }

          leaf one-dm-rcv-enable-type {
            type one-way-rcv-type;
            description
              "This object indicates the 1DM receive type";
          }
        }  // container one-way-dm-rcv

        container two-way-dm-send {
          description
            "Two way delay measurement send";
          leaf two-dm-send-enable {
            type enable;
            default "false";
            description
              "This object indicates the 2DM statistics
          is enabled in the MEG";
          }

          leaf two-dm-interval {
            type dm-interval;
            default "1000";
            description
              "This object indicates the interval of
          2DM statistics in the MEG";
          }

          leaf two-dm-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of 2DM
          packet which is sent in the MEG";
          }

          leaf two-dm-packet-size {
            type uint16 {
              range "64..1518";
            }
            description
              "This object indicates the packet size of
          2DM packet which is sent in the MEG";
          }

          leaf two-dm-pad-value {
            type dm-padding-value;
            default "paddingvalue0";
            description
              "This object indicates the padding value of
          2DM packet which is sent in the MEG";
          }

          leaf two-dm-time-stamp {
            type enable;
            default "false";
            description
              "This object indicates whether two-way delay
          measurement time stamp is enable in the MEG";
          }
        }  // container two-way-dm-send

        container two-way-dm-rcv {
          description
            "Two way delay measurement recieved";
          leaf two-dm-rcv-enable {
            type enable;
            default "false";
            description
              "This object indicates the 2DM receiving
          statistics is enabled in the MEG";
          }
        }  // container two-way-dm-rcv

        container single-lm-send {
          description
            "Single loss measurment send";
          leaf slm-send-enable {
            type enable;
            default "false";
            description
              "This object indicates whether slm send
          is enable in the MEG";
          }

          leaf slm-interval {
            type lm-interval;
            default "1000";
            description
              "This object indicates the interval of
          slm statistics in the MEG";
          }

          leaf slm-exp {
            type uint8 {
              range "0..7";
            }
            default "7";
            description
              "This object indicates the exp of slm
          packet which is sent in the MEG";
          }
        }  // container single-lm-send

        container single-lm-rcv {
          description
            "Single loss measurment received";
          leaf slm-rcv-enable {
            type enable;
            default "false";
            description
              "This object indicates whether slm
          receive is enable in the MEG";
          }
        }  // container single-lm-rcv

        container dual-lm {
          description
            "Dual loss measurement";
          leaf dlm-enable {
            type enable;
            default "false";
            description
              "This object indicates the dual loss
          statistics is enabled in the MEG";
          }
        }  // container dual-lm

        container status-info {
          config false;
          description "Status info";
          list pw {
            description "PW";
            uses me-detect-status;
          }  // list pw

          list lsp {
            description "LSP";
            uses me-detect-status;

            leaf me-index-egress {
              type uint32 {
                range "1..65535";
              }
              description
                "The object indicates the egress index
            of ME";
            }

            leaf me-direct-egress {
              type me-direction;
              description
                "The object indicates the direction of
            egress ME";
            }

            leaf status-board-egress {
              type string {
                length "1..19";
              }
              description
                "The object indicates the selected status
             board of ME";
            }

            leaf state-egress {
              type me-state;
              description
                "The object indicates the status of ME";
            }

            leaf alarm-egress {
              type string {
                length "1..26";
              }
              description
                "The object indicates the alarm of ME";
            }
          }  // list lsp

          list section {
            description "Section";
            uses me-detect-status;
          }  // list section

          list pw-spme {
            description "PW-SPME";
            leaf me-index {
              type uint32 {
                range "1..65535";
              }
              description
                "The object indicates the index of MIP";
            }

            leaf me-direction {
              type me-direction;
              description
                "The object indicates the direction of MIP";
            }

            leaf me-state {
              type me-state;
              description
                "The object indicates the state of MIP";
            }

            leaf mip-id {
              type uint16 {
                range "1..8191";
              }
              description
                "The object indicates the ID of MIP";
            }
          }  // list pw-spme

          list lsp-spme {
            description "LSP-SPME";
            leaf me-index {
              type uint32 {
                range "1..65535";
              }
              description
                "The object indicates the index of te MIP";
            }

            leaf me-direction {
              type me-direction;
              description
                "The object indicates the direction of
            te MIP";
            }

            leaf me-state {
              type me-state;
              description
                "The object indicates the state of te MIP";
            }

            leaf mip-id {
              type uint16 {
                range "1..8191";
              }
              description
                "The object indicates the ID of te MIP";
            }
          }  // list lsp-spme
        }  // container status-info

        container detect-result {
          config false;
          description "Detect result";
          container one-way-dm-result {
            config false;
            description
              "One way delay measurement result";
            leaf send-pkt-num {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Send packet number";
            }

            leaf recv-pkt-num {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Recieved packet number";
            }

            leaf delay-min {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the minimum delay
            of received LB packets in the MEG";
            }

            leaf delay-max {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the maximum delay
            of received LB packets in the MEG";
            }

            leaf delay-avg {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average delay
            of received LB packets in the MEG";
            }

            leaf jitter-min {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the minimum jitter
            of received LB packets in the MEG";
            }

            leaf jitter-max {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average jitter
            of received LB packets in the MEG";
            }

            leaf jitter-avg {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average jitter
            of received LB packets in the MEG";
            }

            container one-way-dm-data {
              config false;
              description
                "One way delay measurement data";
              list one-way-dm-data {
                key "index";
                description
                  "One way delay measurement data";
                leaf index {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates index of 1DM
                statistics record in the MEG";
                }

                leaf one-delay {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates delay of 1DM
                statistics in the MEG";
                }

                leaf one-delay-var {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates delay Variation
                of 1DM statistics in the MEG";
                }

                leaf error-info {
                  type error-info;
                  description
                    "This object indicates the error info
                of statistics record in the MEG";
                }
              }  // list one-way-dm-data
            }  // container one-way-dm-data
          }  // container one-way-dm-result

          container one-way-send-result {
            config false;
            description
              "One way send result";
            leaf measure-mode {
              type measure-mode;
              default "on-demand";
              description
                "The flag indicates whether the measurement
            is an on-demand or a continue measurement";
            }

            leaf status {
              type statistics-status;
              default "finished";
              description
                "The flag indicates whether the measurement
            is finished";
            }
          }  // container one-way-send-result

          container two-way-dm-result {
            config false;
            description
              "Two way delay measurement result.";
            leaf measure-mode {
              type measure-mode;
              default "on-demand";
              description
                "The flag indicates whether the measurement
            is an on-demand or a continue measurement";
            }

            leaf status {
              type statistics-status;
              default "finished";
              description
                "The flag indicates whether the measurement
            is finished";
            }

            leaf send-pkt-num {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Send packet number";
            }

            leaf rcv-pkt-num {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Received packet number";
            }

            leaf delay-min {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the minimum delay
            of received LB packets in the MEG";
            }

            leaf delay-max {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the maximum delay
            of received LB packets in the MEG";
            }

            leaf delay-avg {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average delay
            of received LB packets in the MEG";
            }

            leaf jitter-min {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the minimum jitter
            of received LB packets in the MEG";
            }

            leaf jitter-max {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average jitter
            of received LB packets in the MEG";
            }

            leaf jitter-avg {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average jitter
            of received LB packets in the MEG";
            }

            container two-way-dm-data {
              config false;
              description
                "Two way delay measurement data";
              list two-way-dm-data {
                key "index";
                description
                  "Two way delay measurement data";
                leaf index {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates index of 2DM
                statistics record in the MEG";
                }

                leaf two-delay {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates delay of 2DM
                statistics in the MEG";
                }

                leaf two-delay-var {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates delay Variation
                of 2DM statistics in the MEG";
                }

                leaf error-info {
                  type error-info;
                  description
                    "This object indicates the error info
                of statistics record in the MEG";
                }
              }  // list two-way-dm-data
            }  // container two-way-dm-data
          }  // container two-way-dm-result

          container single-lm-result {
            config false;
            description
              "Single loss measurement result.";
            leaf measure-mode {
              type measure-mode;
              default "on-demand";
              description
                "The flag indicates whether the measurement
            is an on-demand or a continue measurement";
            }

            leaf status {
              type statistics-status;
              default "finished";
              description
                "The flag indicates whether the measurement
            is finished";
            }

            leaf send-pkt-num {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Send packet number";
            }

            leaf rcv-pkt-num {
              type uint32 {
                range "1..4294967295";
              }
              description
                "Received packet number";
            }

            leaf rmt-loss-ratio-min {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the minimum loss-ratio
            of received LB packets in the MEG";
            }

            leaf rmt-loss-ratio-max {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the maximum loss-ratio
            of received LB packets in the MEG";
            }

            leaf rmt-loss-atio-avg {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average loss-ratio
            of received LB packets in the MEG";
            }

            leaf rmt-loss-count-min {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the minimum packet
            lost of received LB packets in the MEG";
            }

            leaf rmt-loss-count-max {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average packet
            lost of received LB packets in the MEG";
            }

            leaf rmt-loss-count-avg {
              type uint32 {
                range "1..4294967295";
              }
              description
                "This object indicates the average packet
            lost of received LB packets in the MEG";
            }

            container single-lm-data {
              config false;
              description
                "Single loss measurement data";
              list single-lm-data {
                key "index";
                description
                  "Single loss measurement data";
                leaf index {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates index of slm
                statistics record in the MEG";
                }

                leaf slm-loss-lcl {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates local packet
                loss of slm statistics in the MEG";
                }

                leaf slm-loss-lcl-rat {
                  type string {
                    length "1..24";
                  }
                  description
                    "This object indicates local packet
                loss rate of slm statistics in the MEG";
                }

                leaf slm-loss-rmt {
                  type uint32 {
                    range "1..4294967295";
                  }
                  description
                    "This object indicates remote packet
                loss of slm statistics in the MEG";
                }

                leaf slm-loss-rmt-rat {
                  type string {
                    length "1..24";
                  }
                  description
                    "This object indicates remote packet
                loss rate of slm statistics in the MEG";
                }

                leaf error-info {
                  type error-info;
                  description
                    "This object indicates the error
                info of statistics record in the MEG";
                }
              }  // list single-lm-data
            }  // container single-lm-data
          }  // container single-lm-result

          container dual-lm-data {
            config false;
            description
              "Dula loss measurement data";
            list dual-lm-data {
              key "index";
              description
                "Dual loss measurement data";
              leaf index {
                type uint32 {
                  range "1..4294967295";
                }
                description
                  "This object indicates index of dlm
              statistics record in the MEG";
              }

              leaf dlm-Loss-lcl {
                type uint32 {
                  range "1..4294967295";
                }
                description
                  "This object indicates local packet
              loss of dlm statistics in the MEG";
              }

              leaf dlm-loss-lcl-rat {
                type string {
                  length "1..24";
                }
                description
                  "This object indicates local packet
              loss rate of dlm statistics in the MEG";
              }

              leaf dlm-loss-rmt {
                type uint32 {
                  range "1..4294967295";
                }
                description
                  "This object indicates remote packet
              loss of dlm statistics in the MEG";
              }

              leaf dlm-loss-rmt-rat {
                type string {
                  length "1..24";
                }
                description
                  "This object indicates remote packet
              loss rate of dlm statistics in the MEG";
              }

              leaf error-info {
                type error-info;
                description
                  "This object indicates the error info
              of statistics record in the MEG";
              }
            }  // list dual-lm-data
          }  // container dual-lm-data
        }  // container detect-result
      }  // list meg
    }  // container mplstp-oam
  }  // module ietf-mplstpoam