module ciena-waveserver-pm {
  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-pm";
  prefix pm;

  import ciena-waveserver-typedefs {
    prefix cienawstypes;
  }

  organization
    "Ciena Corporation";
  contact
    "Web URL: http://www.ciena.com/
     Postal:  7035 Ridge Road
            Hanover, Maryland 21076
            U.S.A.
     Phone:   +1 800-921-1144
     Fax:     +1 410-694-5750";
  description
    "This module defines performance monitoring data for the Waveserver.";

  revision 2018-01-16 {
    description
      "Added DGD max/avg and PDL max/avg PM counters to PTP modem performance instances.
       Updated Valid range for history bin-numbers are defined.";
    reference "";
  }
  revision 2017-09-18 {
    description
      "Waveserver Platform Data Model
       Migrated from Waveserver Classic R1.4 YANG model.
       Updated namespace to 'ciena-waveserver'.
       Update 'pm-interface-type' enum values to { ptp | port | channel }.
       Updated 'pm-profile-type' enum values to { optical-power | modem-performance | otu-performance | odu-performance | ethernet-performance }.
       Removed obsolete 'mac-layer' containers.
       Removed 'instance-type' leafs and typedef.
       Removed 'pm-bin-state' leafs and typedef.
       Removed 'actual' from power-counts grouping.
       Removed 'post-fec-bit-error-rate' leafs.
       Removed 'alignment' from 'instance-properties' grouping.
       Restructured pm bin and instance data into nested groupings.
       Changed pm counters from leafs to containers with 'value', 'invalid-data-flag', and 'supported' leafs for each.
       Updated several counter attributes to match the Waveserver Ai data model.
       Removed 'current-bin-id' from pm instance state container.
       Removed 'bin-number' from the current bin id containers, only needed for history bins list.
       Removed 'persistence-interval' and 'persistence-storage-location' from 'global-config' container.";
    reference "";
  }

  grouping pm-instance-id-container {
    description
      "Grouping for PM instance id container and attributes.";
    container id {
      config false;
      description
        "PM instance identification.";
      leaf instance-id {
        type uint32;
        description
          "ID of the PM instance.";
      }
      leaf profile-type {
        type pm-profile-type;
        description
          "The PM profile type.";
      }
    }
  }

  grouping pm-instance-state-container {
    description
      "Grouping for PM instance state container and attributes.";
    container state {
      description
        "PM instance state.";
      leaf admin-state {
        type cienawstypes:enabled-disabled-enum;
        description
          "The configured administrative state of the port.";
      }
      leaf operational-state {
        type cienawstypes:enabled-disabled-enum;
        config false;
        description
          "The operational state of the PM instance.";
      }
      leaf collection-start-date-time {
        type cienawstypes:string-maxl-64;
        config false;
        description
          "The PM stats collection starting date and time.";
      }
      leaf collection-end-date-time {
        type cienawstypes:string-maxl-64;
        config false;
        description
          "The PM stats collection ending date and time.";
      }
    }
  }

  grouping pm-instance-properties-container {
    description
      "Grouping for PM instance properties container and attributes.";
    container properties {
      config false;
      description
        "PM instance properties.";
      leaf configuration-mode {
        type pm-configuration-mode;
        description
          "The PM instance configuration mode";
      }
      leaf configured-bin-count {
        type uint32;
        description
          "The configured number of history bins.";
      }
      leaf configured-bin-duration {
        type uint32;
        units "minutes";
        description
          "The configured PM bin duration in minutes.";
      }
    }
    container attached-interface {
      config false;
      description
        "Attached interface.";
      leaf type {
        type pm-interface-type;
        description
          "Attached interface type.";
      }
      leaf name {
        type cienawstypes:string-maxl-32;
        description
          "Attached interface name.";
      }
      leaf operational-state {
        type cienawstypes:enabled-disabled-enum;
        description
          "Attached interface operational state.";
      }
    }
  }

  grouping pm-bin-id-container {
    description
      "Grouping for PM bin id container and attributes.";
    container id {
      config false;
      description
        "PM Bin identification.";
      leaf bin-name {
        type cienawstypes:string-maxl-32;
        description
          "The PM bin name.";
      }
    }
  }

  grouping pm-current-bin-state-container {
    description
      "Grouping for PM current bin state container and attributes.";
    container state {
      config false;
      description
        "PM bin state.";
      leaf start-date-time {
        type cienawstypes:string-maxl-32;
        description
          "Start date and time.";
      }
      leaf cleared-date-time {
        type cienawstypes:string-maxl-32;
        description
          "Cleared date and time.";
      }
    }
  }

  grouping pm-history-bin-state-container {
    description
      "Grouping for PM history bin state container and attributes.";
    container state {
      config false;
      description
        "PM bin state.";
      leaf start-date-time {
        type cienawstypes:string-maxl-32;
        description
          "Start date and time.";
      }
      leaf end-date-time {
        type cienawstypes:string-maxl-32;
        description
          "End date and time.";
      }
    }
  }

  grouping pm-counter-meta {
    description
      "Grouping for PM counter metadata, including IDF and supported flags.";
    leaf invalid-data-flag {
      type boolean;
      description
        "Invalid Data Flag (IDF) value. Reports the validity of the corresponding
         PM data. Reported only with previous interval PM counters. A value of true
         indicates the PM data for the specified counter or interval is incomplete
         or invalid.";
      reference "ITU-T G.997.2, sections 7.7.2 and 7.8.2.";
    }
    leaf supported {
      type boolean;
      description
        "Indicates whether the specified counter is supported on associated
         hardware version and interface type.";
    }
  }

  grouping pm-counter-group {
    description
      "Grouping for basic PM counters, including count value and metadata.";
    leaf value {
      type uint64;
      description
        "PM counter value.";
    }
    uses pm-counter-meta;
  }

  grouping pm-counter-percent-group {
    description
      "Grouping for PM counters with percent units, including count value and metadata.";
    leaf value {
      type cienawstypes:decimal-1-dig;
      units "percent";
      description
        "PM value, as a percentage.";
    }
    uses pm-counter-meta;
  }

  grouping pm-counter-dbm-group {
    description
      "Grouping for PM counters with dBm units, including count value and metadata.";
    leaf value {
      type cienawstypes:decimal-3-dig;
      units "dBm";
      description
        "PM value, as a power level in dBm.";
    }
    uses pm-counter-meta;
  }

  grouping pm-counter-db-group {
    description
      "Grouping for PM counters with dB units, including count value and metadata.";
    leaf value {
      type cienawstypes:decimal-3-dig;
      units "dB";
      description
        "PM value, as loss or gain in dB.";
    }
    uses pm-counter-meta;
  }

  grouping pm-counter-qfac-group {
    description
      "Grouping for q-factor PMs, including count value and metadata.";
    leaf value {
      type cienawstypes:decimal-3-dig;
      description
        "PM value, as a q-factor.";
    }
    uses pm-counter-meta;
  }

  grouping pm-counter-ber-group {
    description
      "Grouping for BER PM counters in scientific notation, including count value and metadata.";
    leaf value {
      type cienawstypes:string-sci;
      description
        "PM value, as a bit error rate in scientific notation.";
    }
    uses pm-counter-meta;
  }

  grouping ethernet-pm-counts-rx {
    description
      "Grouping for Ethernet port PM Rx counters.";
    container bytes {
      description
        "Number of bytes received including good and bad packets. This includes
         FCS bytes, but excludes framing bits.";
      uses pm-counter-group;
    }
    container packets {
      description
        "Number of packets received, including all unicast, multicast, broadcast, MAC control, and bad packets";
      uses pm-counter-group;
    }
    container crc-errored-packets {
      description
        "Number of packets received which contained an FCS error and were between 64 and 1518 bytes in length.";
      uses pm-counter-group;
    }
    container multicast-packets {
      description
        "Number of good multicast packets received that were between 64 and 1518 bytes in length. Excludes MAC control frames";
      uses pm-counter-group;
    }
    container broadcast-packets {
      description
        "Number of good broadcast packets received that were between 64 and 1518 bytes in length. Excludes MAC control frames";
      uses pm-counter-group;
    }
    container undersized-packets {
      description
        "Number of packets received that were less than 64 bytes (excluding framing bits but including FCS bytes) and were otherwise well formed. This counter also includes the number of packets discarded because of Ethernet length check errors. Undersize packets are discarded.";
      uses pm-counter-group;
    }
    container oversized-packets {
      description
        "Number of packets received (including unicast, multicast, and broadcast packets) that were longer than 1518 bytes up to the configured maximum frame size, that contained a valid FCS (excluding framing bits but including FCS bytes), and that were otherwise well formed";
      uses pm-counter-group;
    }
    container fragment-packets {
      description
        "Number of packets received between 10 and 63 bytes in length (excluding framing bits but including FCS bytes) that had either a bad FCS with an integral number of bytes (FCS Error) or a bad FCS with a non-integral number of bytes (Alignment Error). Fragment packets are discarded.";
      uses pm-counter-group;
    }
    container jabber-packets {
      description
        "Number of packets received that were longer than 1518 bytes up to the configured maximum frame size (excluding framing bits, but including FCS bytes), and had either a bad FCS with an integral number of bytes (FCS Error) or a bad FCS with a non-integral number of bytes (Alignment Error). Jabber packets are discarded";
      uses pm-counter-group;
    }
    container length-out-of-range-packets {
      description
        "Number of Rx length out-of-range packets transmitted";
      uses pm-counter-group;
    }
    container pause-packets {
      description
        "Number of received valid pause packets that were between 64 and 1518 bytes in length";
      uses pm-counter-group;
    }
    container packets-64-octet {
      description
        "Number of packets (including bad packets) received that were 64 bytes in length (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-65-127-octet {
      description
        "Number of good and bad packets received that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-128-255-octet {
      description
        "Number of good and bad packets received that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-256-511-octet {
      description
        "Number of good and bad packets received that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-512-1023-octet {
      description
        "Number of good and bad packets received that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-1024-1518-octet {
      description
        "Number of good and bad packets received that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-1519-jumbo-octet {
      description
        "Number of good and bad packets received that were between 1519 bytes in length up to MTU size (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container jumbo-octet-packets {
      description
        "Number of good and bad packets received that were greater than MTU size.";
      uses pm-counter-group;
    }
    container bytes-per-second {
      description
        "Average number bytes received per second during this period.";
      uses pm-counter-group;
    }
    container frames-per-second {
      description
        "Average number frames received per second during this period.";
      uses pm-counter-group;
    }
    container average-link-utilization {
      description
        "Average percent utilization derived from Rx bytes and port speed.";
      uses pm-counter-percent-group;
    }
    container minimum-link-utilization {
      description
        "Minimum percent utilization derived from Rx bytes and port speed.";
      uses pm-counter-percent-group;
    }
    container maximum-link-utilization {
      description
        "Maximum percent utilization derived from Rx bytes and port speed.";
      uses pm-counter-percent-group;
    }
    container block-errors {
      description
        "PCS block errors.";
      uses pm-counter-group;
    }
    container multilane-bip-errors {
      description
        "PCS lane BIP errors.";
      uses pm-counter-group;
    }
    container frame-error-ratio {
      description
        "Frame error ratio.";
      uses pm-counter-group;
    }
  }

  grouping ethernet-pm-counts-tx {
    description
      "Grouping for Ethernet port PM Tx counters.";
    container bytes {
      description
        "Number of transmitted bytes in good and bad packets including FCS bytes and excluding frame bits.";
      uses pm-counter-group;
    }
    container packets {
      description
        "Number of transmitted packets, including all unicast, multicast, broadcast, MAC control, and bad packets";
      uses pm-counter-group;
    }
    container excessive-deferred-packets {
      description
        "Number of transmitted packets experiencing two or more deferrals. Applicable to copper ports only";
      uses pm-counter-group;
    }
    container underrun-packets {
      description
        "Number of underrun packets transmitted";
      uses pm-counter-group;
    }
    container crc-errored-packets {
      description
        "Number of transmitted packets with an FCS error";
      uses pm-counter-group;
    }
    container length-check-error-packets {
      description
        "Number of length check packets transmitted";
      uses pm-counter-group;
    }
    container length-out-of-range-packets {
      description
        "Number of Tx length out-of-range packets transmitted";
      uses pm-counter-group;
    }
    container pause-packets {
      description
        "Number of pause packets transmitted";
      uses pm-counter-group;
    }
    container giant-packets {
      description
        "Number of well-formed packets larger than 1518 bytes, including FCS bytes but excluding framing bits.";
      uses pm-counter-group;
    }
    container multicast-packets {
      description
        "Number of good multicast packets transmitted";
      uses pm-counter-group;
    }
    container broadcast-packets {
      description
        "Number of good broadcast packets transmitted";
      uses pm-counter-group;
    }
    container packets-64-octet {
      description
        "Number of packets (including bad packets) transmitted that were 64 bytes in length (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-65-127-octet {
      description
        "Number of good and bad packets transmitted that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-128-255-octet {
      description
        "Number of good and bad packets transmitted that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-256-511-octet {
      description
        "Number of good and bad packets transmitted that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-512-1023-octet {
      description
        "Number of good and bad packets transmitted that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-1024-1518-octet {
      description
        "Number of good and bad packets transmitted that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container packets-1519-jumbo-octet {
      description
        "Number of good and bad packets transmitted that were between 1519 bytes in length up to MTU size (excluding framing bits but including FCS bytes).";
      uses pm-counter-group;
    }
    container jumbo-octet-packets {
      description
        "Number of good and bad packets transmitted that were greater than MTU size.";
      uses pm-counter-group;
    }
    container bytes-per-second {
      description
        "Average number bytes transmitted per second during this period.";
      uses pm-counter-group;
    }
    container frames-per-second {
      description
        "Average number frames transmitted per second during this period.";
      uses pm-counter-group;
    }
    container average-link-utilization {
      description
        "Average percent utilization derived from Tx bytes and port speed.";
      uses pm-counter-percent-group;
    }
    container minimum-link-utilization {
      description
        "Minimum percent utilization derived from Tx bytes and port speed.";
      uses pm-counter-percent-group;
    }
    container maximum-link-utilization {
      description
        "Maximum percent utilization derived from Tx bytes and port speed.";
      uses pm-counter-percent-group;
    }
    container block-errors {
      description
        "PCS block errors.";
      uses pm-counter-group;
    }
    container multilane-bip-errors {
      description
        "PCS lane BIP errors.";
      uses pm-counter-group;
    }
    container frame-error-ratio {
      description
        "Frame error ratio.";
      uses pm-counter-group;
    }
  }

  grouping error-counts {
    description
      "Grouping for common PM error counts (ES, SES, UAS).";
    container errored-seconds {
      description
        "Number of seconds that error happened.";
      uses pm-counter-group;
    }
    container severely-errored-seconds {
      description
        "Number of seconds that severe error happened.";
      uses pm-counter-group;
    }
    container unavailable-seconds {
      description
        "Number of seconds that the interface was unavailable.";
      uses pm-counter-group;
    }
  }

  grouping fec-layer-counts {
    description
      "Grouping for Ethernet port FEC layer counts.";
    container corrected-codeword-count {
      description
        "FEC layer corrected codeword count";
      uses pm-counter-group;
    }
    container uncorrected-codeword-count {
      description
        "FEC layer uncorrected codeword count";
      uses pm-counter-group;
    }
    container symbol-error-count {
      description
        "FEC layer symbol error count. This is the total of error counts across all PMA lanes on this interface.";
      uses pm-counter-group;
    }
  }

  grouping dgd-counts {
    description
      "Differential Group Delay (DGD) Grouping.";
    container maximum {
      description
        "Maximum differential group delay (in ps).";
      uses pm-counter-group;
    }
    container average {
      description
        "Average differential group delay (in ps).";
      uses pm-counter-group;
    }
  }

  grouping pdl-counts {
    description
      "Polarization Dependent Loss (PDL) Grouping.";
    container maximum {
      description
        "Maximum polarization dependent loss (in dB).";
      uses pm-counter-db-group;
    }
    container average {
      description
        "Average polarization dependent loss (in dB).";
      uses pm-counter-db-group;
    }
  }

  grouping power-counts {
    description
      "Optical Power Grouping. Can be used for Tx or Rx optical power PM instances.";
    container minimum {
      description
        "Minimum power reading.";
      uses pm-counter-dbm-group;
    }
    container maximum {
      description
        "Maximum power reading.";
      uses pm-counter-dbm-group;
    }
    container average {
      description
        "Average power reading.";
      uses pm-counter-dbm-group;
    }
  }

  grouping ber-counts {
    description
      "Grouping for common PM Bit-Error-Rate values.";
    container bit-error-rate {
      description
        "Bit error rate reading.";
      uses pm-counter-ber-group;
    }
    container maximum {
      description
        "Maximum BER reading.";
      uses pm-counter-ber-group;
    }
  }

  grouping q-factor-counts {
    description
      "Grouping for PM modem Q-Factor values.";
    container q-factor {
      description
        "Q-Factor reading.";
      uses pm-counter-qfac-group;
    }
    container minimum {
      description
        "Minimum Q-Factor reading.";
      uses pm-counter-qfac-group;
    }
    container maximum {
      description
        "Maximum Q-Factor reading.";
      uses pm-counter-qfac-group;
    }
  }

  grouping fec-error-counts {
    description
      "Grouping for line PTP FEC counts.";
    container frame-error-count {
      description
        "FEC Frame error counts.";
      uses pm-counter-group;
    }
    container frame-error-count-second {
      description
        "FEC Frame error count second.";
      uses pm-counter-group;
    }
    container uncorrected-block-count {
      description
        "FEC uncorrected block count.";
      uses pm-counter-group;
    }
    container high-correction-count-seconds {
      description
        "FEC high correction count seconds.";
      uses pm-counter-group;
    }
  }

  grouping pm-ethernet-stats-group {
    description
      "Grouping for Ethernet port statistics containers and attributes.";
    container interface-counts {
      description
        "Ethernet PM interface counts.";
      container rx {
        description
          "Ethernet interface Rx counts.";
        uses ethernet-pm-counts-rx;
      }
      container tx {
        description
          "Ethernet interface Tx counts.";
        uses ethernet-pm-counts-tx;
      }
    }
    container pcs-layer {
      description
        "PCS layer statistics.";
      container sync-header-errors {
        description
          "PCS sync header errors.";
        uses pm-counter-group;
      }
      uses error-counts;
    }
    container fec-layer {
      description
        "Ethernet FEC layer PM statistics.";
      uses fec-layer-counts;
    }
  }

  grouping pm-optical-power-stats-group {
    description
      "Grouping for PTP optical power statistics containers and attributes.";
    leaf number-of-lanes {
      type uint16;
      description
        "Number of optical lanes.";
    }
    list optical-power {
      key "lane-number";
      config false;
      max-elements "4";
      description
        "Statistics for a PTP optical lane.";
      leaf lane-number {
        type cienawstypes:lanes-number;
        config false;
        description
          "Lane number.";
      }
      container rx-power {
        config false;
        uses power-counts;
        description
          "Rx power reading.";
      }
      container tx-power {
        config false;
        uses power-counts;
        description
          "Tx power reading.";
      }
    }
    container channel-power {
      config false;
      description
        "Total optical channel power readings. Only applies to line PTP in 'colourless' mode.";
      container rx-power {
        config false;
        uses power-counts;
        description
          "Rx power reading.";
      }
    }
  }

  grouping pm-modem-stats-group {
    description
      "Grouping for PTP modem statistics containers and attributes.";
    container pre-fec-bit-error-rate {
      config false;
      uses ber-counts;
      description
        "Pre-FEC BER counts.";
    }
    container q-factor {
      config false;
      uses q-factor-counts;
      description
        "Q-Factor count.";
    }
    container fec-error {
      config false;
      uses fec-error-counts;
      description
        "FEC error counts.";
    }
    container dgd {
      description
        "Differential group delay (DGD) counts.";
      uses dgd-counts;
    }
    container pdl {
      description
        "Polarization dependent loss (PDL) counts.";
      uses pdl-counts;
    }
  }

  grouping pm-otn-stats-group {
    description
      "Grouping for OTN port/channel statistics containers and attributes.";
    container background-block-errors {
      description
        "Background Block Errors (BBE).";
      uses pm-counter-group;
    }
    uses error-counts;
    container far-end {
      description
        "Far-end statistics.";
      container background-block-errors {
        description
          "Background Block Errors (BBE).";
        uses pm-counter-group;
      }
      uses error-counts;
    }
  }

  typedef pm-persistence-status {
    type enumeration {
      enum "none" {
        description
          "Save to persistence not attempted.";
      }
      enum "inprogress" {
        description
          "Save to persistence in progress.";
      }
      enum "complete" {
        description
          "Save to persistence complete.";
      }
      enum "not-found" {
        description
          "File not found.";
      }
      enum "inaccessible" {
        description
          "Unable to access persistence storage location.";
      }
      enum "aborted" {
        description
          "Save to persistence aborted.";
      }
      enum "corrupt" {
        description
          "Persistence file is corrupt.";
      }
      enum "failed" {
        description
          "Save to persistence failed.";
      }
      enum "partial" {
        description
          "Save to persistence was only partially successful.";
      }
      enum "not-ready" {
        description
          "Persistence not ready.";
      }
    }
    description
      "PM persistence status.";
  }

  typedef pm-persistence-state {
    type enumeration {
      enum "not-initialized" {
        description
          "PM persistence not-initialized";
      }
      enum "initialized" {
        description
          "PM persistence initialized";
      }
    }
    description
      "PM persistence state.";
  }

  typedef pm-configuration-mode {
    type enumeration {
      enum "unknown" {
        description
          "Unknown PM instance configuration mode.";
      }
      enum "auto-created" {
        description
          "PM instance is auto-created (default).";
      }
      enum "user-created" {
        description
          "PM instance is user-created.";
      }
    }
    description
      "PM configuration mode.";
  }

  typedef pm-interface-type {
    type enumeration {
      enum "ptp" {
        description
          "Associated interface is a PTP.";
      }
      enum "port" {
        description
          "Associated interface is an Ethernet or OTN port.";
      }
      enum "channel" {
        description
          "Associated interface is an ODU channel.";
      }
    }
    description
      "PM interface type. The object type on which the PMs are being collected/reported.";
  }

  typedef pm-profile-type {
    type enumeration {
      enum "optical-power" {
        description
          "PTP Optical Power PM profile type.";
      }
      enum "modem-performance" {
        description
          "PTP Modem PM profile type.";
      }
      enum "otu-performance" {
        description
          "Port OTU PM profile type.";
      }
      enum "odu-performance" {
        description
          "Port/Channel ODU profile type.";
      }
      enum "ethernet-performance" {
        description
          "Port Ethernet PM profile type.";
      }
    }
    description
      "PM profile type.";
  }

  container waveserver-pm {
    description
      "Waveserver performance monitoring configuration and operational data.";
    container global-config {
      description
        "Performance monitoring global configuration on the Waveserver.";
      leaf admin-state {
        type cienawstypes:enabled-disabled-enum;
        description
          "Global admin state.";
      }
    }
    container persistence-state {
      config false;
      description
        "Performance monitoring persistence state on the Waveserver.";
      leaf state {
        type pm-persistence-state;
        description
          "Persistence state initialized or not.";
      }
      leaf next-history-bin-save {
        type uint32;
        units "seconds";
        description
          "Number of seconds left before current bin is saved to history.";
      }
      leaf current-file-size {
        type uint32;
        units "bytes";
        description
          "Current file size.";
      }
      leaf save-status {
        type pm-persistence-status;
        description
          "Persistence storage setting.";
      }
      leaf instances-saved {
        type uint32;
        description
          "Number of the PM instances saved.";
      }
      leaf elapsed-save-time {
        type uint32;
        units "seconds";
        description
          "Number of seconds passed since the save begin.";
      }
      leaf load-status {
        type pm-persistence-status;
        description
          "Persistence load status.";
      }
      leaf instances-in-file {
        type uint32;
        description
          "Total number of PM instances in file.";
      }
      leaf instances-loaded {
        type uint32;
        description
          "Number of loaded instances.";
      }
      leaf elapsed-load-time {
        type uint32;
        units "seconds";
        description
          "Elaspsed Load Time.";
      }
    }
    container auto-created {
      config false;
      description
        "PM auto created instances.";
      list instances {
        key "instance-id";
        config false;
        description
          "PM auto-created instance list.";
        leaf instance-id {
          type uint32;
          description
            "ID of the PM instance.";
        }
        leaf instance-name {
          type cienawstypes:string-maxl-32;
          description
            "The PM instance name.";
        }
        leaf admin-state {
          type cienawstypes:enabled-disabled-enum;
          description
            "The configured administrative state of the PM instance.";
        }
        leaf operational-state {
          type cienawstypes:enabled-disabled-enum;
          description
            "The operational state of the PM instance.";
        }
        leaf bin-count {
          type uint32;
          description
            "The number of history bins.";
        }
        leaf bin-duration {
          type uint32;
          units "minutes";
          description
            "The PM bin duration in minutes.";
        }
        leaf attached-interface-type {
          type pm-interface-type;
          description
            "Attached interface type.";
        }
        leaf attached-interface-name {
          type cienawstypes:string-maxl-32;
          description
            "Attached interface name.";
        }
      }
    }
    list ethernet-performance-instances {
      key "instance-name";
      description
        "Ethernet port PM instances.";
      leaf instance-name {
        type cienawstypes:string-maxl-32;
        description
          "Unique name for PM instance.";
      }
      uses pm-instance-id-container;
      uses pm-instance-state-container;
      uses pm-instance-properties-container;
      container current-bin {
        config false;
        description
          "PM current 15-minute bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-ethernet-stats-group;
        }
      }
      container current-24-hour-bin {
        config false;
        description
          "PM current 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-ethernet-stats-group;
        }
      }
      container untimed-bin {
        config false;
        description
          "PM untimed bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-ethernet-stats-group;
        }
      }
      container history {
        config false;
        description
          "PM 15-minute bin history";
        list bins {
          key "bin-number";
          config false;
          description
            "PM history 15-minute bin list.";
          leaf bin-number {
            type uint32 {
              range "1..96";
            }
            description
              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
          }
          uses pm-bin-id-container;
          uses pm-history-bin-state-container;
          container statistics {
            config false;
            description
              "Statistics data.";
            uses pm-ethernet-stats-group;
          }
        }
      }
      container history-24-hour-bin {
        config false;
        description
          "PM History 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-history-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-ethernet-stats-group;
        }
      }
    }
    list optical-power-instances {
      key "instance-name";
      description
        "PTP Optical Power PM instances.";
      leaf instance-name {
        type cienawstypes:string-maxl-32;
        description
          "Unique name for PM instance.";
      }
      uses pm-instance-id-container;
      uses pm-instance-state-container;
      uses pm-instance-properties-container;
      container current-bin {
        config false;
        description
          "PM current 15-minute bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-optical-power-stats-group;
        }
      }
      container current-24-hour-bin {
        config false;
        description
          "PM current 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-optical-power-stats-group;
        }
      }
      container untimed-bin {
        config false;
        description
          "PM untimed bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-optical-power-stats-group;
        }
      }
      container history {
        config false;
        description
          "PM 15-minute bin history.";
        list bins {
          key "bin-number";
          config false;
          description
            "PM history 15-minute bin list.";
          leaf bin-number {
            type uint32 {
              range "1..96";
            }
            description
              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
          }
          uses pm-bin-id-container;
          uses pm-history-bin-state-container;
          container statistics {
            config false;
            description
              "Statistics data.";
            uses pm-optical-power-stats-group;
          }
        }
      }
      container history-24-hour-bin {
        config false;
        description
          "PM History 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-history-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-optical-power-stats-group;
        }
      }
    }
    list modem-performance-instances {
      key "instance-name";
      description
        "PTP Modem PM instances.";
      leaf instance-name {
        type cienawstypes:string-maxl-32;
        description
          "Unique name for PM instance.";
      }
      uses pm-instance-id-container;
      uses pm-instance-state-container;
      uses pm-instance-properties-container;
      container current-bin {
        config false;
        description
          "PM current 15-minute bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-modem-stats-group;
        }
      }
      container current-24-hour-bin {
        config false;
        description
          "PM current 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-modem-stats-group;
        }
      }
      container untimed-bin {
        config false;
        description
          "PM untimed bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-modem-stats-group;
        }
      }
      container history {
        config false;
        description
          "PM 15-minute bin history.";
        list bins {
          key "bin-number";
          config false;
          description
            "PM history 15-minute bin list.";
          leaf bin-number {
            type uint32 {
              range "1..96";
            }
            description
              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
          }
          uses pm-bin-id-container;
          uses pm-history-bin-state-container;
          container statistics {
            config false;
            description
              "Statistics data.";
            uses pm-modem-stats-group;
          }
        }
      }
      container history-24-hour-bin {
        config false;
        description
          "PM History 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-history-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-modem-stats-group;
        }
      }
    }
    list otu-performance-instances {
      key "instance-name";
      description
        "Port OTU PM instances.";
      leaf instance-name {
        type cienawstypes:string-maxl-32;
        description
          "Unique name for PM instance.";
      }
      uses pm-instance-id-container;
      uses pm-instance-state-container;
      uses pm-instance-properties-container;
      container current-bin {
        config false;
        description
          "PM current 15-minute bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
      container current-24-hour-bin {
        config false;
        description
          "PM current 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
      container untimed-bin {
        config false;
        description
          "PM untimed bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
      container history {
        config false;
        description
          "PM 15-minute bin history.";
        list bins {
          key "bin-number";
          config false;
          description
            "PM history 15-minute bin list.";
          leaf bin-number {
            type uint32 {
              range "1..96";
            }
            description
              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
          }
          uses pm-bin-id-container;
          uses pm-history-bin-state-container;
          container statistics {
            config false;
            description
              "Statistics data.";
            uses pm-otn-stats-group;
          }
        }
      }
      container history-24-hour-bin {
        config false;
        description
          "PM History 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-history-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
    }
    list odu-performance-instances {
      key "instance-name";
      description
        "Port/channel ODU PM instances.";
      leaf instance-name {
        type cienawstypes:string-maxl-32;
        description
          "Unique name for PM instance.";
      }
      uses pm-instance-id-container;
      uses pm-instance-state-container;
      uses pm-instance-properties-container;
      container current-bin {
        config false;
        description
          "PM current 15-minute bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
      container current-24-hour-bin {
        config false;
        description
          "PM current 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
      container untimed-bin {
        config false;
        description
          "PM untimed bin.";
        uses pm-bin-id-container;
        uses pm-current-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
      container history {
        config false;
        description
          "PM 15-minute bin history.";
        list bins {
          key "bin-number";
          config false;
          description
            "PM history 15-minute bin list.";
          leaf bin-number {
            type uint32 {
              range "1..96";
            }
            description
              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
          }
          uses pm-bin-id-container;
          uses pm-history-bin-state-container;
          container statistics {
            config false;
            description
              "Statistics data.";
            uses pm-otn-stats-group;
          }
        }
      }
      container history-24-hour-bin {
        config false;
        description
          "PM History 24-hour bin.";
        uses pm-bin-id-container;
        uses pm-history-bin-state-container;
        container statistics {
          config false;
          description
            "Statistics data.";
          uses pm-otn-stats-group;
        }
      }
    }
  }
  rpc waveserver-pm-clear-instance {
    description
      "Clear statistics for the specified instance.";
    input {
      leaf instance-name {
        type cienawstypes:string-maxl-32;
        description
          "Unique name for PM instance.";
      }
      leaf history {
        type boolean;
        description
          "Whether to clear history.";
      }
    }
    output {
      leaf return-code {
        type uint32 {
          range "0..990";
        }
        description
          "return code: 0 is success; non-zero is failure";
      }
    }
  }
  rpc waveserver-pm-clear-interface {
    description
      "Clear statistics for the specified interface.";
    input {
      leaf interface-name {
        type cienawstypes:string-maxl-32;
        mandatory true;
        description
          "Interface name.";
      }
      leaf interface-type {
        type pm-interface-type;
        mandatory true;
        description
          "Interface type (PTP, Port, Channel)";
      }
      leaf profile-type {
        type pm-profile-type;
        description
          "The PM profile type. Can be optionally specified to clear only a specific profile on this interface.";
      }
      leaf history {
        type boolean;
        description
          "Whether to clear history.";
      }
    }
    output {
      leaf return-code {
        type uint32 {
          range "0..990";
        }
        description
          "return code: 0 is success; non-zero is failure";
      }
    }
  }
}
