netconfcentral logo

org-openroadm-device

HTML

org-openroadm-device@2020-05-29



  module org-openroadm-device {

    yang-version 1;

    namespace "http://org/openroadm/device";

    prefix org-openroadm-device;

    import ietf-yang-types {
      prefix ietf-yang-types;
      revision-date "2013-07-15";
    }
    import ietf-inet-types {
      prefix ietf-inet-types;
      revision-date "2013-07-15";
    }
    import ietf-netconf {
      prefix ietf-nc;
      revision-date "2011-06-01";
    }
    import org-openroadm-common-types {
      prefix org-openroadm-common-types;
      revision-date "2020-05-29";
    }
    import org-openroadm-common-alarm-pm-types {
      prefix
        org-openroadm-common-alarm-pm-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-equipment-types {
      prefix
        org-openroadm-common-equipment-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-state-types {
      prefix
        org-openroadm-common-state-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-amplifier-types {
      prefix
        org-openroadm-common-amplifier-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-link-types {
      prefix
        org-openroadm-common-link-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-node-types {
      prefix
        org-openroadm-common-node-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-common-optical-channel-types {
      prefix
        org-openroadm-common-optical-channel-types;
      revision-date "2020-05-29";
    }
    import org-openroadm-device-types {
      prefix org-openroadm-device-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-resource-types {
      prefix org-openroadm-resource-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-physical-types {
      prefix org-openroadm-physical-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-user-mgmt {
      prefix org-openroadm-user-mgmt;
      revision-date "2019-11-29";
    }
    import org-openroadm-port-types {
      prefix org-openroadm-port-types;
      revision-date "2020-03-27";
    }
    import org-openroadm-interfaces {
      prefix org-openroadm-interfaces;
      revision-date "2019-11-29";
    }
    import org-openroadm-swdl {
      prefix org-openroadm-swdl;
      revision-date "2020-05-29";
    }
    import org-openroadm-equipment-states-types {
      prefix
        org-openroadm-equipment-states-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-switching-pool-types {
      prefix
        org-openroadm-switching-pool-types;
      revision-date "2019-11-29";
    }
    import org-openroadm-optical-operational-interfaces {
      prefix
        org-openroadm-optical-operational-interfaces;
      revision-date "2020-05-29";
    }
    import org-openroadm-otn-common-types {
      prefix
        org-openroadm-otn-common-types;
      revision-date "2020-03-27";
    }

    organization "Open ROADM MSA";

    contact "OpenROADM.org";

    description
      "YANG definitions of ROADM device

Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
All other rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation and/or
  other materials provided with the distribution.
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
  contributors may be used to endorse or promote products derived from this software
  without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

Also contains code components extracted from IETF netconf.  These code components
are copyrighted and licensed as follows:

Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents carefully, as they
describe your rights and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.";

    revision "2020-05-29" {
      description "Version 7.1.0";
    }

    revision "2020-03-27" {
      description "Version 7.0.0";
    }

    revision "2019-11-29" {
      description "Version 6.1.0";
    }

    revision "2019-09-27" {
      description "Version 6.0.0";
    }

    revision "2019-05-31" {
      description "Version 5.1.0";
    }

    revision "2019-03-29" {
      description "Version 5.0.0";
    }

    revision "2018-11-30" {
      description "Version 4.1.0";
    }

    revision "2018-09-28" {
      description "Version 4.0.0";
    }

    revision "2018-05-30" {
      description "Version 3.1.0";
    }

    revision "2018-03-30" {
      description "Version 3.0.0";
    }

    revision "2017-12-15" {
      description "Version 2.2";
    }

    revision "2017-09-29" {
      description "Version 2.1";
    }

    revision "2017-07-28" {
      description
        "Version 2.0.1 - added revision-date to imports";
    }

    revision "2017-06-26" {
      description "Version 2.0";
    }

    revision "2017-02-06" {
      description
        "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
    }

    revision "2016-10-14" {
      description "Version 1.2";
    }


    identity connection-direction-identity {
      base 
      description
        "Bidrectional capable, or Bi and Unidirectional capable";
    }

    identity connection-direction_bi {
      base connection-direction-identity;
      description "Bidrectional capable";
    }

    identity connection-direction_bi_and_uni {
      base connection-direction-identity;
      description
        "Bi and Unidirectional capable";
    }

    typedef interface-ref {
      type leafref {
        path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
      }
      description
        "This type is used by data models that need to reference
configured interfaces.";
    }

    grouping create-tech-info-group {
      leaf shelf-id {
        type leafref {
          path
            "/org-openroadm-device/shelves/shelf-name";
        }
        description "shelf ID";
      }

      leaf log-file-name {
        type string;
        description
          "The log file name a vendor can specify for a given log collection operation";
      }
    }  // grouping create-tech-info-group

    grouping device-common {
      leaf node-id {
        type org-openroadm-common-node-types:node-id-type;
        default "openroadm";
        description
          "Globally unique identifier for a device.";
      }

      leaf node-number {
        type uint32;
        description
          "Number assigned to a ROADM node at a
given office";
      }

      leaf node-type {
        type org-openroadm-device-types:node-types;
        mandatory true;
        description
          "Identifier for node-type e.g Roadm, xponder.
Once the node-type is configured, it should not be modified.";
      }

      leaf clli {
        type string;
        description
          "Common Language Location Identifier.";
      }

      uses org-openroadm-physical-types:node-info;

      leaf ipAddress {
        type ietf-inet-types:ip-address;
        description "IP Address of device";
      }

      leaf prefix-length {
        type uint8 {
          range "0..128";
        }
        description
          "The length of the subnet prefix";
      }

      leaf defaultGateway {
        type ietf-inet-types:ip-address;
        description "Default Gateway";
      }

      leaf source {
        type enumeration {
          enum "static" {
            value 1;
          }
          enum "dhcp" {
            value 2;
          }
        }
        config false;
      }

      leaf current-ipAddress {
        type ietf-inet-types:ip-address;
        config false;
        description
          "Current IP Address of device";
      }

      leaf current-prefix-length {
        type uint8 {
          range "0..128";
        }
        config false;
        description
          "The current length of the subnet prefix";
      }

      leaf current-defaultGateway {
        type ietf-inet-types:ip-address;
        config false;
        description
          "Current Default Gateway";
      }

      leaf macAddress {
        type ietf-yang-types:mac-address;
        config false;
        description "MAC Address of device";
      }

      leaf softwareVersion {
        type string;
        config false;
        description "Software version";
      }

      leaf software-build {
        type string;
        config false;
        description "Software build version";
      }

      leaf openroadm-version {
        type org-openroadm-common-types:openroadm-version-type;
        config false;
        description
          "openroadm version used on the device";
      }

      leaf template {
        type string;
        description
          "Template information used in the deployment.";
      }

      leaf current-datetime {
        type ietf-yang-types:date-and-time;
        config false;
        description
          "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of the device node. Whether it is planned, deployed, in maintenance, etc.";
      }

      container geoLocation {
        description "GPS location";
        leaf latitude {
          type decimal64 {
            fraction-digits 16;
            range "-90 .. 90";
          }
          description
            "[From wikipedia] Latitude is an angle (defined below)
which ranges from 0 at the Equator to 90 (North or
South) at the poles";
        }

        leaf longitude {
          type decimal64 {
            fraction-digits 16;
            range "-180 .. 180";
          }
          description
            "[From wikipedia] The longitude is measured as the
angle east or west from the Prime Meridian, ranging
from 0 at the Prime Meridian to +180 eastward and
-180 westward.";
        }
      }  // container geoLocation
    }  // grouping device-common

    grouping slot-info {
      description
        "slots information. To be populated by NE during retrieval.";
      leaf slot-name {
        type string;
        description "The name of this slot.";
      }

      leaf label {
        type string;
        description "Faceplate label";
      }

      leaf provisioned-circuit-pack {
        type leafref {
          path
            "/org-openroadm-device/circuit-packs/circuit-pack-name";
        }
        description
          "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
      }

      leaf slot-status {
        type enumeration {
          enum "empty-not-prov" {
            value 1;
            description
              "Slot is empty and not provisioned";
          }
          enum "empty-prov-match" {
            value 2;
            status obsolete;
            description
              "(Deprecated) Slot is empty and expected type is provisioned";
          }
          enum "empty-prov-mismatch" {
            value 3;
            status obsolete;
            description
              "(Deprecated) Slot is empty and an unsupported type is provisioned";
          }
          enum "installed-not-prov" {
            value 4;
            description
              "Slot is occupied but not provisioned";
          }
          enum "installed-prov-match" {
            value 5;
            description
              "Slot is occupied with matching provisioned type";
          }
          enum "installed-prov-mismatch" {
            value 6;
            description
              "Slot is occupied with mismatched provisioned type";
          }
          enum "empty-prov" {
            value 7;
            description
              "Slot is empty and provisioned";
          }
        }
      }
    }  // grouping slot-info

    grouping shelves {
      list shelves {
        key "shelf-name";
        uses shelf;
      }  // list shelves
    }  // grouping shelves

    grouping user-description-grp {
      description "user description group";
      leaf user-description {
        type string;
        description
          "user provided description";
      }
    }  // grouping user-description-grp

    grouping shelf {
      leaf shelf-name {
        type string;
        description
          "Unique identifier for this shelf within a device";
      }

      leaf shelf-type {
        type string;
        mandatory true;
        description
          "The shelf type: describe the shelf with a unique string.";
      }

      leaf rack {
        type string;
        description
          "Reflect the shelf physical location data including floor, aisle, bay values.";
      }

      leaf shelf-position {
        type string;
        description
          "Reflect the shelf vertical position within an equipment bay.";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of shelf. Whether it is planned, deployed, in maintenance, etc.";
      }

      leaf administrative-state {
        type org-openroadm-equipment-states-types:admin-states;
        mandatory true;
        description
          "Admin State of the shelf";
      }

      uses org-openroadm-physical-types:common-info;

      leaf equipment-state {
        type org-openroadm-equipment-states-types:states;
        description
          "equipment state for the shelf, used to track the lifecycle state.";
      }

      leaf is-physical {
        type boolean;
        config false;
        mandatory true;
        description
          "is the entity physical or logical";
      }

      leaf is-passive {
        type boolean;
        config false;
        mandatory true;
        description
          "is the entity passive and not actively managed by the device;
e.g., no physical inventory or plug-in notification supported";
      }

      leaf faceplate-label {
        type string;
        config false;
        mandatory true;
        description
          "label on the faceplace silk screening";
      }

      uses user-description-grp;

      leaf due-date {
        type ietf-yang-types:date-and-time;
        description
          "due date for the shelf.";
      }

      list slots {
        key "slot-name";
        config false;
        description
          "List of slots on this shelf. To be populated by NE during retrieval.";
        uses slot-info;
      }  // list slots
    }  // grouping shelf

    grouping circuit-packs {
      list circuit-packs {
        key "circuit-pack-name";
        description
          "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
        leaf circuit-pack-type {
          type string;
          mandatory true;
          description "Type of circuit-pack";
        }

        leaf circuit-pack-product-code {
          type string;
          description
            "Product Code for the circuit-pack";
        }

        uses circuit-pack;
      }  // list circuit-packs
    }  // grouping circuit-packs

    grouping circuit-pack-features {
      leaf software-load-version {
        type string;
        config false;
        description
          "Software version running on the circuit pack.";
      }

      list circuit-pack-features {
        config false;
        container feature {
          description
            "List of features supported by the installed load and indications on whether the features have been applied or not.";
          leaf description {
            type string;
            description
              "Feature description.";
          }

          leaf boot {
            type boolean;
            description
              "Flag to indicate boot loader or unprotected firmware update required";
          }

          leaf activated {
            type boolean;
            description
              "Indicator if the feature has been activated.";
          }
        }  // container feature
      }  // list circuit-pack-features

      list circuit-pack-components {
        config false;
        container component {
          description
            "Optional list of components on the circuit-pack and the load information applicable to those components.  If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed.  If there is no misalignment, this does not need to be reported.";
          leaf name {
            type string;
            description
              "Name of a component on the circuit-pack that can have a load applied to it.";
          }

          leaf boot {
            type boolean;
            description
              "Flag to indicate boot loader or unprotected firmware update required";
          }

          leaf current-version {
            type string;
            description
              "Name of the load version currently running on the component.";
          }

          leaf version-to-apply {
            type string;
            description
              "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
          }
        }  // container component
      }  // list circuit-pack-components
    }  // grouping circuit-pack-features

    grouping circuit-pack {
      leaf circuit-pack-name {
        type string;
        description
          "Unique identifier for this circuit-pack within a device";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of circuit-pack. Whether it is planned, deployed, in maintenance, etc.";
      }

      leaf administrative-state {
        type org-openroadm-equipment-states-types:admin-states;
        mandatory true;
        description
          "Administrative state of circuit-pack";
      }

      uses org-openroadm-physical-types:common-info;

      container circuit-pack-category {
        config false;
        description
          "General type of circuit-pack";
        uses org-openroadm-common-equipment-types:equipment-type;
      }  // container circuit-pack-category

      leaf equipment-state {
        type org-openroadm-equipment-states-types:states;
        description
          "Equipment state, which complements operational state.";
      }

      leaf circuit-pack-mode {
        type string;
        default "NORMAL";
        description
          "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
      }

      leaf shelf {
        type leafref {
          path
            "/org-openroadm-device/shelves/shelf-name";
        }
        mandatory true;
      }

      leaf slot {
        type string;
        mandatory true;
      }

      leaf subSlot {
        type string;
      }

      leaf is-pluggable-optics {
        type boolean;
        config false;
        mandatory true;
        description
          "True if circuitpack is pluggable optics";
      }

      leaf is-physical {
        type boolean;
        config false;
        mandatory true;
        description
          "is the entity physical or logical";
      }

      leaf is-passive {
        type boolean;
        config false;
        mandatory true;
        description
          "is the entity passive and not actively managed by the device;
e.g., no physical inventory or plug-in notification supported";
      }

      leaf faceplate-label {
        type string;
        config false;
        mandatory true;
        description
          "label on the faceplace silk screening";
      }

      uses user-description-grp;

      leaf due-date {
        type ietf-yang-types:date-and-time;
        description
          "due date for this circuit-pack.";
      }

      container parent-circuit-pack {
        description
          "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment.  It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack.  For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
        uses circuit-pack-name;

        leaf cp-slot-name {
          type string;
          description
            "Slot name on parent-circuit-pack.";
        }
      }  // container parent-circuit-pack

      list cp-slots {
        key "slot-name";
        config false;
        description
          "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
        uses slot-info;

        leaf slot-type {
          type enumeration {
            enum "pluggable-optics-holder" {
              value 1;
              description
                "slot accepts dedicated pluggable port circuit-pack";
            }
            enum "other" {
              value 2;
              description
                "slot accepts parent circuit-pack";
            }
          }
        }
      }  // list cp-slots

      uses circuit-pack-features;

      list ports {
        key "port-name";
        description
          "List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs.  All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-pack.";
        uses port;

        container roadm-port {
          when
            "../port-qual='roadm-external'";
          uses org-openroadm-port-types:roadm-port;
        }  // container roadm-port

        container transponder-port {
          when
            "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
          uses org-openroadm-port-types:common-port;
        }  // container transponder-port

        container otdr-port {
          when "../port-qual='otdr'";
          description
            "Settings for otdr port.";
          leaf launch-cable-length {
            type uint32;
            units "m";
            default "30";
          }

          leaf port-direction {
            type org-openroadm-common-alarm-pm-types:direction;
          }
        }  // container otdr-port

        container ila-port {
          when "../port-qual='ila-external'";
          uses org-openroadm-port-types:common-port;
        }  // container ila-port
      }  // list ports
    }  // grouping circuit-pack

    grouping odu-connection {
      description
        "Grouping used to define odu-connections.";
      leaf connection-name {
        type string;
        description
          "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
      }

      leaf direction {
        type enumeration {
          enum "unidirectional" {
            value 1;
          }
          enum "bidirectional" {
            value 2;
          }
        }
        default "bidirectional";
        description
          "Directionality of connection. If bidirectional, both directions are created.";
      }

      container source {
        leaf src-if {
          type leafref {
            path
              "/org-openroadm-device/interface/name";
          }
          mandatory true;
        }
      }  // container source

      container destination {
        leaf dst-if {
          type leafref {
            path
              "/org-openroadm-device/interface/name";
          }
          mandatory true;
        }
      }  // container destination
    }  // grouping odu-connection

    grouping connection {
      description
        "Grouping used to define connections.";
      leaf connection-name {
        type string;
      }

      leaf opticalControlMode {
        type org-openroadm-common-link-types:optical-control-mode;
        default "off";
        description
          "Whether connection is currently in power or gain/loss mode";
        reference
          "openroadm.org: Open ROADM MSA Specification.";

      }

      leaf target-output-power {
        type org-openroadm-common-link-types:power-dBm;
        description
          "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
      }

      container source {
        leaf src-if {
          type leafref {
            path
              "/org-openroadm-device/interface/name";
          }
          mandatory true;
        }
      }  // container source

      container destination {
        leaf dst-if {
          type leafref {
            path
              "/org-openroadm-device/interface/name";
          }
          mandatory true;
        }
      }  // container destination
    }  // grouping connection

    grouping mc-capabilities-grp {
      description
        "Media channel capabilities grouping";
      leaf-list mc-capability-profile-name {
        type leafref {
          path
            "/org-openroadm-device/mc-capability-profile/profile-name";
        }
        config false;
        description
          "Media channel capabilities";
      }
    }  // grouping mc-capabilities-grp

    grouping degree {
      leaf degree-number {
        type uint16;
        description
          "Degree number should be greater than zero and not greater than max-degrees";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of degree. Whether it is planned, deployed, in maintenance, etc.";
      }

      leaf max-wavelengths {
        type uint16;
        config false;
        mandatory true;
        description
          "maximum number of wavelengths";
      }

      list circuit-packs {
        key "index";
        description
          "list for Cards associated with a degree";
        leaf index {
          type uint32;
        }

        uses circuit-pack-name {
          refine 
        }
      }  // list circuit-packs

      list connection-ports {
        key "index";
        description
          "Port associated with degree: One if bi-directional; two if uni-directional";
        leaf index {
          type uint32;
        }

        uses port-name {
          refine 
          refine 
        }
      }  // list connection-ports

      container otdr-port {
        description
          "otdr port associated with degree.";
        uses port-name;
      }  // container otdr-port

      uses mc-capabilities-grp;
    }  // grouping degree

    grouping amplifier {
      leaf amp-number {
        type uint8 {
          range "1..128";
        }
        description
          "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
      }

      leaf amp-type {
        type org-openroadm-common-amplifier-types:amplifier-types;
        config false;
        mandatory true;
        description "Amplifier type";
      }

      leaf control-mode {
        type org-openroadm-common-amplifier-types:line-amplifier-control-mode;
        default "off";
        description
          "Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when the control-mode is set to off";
      }

      leaf amp-gain-range {
        type org-openroadm-common-amplifier-types:amplifier-gain-range;
        default "gain-range-1";
        config false;
        description
          "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
gain-range-1 (default value) for standard amplifiers";
      }

      leaf target-gain {
        type org-openroadm-common-link-types:ratio-dB;
        description
          "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
Defined as optional for ODL support, but shall be considered as mandatory and provided
by the controller when the control-mode is set to gainLoss for amplifier setting";
      }

      leaf target-tilt {
        type org-openroadm-common-link-types:ratio-dB;
        description
          "Target tilt configured in case of smart EDFA.
Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
Defined as optional for ODL support, but shall be considered as mandatory and provided
by the controller when the control-mode is set to gainLoss for amplifier setting";
      }

      leaf egress-average-channel-power {
        type org-openroadm-common-link-types:power-dBm;
        description
          "Based upon the total max power across the 4.8 THz passband.
Defined as optional for ODL support, but shall be considered as mandatory and provided
by the controller when the control-mode is set to gainLoss for amplifier setting";
      }

      leaf out-voa-att {
        type org-openroadm-common-link-types:ratio-dB;
        config false;
        description
          "Used to provide the value output VOA attenuation, optional";
      }

      leaf partner-amp {
        type leafref {
          path
            "/org-openroadm-device/line-amplifier/amp-number";
        }
        config false;
        description
          "amp-number of amp module that is functionally associated to the amplifier
in the opposite direction";
      }

      leaf ila-direction-label {
        type string;
        description
          "Amplifier direction. Each operators may have its own naming convention.
Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of the amplifier. Whether it is planned, deployed, in maintenance, etc.";
      }
    }  // grouping amplifier

    grouping external-links {
      description
        "YANG definitions for external links..
- physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
      list external-link {
        key "external-link-name";
        uses external-link;
      }  // list external-link
    }  // grouping external-links

    grouping external-link {
      leaf external-link-name {
        type string;
      }

      container source {
        uses org-openroadm-resource-types:device-id {
          refine node-id {
            mandatory true;
          }
        }

        uses org-openroadm-resource-types:port-name {
          refine circuit-pack-name {
            mandatory true;
          }

          refine port-name {
            mandatory true;
          }
        }
      }  // container source

      container destination {
        uses org-openroadm-resource-types:device-id {
          refine node-id {
            mandatory true;
          }
        }

        uses org-openroadm-resource-types:port-name {
          refine circuit-pack-name {
            mandatory true;
          }

          refine port-name {
            mandatory true;
          }
        }
      }  // container destination
    }  // grouping external-link

    grouping internal-links {
      list internal-link {
        key "internal-link-name";
        config false;
        uses internal-link;
      }  // list internal-link
    }  // grouping internal-links

    grouping internal-link {
      leaf internal-link-name {
        type string;
      }

      container source {
        uses port-name {
          refine 
          refine 
        }
      }  // container source

      container destination {
        uses port-name {
          refine 
          refine 
        }
      }  // container destination
    }  // grouping internal-link

    grouping physical-links {
      description
        "YANG definitions for physical links.
- physical links (fiber, cables,etc.) between ports within a node. ";
      list physical-link {
        key "physical-link-name";
        uses physical-link;
      }  // list physical-link
    }  // grouping physical-links

    grouping physical-link {
      leaf physical-link-name {
        type string;
      }

      leaf is-physical {
        type boolean;
        description
          "is the entity physical or logical";
      }

      uses user-description-grp;

      container source {
        uses port-name {
          refine 
          refine 
        }
      }  // container source

      container destination {
        uses port-name {
          refine 
          refine 
        }
      }  // container destination

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of the physical link. Whether it is planned, deployed, in maintenance, etc.";
      }
    }  // grouping physical-link

    grouping srg {
      leaf max-add-drop-ports {
        type uint16;
        config false;
        mandatory true;
        description
          "The max number of ports available for a given srg";
      }

      leaf current-provisioned-add-drop-ports {
        type uint16;
        config false;
        mandatory true;
        description
          "The number of ports currently provisioned for a given srg.";
      }

      leaf srg-number {
        type uint16;
        description
          "Srg number should be greater than zero and not greater than max-srgs";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of shared-risk-group. Whether it is planned, deployed, in maintenance, etc.";
      }

      leaf wavelength-duplication {
        type org-openroadm-common-optical-channel-types:wavelength-duplication-type;
        config false;
        mandatory true;
        description
          "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
      }

      list circuit-packs {
        key "index";
        description
          "list for Cards associated with an add/drop group and srg";
        leaf index {
          type uint32;
        }

        uses circuit-pack-name {
          refine 
        }
      }  // list circuit-packs

      uses mc-capabilities-grp;
    }  // grouping srg

    grouping xponder {
      leaf xpdr-number {
        type uint16;
        must "current() > 0" {
          error-message
            "Xponder not supported by device ";
          description
            "Validating if the Xponder is supported by device";
        }
      }

      leaf xpdr-type {
        type org-openroadm-device-types:xpdr-node-types;
        mandatory true;
        description
          "Identifier for xponder-type e.g Transponder, Muxponder";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of xponder. Whether it is planned, deployed, in maintenance, etc.";
      }

      leaf recolor {
        type boolean;
        config false;
        description
          "Indication if recolor is supported";
      }

      list xpdr-port {
        key "index";
        description
          "Network Ports with in a Xponder";
        leaf index {
          type uint32;
        }

        uses port-name {
          refine 
          refine 
        }

        leaf eqpt-srg-id {
          type uint32;
          description
            "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
        }
      }  // list xpdr-port
    }  // grouping xponder

    grouping degree-number {
      leaf degree-number {
        type leafref {
          path
            "/org-openroadm-device/degree/degree-number";
        }
        description
          "Degree identifier. Unique within the context of a device.";
      }
    }  // grouping degree-number

    grouping circuit-pack-name {
      leaf circuit-pack-name {
        type leafref {
          path
            "/org-openroadm-device/circuit-packs/circuit-pack-name";
        }
        description
          "Circuit-Pack identifier. Unique within the context of a device.";
      }
    }  // grouping circuit-pack-name

    grouping port-name {
      uses circuit-pack-name;

      leaf port-name {
        type leafref {
          path
            "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
        }
        description
          "Port identifier. Unique within the context of a circuit-pack.";
      }
    }  // grouping port-name

    grouping srg-number {
      leaf srg-number {
        type leafref {
          path
            "/org-openroadm-device/shared-risk-group/srg-number";
        }
        description
          "Shared Risk Group identifier. Unique within the context of a device.";
      }
    }  // grouping srg-number

    grouping supporting-port-name {
      leaf supporting-circuit-pack-name {
        type leafref {
          path
            "/org-openroadm-device/circuit-packs/circuit-pack-name";
        }
        description
          "Identifier of the supporting circuit-pack.";
      }

      leaf supporting-port {
        type leafref {
          path
            "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
        }
        description
          "Identifier of the supporting port.";
      }
    }  // grouping supporting-port-name

    grouping supporting-circuit-pack-list-grp {
      description
        "supporting circuit pack list grouping";
      list supporting-port-list {
        key "index";
        description "supporting port list";
        leaf index {
          type uint8;
          description
            "supporting circuit pack index";
        }

        leaf circuit-pack-name {
          type leafref {
            path
              "/org-openroadm-device/circuit-packs/circuit-pack-name";
          }
          mandatory true;
          description
            "The supported circuit-pack.";
        }

        leaf-list port-list {
          type leafref {
            path
              "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
          }
          description "port list";
        }
      }  // list supporting-port-list
    }  // grouping supporting-circuit-pack-list-grp

    grouping interface-name {
      description "interface name grouping";
      leaf interface-name {
        type leafref {
          path
            "/org-openroadm-device/interface/name";
        }
        config false;
        description
          "Name of an interface. Unique within the context of a device.";
      }
    }  // grouping interface-name

    grouping interfaces-grp {
      description
        "OpenROADM Interface configuration parameters.";
      list interface {
        key "name";
        description
          "The list of configured interfaces on the device.";
        leaf name {
          type string;
          description
            "The name of the interface.";
        }

        leaf description {
          type string;
          description
            "A textual description of the interface.";
        }

        leaf type {
          type identityref {
            base org-openroadm-interfaces:interface-type;
          }
          mandatory true;
          description
            "The type of the interface.";
        }

        leaf lifecycle-state {
          type org-openroadm-common-state-types:lifecycle-state;
          description
            "Lifecycle State of interface. Whether it is planned, deployed, in maintenance, etc.";
        }

        leaf administrative-state {
          type org-openroadm-equipment-states-types:admin-states;
          mandatory true;
        }

        leaf operational-state {
          type org-openroadm-common-state-types:state;
          config false;
          mandatory true;
        }

        leaf circuit-id {
          type string {
            length "0..45";
          }
          description
            "circuit identifier/user label,
can be used in alarm correlation and/or connection management ";
        }

        uses supporting-port-name;

        leaf-list supporting-interface-list {
          type leafref {
            path
              "/org-openroadm-device/interface/name";
          }
          description
            "supporting interface list";
        }
      }  // list interface
    }  // grouping interfaces-grp

    grouping protection-groups {
      description
        "OpenROADM facility protection configuration parameters.";
      container protection-grps {
        description
          "The list of configured protection groups on the device.";
      }  // container protection-grps
    }  // grouping protection-groups

    grouping port {
      description
        "Grouping of attributes related to a port object.";
      leaf port-name {
        type string;
        mandatory true;
        description
          "Identifier for a port, unique within a circuit pack";
      }

      uses supporting-circuit-pack-list-grp;

      leaf port-type {
        type string;
        description
          "Type of the pluggable or fixed port.";
      }

      leaf port-qual {
        type org-openroadm-device-types:port-qual;
      }

      leaf port-wavelength-type {
        type org-openroadm-port-types:port-wavelength-types;
        config false;
        description
          "Type of port - single, multiple-wavelength, etc.";
      }

      leaf port-direction {
        type org-openroadm-common-alarm-pm-types:direction;
        config false;
        mandatory true;
        description
          "Whether port is uni (tx/rx) or bi-directional and";
      }

      leaf is-physical {
        type boolean;
        config false;
        mandatory true;
        description
          "is the entity physical or logical";
      }

      leaf faceplate-label {
        type string;
        config false;
        mandatory true;
        description
          "label on the faceplace silk screening";
      }

      uses user-description-grp;

      leaf circuit-id {
        type string {
          length "0..45";
        }
        description
          "circuit identifier/user label,
can be used in alarm correlation and/or connection management ";
      }

      leaf lifecycle-state {
        type org-openroadm-common-state-types:lifecycle-state;
        description
          "Lifecycle State of port. Whether it is planned, deployed, in maintenance, etc.";
      }

      leaf administrative-state {
        type org-openroadm-equipment-states-types:admin-states;
        default "outOfService";
        description
          "Administrative state of port. The value of this field independent of the state of its contained and containing resources.  Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources.  If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratively disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
      }

      leaf operational-state {
        type org-openroadm-common-state-types:state;
        config false;
        mandatory true;
        description
          "Operational state of a port";
      }

      leaf logical-connection-point {
        type string;
        description
          "delete or replace with list logical-ports or connections?";
      }

      container partner-port {
        config false;
        description
          "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
        uses port-name;
      }  // container partner-port

      container parent-port {
        config false;
        description
          "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports.  The parent-port of the subport will be the port that contains this subport.  This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
        uses port-name;
      }  // container parent-port

      list interfaces {
        config false;
        description
          "List of the interfaces this port supports.  This is a list of names of instances in the flat instance list.  Implementations must provide the list of interfaces for port that has interfaces provisioned on that port.";
        uses interface-name;
      }  // list interfaces

      uses mc-capabilities-grp;
    }  // grouping port

    grouping odu-mux-hierarchy-grp {
      description "ODU mux hierarchy group";
      list mux-capability {
        key "stage-number ho-odu-type ho-odu-payload-type";
        description
          "low order ODU TCM direction capability";
        leaf stage-number {
          type uint8 {
            range "1 .. 2";
          }
          description "stage number";
        }

        leaf ho-odu-type {
          type identityref {
            base org-openroadm-otn-common-types:odu-rate-identity;
          }
          description "High order ODU type";
        }

        leaf ho-odu-payload-type {
          type org-openroadm-otn-common-types:payload-type-def;
          description
            "High order ODU payload type";
        }

        leaf-list supported-lo-odu-type {
          type identityref {
            base org-openroadm-otn-common-types:odu-rate-identity;
          }
          description
            "Supported low order ODU type";
        }

        leaf lo-odu-proactive-DMp {
          type boolean;
          description
            "low order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
        }

        leaf lo-odu-tcm-capable {
          type boolean;
          description
            "only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction";
        }

        leaf lo-odu-proactive-DMt {
          when
            "../lo-odu-tcm-capable= 'true'";
          type boolean;
          description
            "low order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
        }

        leaf lo-odu-tcm-direction-capability {
          when
            "../lo-odu-tcm-capable= 'true'";
          type org-openroadm-common-types:tcm-direction-capability-type;
          description
            "Supported tcm direction capability for low order ODU associated with the port.";
        }
      }  // list mux-capability
    }  // grouping odu-mux-hierarchy-grp

    identity flexo-modulation-format-identity {
      base 
      description
        "Flexo modulation format identification";
    }

    grouping flexo-grp {
      description "Flexo group";
      leaf circuit-pack-name {
        type leafref {
          path
            "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
        }
        description
          "Circuit-Pack identifier. Unique within the context of a device.";
      }

      leaf port-name {
        type leafref {
          path
            "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports/org-openroadm-device:port-name";
        }
        description
          "Port index identifier. Unique within the context of a circuit-pack.";
      }

      uses org-openroadm-common-types:fec-grouping {
        status deprecated;
        description
          "Flexo FEC / Forward Error Correction";
      }

      leaf otsi-rate {
        type identityref {
          base org-openroadm-common-optical-channel-types:otsi-rate-identity;
        }
        mandatory true;
        description "Flexo rate";
      }

      leaf otsi-modulation-format {
        type identityref {
          base flexo-modulation-format-identity;
        }
        description
          "Flexo modulation format";
      }

      leaf otsi-width {
        type uint16;
        description "OTSI width";
      }

      leaf operational-mode-id {
        type string;
        mandatory true;
        description
          "Optical profile operational mode identifier";
      }
    }  // grouping flexo-grp

    grouping otsigroup-capability-grp {
      description
        "Otsigroup group capability";
      leaf if-cap-type {
        type identityref {
          base org-openroadm-port-types:supported-if-capability;
        }
        description
          "Interface type/hierarchy/rate supported on this Otsi port. For example, if-n-otu4-n-odu4 and if-otucn-oducn";
      }

      choice otu-rate {
        description
          "To specify the supported rate in the case of OTUCn or NxOTU4";
        leaf otucn-n-rate {
          type uint16;
          description
            "Specify the N associated with OTUCn, e.g. N = 2,3,4 for 200G/300G/400G respectively";
        }
        leaf supported-n-otu4 {
          type uint16;
          description
            "Specify the number of N in the case of N x OTU4";
        }
      }  // choice otu-rate

      leaf-list foic-type {
        type identityref {
          base org-openroadm-common-optical-channel-types:foic-identity;
        }
        description "FlexO interface type ";
      }

      leaf otn-capability-profile-name {
        type leafref {
          path
            "/org-openroadm-device/otn-capability-profile/profile-name";
        }
        description "OTN capabilities";
      }

      leaf otn-odu-mux-hierarchy-profile-name {
        type leafref {
          path
            "/org-openroadm-device/otn-odu-mux-hierarchy-profile/profile-name";
        }
        description
          "OTN ODU Mux hierarchy capabilities";
      }
    }  // grouping otsigroup-capability-grp

    grouping split-lambda-capability-grp {
      description
        "Split lambda capability group";
      container logical-port {
        description "Logical port container";
        leaf circuit-pack-name {
          type string;
          description
            "The circuit pack supporting the logical port";
        }

        leaf port-name {
          type string;
          description
            "Port name for logical-port";
        }
      }  // container logical-port

      list otsi {
        key "circuit-pack-name port-name";
        description
          "OTSI list for split lambda";
        leaf circuit-pack-name {
          type string;
          description
            "OTSI circuit pack name";
        }

        leaf port-name {
          type string;
          description "OTSI port name";
        }

        leaf otsi-rate {
          type identityref {
            base org-openroadm-common-optical-channel-types:otsi-rate-identity;
          }
          description "OTSI rate";
        }

        leaf-list optical-operational-mode {
          type leafref {
            path
              "/org-openroadm-device/optical-operational-mode-profile/profile-name";
          }
          description
            "Optical operational mode leaf list";
        }
      }  // list otsi

      leaf-list otsigroup-capability-profile-name {
        type leafref {
          path
            "/org-openroadm-device/otsigroup-capability-profile/profile-name";
        }
        description
          "OTSI group capability mode";
      }
    }  // grouping split-lambda-capability-grp

    grouping otn-capability-grp {
      description "OTN capability group";
      leaf-list if-protection-capability {
        type identityref {
          base org-openroadm-common-types:otn-protection-type;
        }
        description
          "supported protection types if protection is supported on this port";
      }

      leaf proactive-DMp {
        type boolean;
        description
          "ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
      }

      leaf tcm-capable {
        type boolean;
        description
          "only when tcm-capable=true, the following two are applicable (ie, proactive-DMt, tcm-direction";
      }

      leaf proactive-DMt {
        when "../tcm-capable= 'true'";
        type boolean;
        description
          "ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
      }

      leaf tcm-direction-capability {
        when "../tcm-capable= 'true'";
        type org-openroadm-common-types:tcm-direction-capability-type;
        description
          "Supported tcm direction capability on the ODUk associated with the port.";
      }

      leaf-list opu-payload-type-mapping {
        type org-openroadm-otn-common-types:payload-type-def;
        description
          "OPU payload-type mapping OPU.";
      }
    }  // grouping otn-capability-grp

    grouping otn-odu-mux-hierarchy-grp {
      description
        "ODU mux hierarchy base group";
      list mux-capability {
        key "stage-number ho-odu-type ho-odu-payload-type";
        description
          "low order ODU TCM direction capability";
        leaf stage-number {
          type uint8 {
            range "1 .. 2";
          }
          description "stage number";
        }

        leaf ho-odu-type {
          type identityref {
            base org-openroadm-otn-common-types:odu-rate-identity;
          }
          description "High order ODU type";
        }

        leaf ho-odu-payload-type {
          type org-openroadm-otn-common-types:payload-type-def;
          description
            "High order ODU payload type";
        }

        leaf-list supported-lo-odu-type {
          type identityref {
            base org-openroadm-otn-common-types:odu-rate-identity;
          }
          description
            "Supported low order ODU type";
        }

        leaf lo-odu-proactive-DMp {
          type boolean;
          description
            "low order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
        }

        leaf lo-odu-tcm-capable {
          type boolean;
          description
            "only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction";
        }

        leaf lo-odu-proactive-DMt {
          when
            "../lo-odu-tcm-capable= 'true'";
          type boolean;
          description
            "low order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
        }

        leaf lo-odu-tcm-direction-capability {
          when
            "../lo-odu-tcm-capable= 'true'";
          type org-openroadm-common-types:tcm-direction-capability-type;
          description
            "Supported tcm direction capability for low order ODU associated with the port.";
        }
      }  // list mux-capability
    }  // grouping otn-odu-mux-hierarchy-grp

    grouping mux-grp {
      description "Mux group grouping";
      leaf odtu-type {
        type identityref {
          base org-openroadm-otn-common-types:odtu-type-identity;
        }
        mandatory true;
        description
          "ODTU type, part of the MSI (Multiplex Structure Identifier)";
      }

      leaf network-odu-rate {
        type identityref {
          base org-openroadm-otn-common-types:odu-rate-identity;
        }
        mandatory true;
        description "Network ODU rate";
      }

      leaf network-oducn-n-rate {
        type uint16;
        description
          "Network ODUCn rate, eg, network-oducn-n-rate=4 for ODUC4";
      }

      leaf network-ho-odu-trib-port-number {
        type uint16 {
          range "1 .. 80";
        }
        mandatory true;
        description "Tributary port number";
      }

      leaf-list network-ho-odu-trib-slots {
        type uint16 {
          range "1 .. 80";
        }
        min-elements 1;
        max-elements 80;
        description
          "Network high order ODU trib slots";
      }

      leaf-list network-ho-odu-opucn-trib-slots {
        type org-openroadm-otn-common-types:opucn-trib-slot-def;
        description
          "Network high order ODU OPU tributary slots";
      }
    }  // grouping mux-grp

    grouping org-openroadm-device-container {
      container org-openroadm-device {
        container info {
          uses device-common;

          leaf max-degrees {
            type uint16;
            config false;
            description
              "Max. number of degrees supported by device";
          }

          leaf max-srgs {
            type uint16;
            config false;
            description
              "Max. number of SRGs in an add/drop group";
          }

          leaf max-num-bin-15min-historical-pm {
            type uint16;
            config false;
            description
              "Max. number of bin the NE support for 15min historical PM";
          }

          leaf max-num-bin-24hour-historical-pm {
            type uint16;
            config false;
            description
              "Max. number of bin the NE support for 24hour historical PM";
          }
        }  // container info

        container users {
          description
            "Stores a list of users";
          uses org-openroadm-user-mgmt:user-profile;
        }  // container users

        container pending-sw {
          config false;
          description
            "pending software information";
          uses org-openroadm-swdl:sw-bank;
        }  // container pending-sw

        container database-info {
          config false;
          description
            "database restore information";
          uses org-openroadm-swdl:database-info-group;
        }  // container database-info

        uses shelves;

        uses circuit-packs;

        uses interfaces-grp;

        uses protection-groups;

        container protocols {
          description
            "Contains the supported protocols";
          leaf lifecycle-state {
            type org-openroadm-common-state-types:lifecycle-state;
            description
              "Lifecycle State of the protocols. Whether it is planned or deployed, etc.";
          }
        }  // container protocols

        uses internal-links;

        uses physical-links;

        uses external-links;

        list degree {
          when
            "/org-openroadm-device/info/node-type='rdm'";
          key "degree-number";
          uses degree;
        }  // list degree

        list shared-risk-group {
          when
            "/org-openroadm-device/info/node-type='rdm'";
          key "srg-number";
          uses srg;
        }  // list shared-risk-group

        list line-amplifier {
          when
            "/org-openroadm-device/info/node-type='ila'";
          key "amp-number";
          description
            "lists amplifiers in different directions";
          uses amplifier;

          list circuit-pack {
            key "index";
            description
              "list for Cards associated with an amplifier";
            leaf index {
              type uint32;
            }

            uses circuit-pack-name {
              refine 
            }
          }  // list circuit-pack

          list line-port {
            key "port-direction";
            description
              "Port associated with an amplifier which face the line (ila-external): traffic port.";
            leaf port-direction {
              type org-openroadm-common-alarm-pm-types:direction;
              mandatory true;
              description
                "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
TXRX in case of bidirectional port";
            }

            leaf tx-instance-port-direction-label {
              type string;
              description
                "Complements ports identification. Used notably in case of bidirectional ports,
and/or in multi-degree amplifier nodes. Allows associating one of the directions
specified in ila-direction-label. Shall be consistent with ila-direction-label";
            }

            leaf rx-instance-port-direction-label {
              type string;
              description
                "Complements ports identification. Used notably in case of bidirectional ports,
and/or in multi-degree amplifier nodes. Allows associating one of the directions
specified in ila-direction-label. Shall be consistent with ila-direction-label";
            }

            uses port-name {
              refine 
              refine 
            }
          }  // list line-port

          list osc-port {
            key "port-direction";
            description
              "Ports associated with OSC";
            leaf port-direction {
              type org-openroadm-common-alarm-pm-types:direction;
              mandatory true;
              description
                "allows identifying ports associated with logical amp :
TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
            }

            uses port-name {
              refine 
              refine 
            }
          }  // list osc-port

          list otdr-port {
            key "otdr-direction";
            description
              "otdr ports associated with an ILA";
            leaf otdr-direction {
              type string;
              description
                "allows identifying associated logical amp port in which OTDR is launched:
corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
            }

            uses port-name {
              refine 
              refine 
            }
          }  // list otdr-port
        }  // list line-amplifier

        list xponder {
          when
            "/org-openroadm-device/info/node-type='xpdr'";
          key "xpdr-number";
          uses xponder;
        }  // list xponder

        list roadm-connections {
          when
            "/org-openroadm-device/info/node-type='rdm'";
          key "connection-name";
          uses connection;
        }  // list roadm-connections

        list odu-connection {
          when
            "/org-openroadm-device/info/node-type='xpdr'";
          key "connection-name";
          uses odu-connection;
        }  // list odu-connection

        list connection-map {
          key "connection-map-number";
          config false;
          leaf connection-map-number {
            type uint32;
            description
              "Unique identifier for this connection-map entry";
          }

          container source {
            leaf circuit-pack-name {
              type leafref {
                path
                  "/org-openroadm-device/circuit-packs/circuit-pack-name";
              }
              mandatory true;
            }

            leaf port-name {
              type leafref {
                path
                  "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
              }
              mandatory true;
              description
                "Port identifier. Unique within the context of a circuit-pack.";
            }
          }  // container source

          list destination {
            key "circuit-pack-name port-name";
            min-elements 1;
            leaf circuit-pack-name {
              type leafref {
                path
                  "/org-openroadm-device/circuit-packs/circuit-pack-name";
              }
              mandatory true;
            }

            leaf port-name {
              type leafref {
                path
                  "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
              }
              mandatory true;
              description
                "Port identifier. Unique within the context of a circuit-pack.";
            }
          }  // list destination
        }  // list connection-map

        list odu-switching-pools {
          when
            "/org-openroadm-device/info/node-type='xpdr'";
          key "switching-pool-number";
          config false;
          leaf switching-pool-number {
            type uint16;
            description
              "Unique identifier for this odu-switching-pool";
          }

          leaf switching-pool-type {
            type org-openroadm-switching-pool-types:switching-pool-types;
            description
              "Blocking/Non-Blocking";
          }

          leaf odu-connection-direction-capabilities {
            type identityref {
              base connection-direction-identity;
            }
            description
              "Bidrectional capable, or Bi and Unidirectional capable";
          }

          list non-blocking-list {
            key "nbl-number";
            config false;
            description
              "List of ports in a non-blocking switch element";
            leaf nbl-number {
              type uint16;
              description
                "Identifier for this non-blocking-list. Unique within odu-switching-pool";
            }

            leaf interconnect-bandwidth-unit {
              type uint32;
              config false;
              description
                "Switch fabric interconnect bandwidth unit rate in bits per second.
Represents granularity of switch fabric";
            }

            leaf interconnect-bandwidth {
              type uint32;
              config false;
              description
                "Total interconnect bandwidth for a non-blocking element expressed as
number of inter-connect-bandwidth units";
            }

            list port-list {
              key "circuit-pack-name port-name";
              leaf circuit-pack-name {
                type leafref {
                  path
                    "/org-openroadm-device/circuit-packs/circuit-pack-name";
                }
                config false;
              }

              leaf port-name {
                type leafref {
                  path
                    "/org-openroadm-device/circuit-packs/ports/port-name";
                }
                config false;
                description
                  "Port name. Unique within device";
              }
            }  // list port-list

            list pluggable-optics-holder-list {
              key "circuit-pack-name slot-name";
              leaf circuit-pack-name {
                type leafref {
                  path
                    "/org-openroadm-device/circuit-packs/circuit-pack-name";
                }
                config false;
                description
                  "Name of parent circuit-pack";
              }

              leaf slot-name {
                type leafref {
                  path
                    "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
                }
                config false;
                description
                  "Name of pluggable-optics-holder";
              }
            }  // list pluggable-optics-holder-list
          }  // list non-blocking-list
        }  // list odu-switching-pools

        list otsigroup-capability-profile {
          key "profile-name";
          config false;
          description
            "OTSI group operational profile";
          leaf profile-name {
            type string;
            description
              "OTSI group profile name";
          }

          uses otsigroup-capability-grp;
        }  // list otsigroup-capability-profile

        list mc-capability-profile {
          key "profile-name";
          config false;
          description
            "Media channel capability profile list";
          leaf profile-name {
            type string;
            description
              "Media channel profile name";
          }

          leaf center-freq-granularity {
            type org-openroadm-common-optical-channel-types:frequency-GHz;
            default "50";
            config false;
            description
              "Granularity of allowed center frequencies.  The base frequency for this computation is 193.1 THz (G.694.1)";
          }

          leaf min-edge-freq {
            type org-openroadm-common-optical-channel-types:frequency-THz;
            config false;
            description
              "Minimum edge frequency";
          }

          leaf max-edge-freq {
            type org-openroadm-common-optical-channel-types:frequency-THz;
            config false;
            description
              "Maximum edge frequency";
          }

          leaf slot-width-granularity {
            type org-openroadm-common-optical-channel-types:frequency-GHz;
            default "50";
            config false;
            description
              "Width of a slot measured in GHz.";
          }

          leaf min-slots {
            type uint32;
            default "1";
            config false;
            description
              "Minimum number of slots permitted to be joined together to form a media channel.  Must be less than or equal to the max-slots";
          }

          leaf max-slots {
            type uint32;
            default "1";
            config false;
            description
              "Maximum number of slots permitted to be joined together to form a media channel.  Must be greater than or equal to the min-slots";
          }
        }  // list mc-capability-profile

        list split-lambda-profile {
          key "profile-name";
          config false;
          description
            "OTN capability profile";
          leaf profile-name {
            type string;
            description
              "Split lambda profile name";
          }

          uses split-lambda-capability-grp;
        }  // list split-lambda-profile

        list otn-odu-mux-hierarchy-profile {
          key "profile-name";
          config false;
          description
            "OTN ODU mux hierarchy profile list";
          leaf profile-name {
            type string;
            description
              "OTN ODU mux hierarchy profile name";
          }

          uses otn-odu-mux-hierarchy-grp;
        }  // list otn-odu-mux-hierarchy-profile

        list optical-operational-mode-profile {
          key "profile-name";
          config false;
          description
            "Optical operational profile";
          leaf profile-name {
            type string;
            description
              "Optical operational profile name";
          }

          uses org-openroadm-optical-operational-interfaces:optical-operational-modes-grp-attr;
        }  // list optical-operational-mode-profile

        list otn-capability-profile {
          key "profile-name";
          config false;
          description
            "OTN capability profile";
          leaf profile-name {
            type string;
            description
              "OTN capability profile name";
          }

          uses otn-capability-grp;
        }  // list otn-capability-profile

        list muxp-profile {
          key "profile-name";
          config false;
          description "Muxp profile list";
          leaf profile-name {
            type string;
            description "Mux profile name";
          }

          uses mux-grp;
        }  // list muxp-profile
      }  // container org-openroadm-device
    }  // grouping org-openroadm-device-container

    grouping common-session-parms {
      description
        "Common session parameters to identify a
management session.";
      leaf username {
        type org-openroadm-user-mgmt:username-type;
        mandatory true;
        description
          "Name of the user for the session.";
      }

      leaf session-id {
        type ietf-nc:session-id-or-zero-type;
        mandatory true;
        description
          "Identifier of the session.
A NETCONF session MUST be identified by a non-zero value.
A non-NETCONF session MAY be identified by the value zero.";
      }

      leaf source-host {
        type ietf-inet-types:ip-address;
        description
          "Address of the remote host for the session.";
      }
    }  // grouping common-session-parms

    grouping changed-by-parms {
      description
        "Common parameters to identify the source
of a change event, such as a configuration
or capability change.";
      container changed-by {
        description
          "Indicates the source of the change.
If caused by internal action, then the
empty leaf 'server' will be present.
If caused by a management session, then
the name, remote host address, and session ID
of the session that made the change will be reported.";
        choice server-or-user {
          leaf server {
            type empty;
            description
              "If present, the change was caused
by the server.";
          }

          case by-user {
            uses common-session-parms;
          }  // case by-user
        }  // choice server-or-user
      }  // container changed-by
    }  // grouping changed-by-parms

    rpc led-control {
      description
        "This command is used to allow user to find an entity on the NE,
The specified entity will have LED blinking.
The equipmentLedOn alarm will be raised and cleared for the indication";
      input {
        choice equipment-entity {
          mandatory true;
          leaf shelf-name {
            type leafref {
              path "/org-openroadm-device/shelves/shelf-name";
            }
            mandatory true;
            description
              "shelf-name for the operation";
          }
          leaf circuit-pack-name {
            type leafref {
              path "/org-openroadm-device/circuit-packs/circuit-pack-name";
            }
            mandatory true;
            description
              "circuit-pack-name for the operation";
          }
        }  // choice equipment-entity

        leaf enabled {
          type boolean;
          mandatory true;
          description
            "led-control enabled flag.
when enabled=true,  equipmentLedOn alarm will be raised
when enabled=false, equipmentLedOn alarm will be cleared";
        }
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc led-control

    rpc create-tech-info {
      description
        "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
A create-tech-info-notification will be send out later for the result of the operation.
The log-file is cleared at the start of every create-tech-info operation in order to ensure
the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
create-tech-info command will be rejected.";
      input {
        leaf shelf-id {
          type leafref {
            path "/org-openroadm-device/shelves/shelf-name";
          }
          description
            "This optional field is used to specify the shelf for log collection.
When this filed is not provided, it is expected to collect logs for the whole node.
Vendor should reject the command if the whole node log collection is not supported.";
        }

        leaf log-option {
          type string;
          description
            "The log type a vendor can specify. Maybe used in future";
        }
      }

      output {
        uses create-tech-info-group;

        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc create-tech-info

    rpc get-connection-port-trail {
      input {
        leaf connection-name {
          type string;
          mandatory true;
        }
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;

        list ports {
          uses org-openroadm-device-types:physical-location;

          uses port-name {
            refine circuit-pack-name {
              mandatory true;
            }

            refine port-name {
              mandatory true;
            }
          }
        }  // list ports
      }
    }  // rpc get-connection-port-trail

    rpc disable-automatic-shutoff {
      input {
        choice degree-or-amp {
          mandatory true;
          description
            "The choice describes the option to specify the entity for the disable-automatic-shutoff RPC. It can be degree-number for rdm and amp-number for ila";
          leaf degree-number {
            type leafref {
              path "/org-openroadm-device/degree/degree-number";
            }
            mandatory true;
            description
              "The degree-number defined in degree";
          }
          leaf amp-number {
            type leafref {
              path "/org-openroadm-device/line-amplifier/amp-number";
            }
            mandatory true;
            description
              "The amp-number defined in line-amplifier";
          }
        }  // choice degree-or-amp

        leaf support-timer {
          type uint16 {
            range "1..600";
          }
          default "20";
        }
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc disable-automatic-shutoff

    rpc start-scan {
      input {
        choice degree-or-amp {
          mandatory true;
          description
            "The choice describes the option to specify the entity for the start-scan RPC. It can be degree-number for rdm and amp-number for ila";
          leaf degree-number {
            type leafref {
              path "/org-openroadm-device/degree/degree-number";
            }
            mandatory true;
            description
              "The degree-number defined in degree";
          }
          leaf amp-number {
            type leafref {
              path "/org-openroadm-device/line-amplifier/amp-number";
            }
            mandatory true;
            description
              "The amp-number defined in line-amplifier";
          }
        }  // choice degree-or-amp

        leaf port-direction {
          type org-openroadm-common-alarm-pm-types:direction;
        }

        leaf distance {
          type uint32;
        }

        leaf resolution {
          type uint32;
        }
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc start-scan

    rpc set-current-datetime {
      description
        "Set the info/current-datetime leaf to the specified value.";
      input {
        leaf current-datetime {
          type ietf-yang-types:date-and-time;
          mandatory true;
          description
            "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
        }
      }

      output {
        uses org-openroadm-common-types:rpc-response-status;
      }
    }  // rpc set-current-datetime

    notification create-tech-info-notification {
      description
        "This Notification is sent when the create-tech-info is complete or failed.";
      uses create-tech-info-group;

      uses org-openroadm-common-types:rpc-response-status;
    }  // notification create-tech-info-notification

    notification otdr-scan-result {
      description
        "This Notification is sent when the otdr-scan-result is complete or failed.";
      uses org-openroadm-common-types:rpc-response-status;

      leaf result-file {
        type string;
      }
    }  // notification otdr-scan-result

    notification change-notification {
      description
        "The Notification that a resource has been added, modified or removed.
This notification can be triggered by changes in configuration and operational data.
It shall contain the changed field pointed by the xpath.
Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
      leaf change-time {
        type ietf-yang-types:date-and-time;
        description
          "The time the change occurs.";
      }

      uses changed-by-parms;

      leaf datastore {
        type enumeration {
          enum "running" {
            value 0;
            description
              "The <running> datastore has changed.";
          }
          enum "startup" {
            value 1;
            description
              "The <startup> datastore has changed";
          }
        }
        default "running";
        description
          "Indicates which configuration datastore has changed.";
      }

      list edit {
        description
          "An edit (change) record SHOULD be present for each distinct
edit operation that the server has detected on
the target datastore.  This list MAY be omitted
if the detailed edit operations are not known.
The server MAY report entries in this list for
changes not made by a NETCONF session.";
        leaf target {
          type instance-identifier;
          description
            "Top most node associated with the configuration or operational change.
A server SHOULD set this object to the node within
the datastore that is being altered.  A server MAY
set this object to one of the ancestors of the actual
node that was changed, or omit this object, if the
exact node is not known.";
        }

        leaf operation {
          type ietf-nc:edit-operation-type;
          description
            "Type of edit operation performed.
A server MUST set this object to the NETCONF edit
operation performed on the target datastore.";
        }
      }  // list edit
    }  // notification change-notification

    uses org-openroadm-device-container;
  }  // module org-openroadm-device

Summary

  
  
Organization Open ROADM MSA
  
Module org-openroadm-device
Version 2020-05-29
File org-openroadm-device.yang
  
Prefix org-openroadm-device
Namespace http://org/openroadm/device
  
Cooked /cookedmodules/org-openroadm-device/2020-05-29
YANG /src/org-openroadm-device@2020-05-29.yang
XSD /xsd/org-openroadm-device@2020-05-29.xsd
  
Abstract YANG definitions of ROADM device Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, All other rights rese...
  
Contact
OpenROADM.org

Description

 
YANG definitions of ROADM device

Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
All other rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation and/or
  other materials provided with the distribution.
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
  contributors may be used to endorse or promote products derived from this software
  without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

Also contains code components extracted from IETF netconf.  These code components
are copyrighted and licensed as follows:

Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents carefully, as they
describe your rights and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.

Typedefs

Typedef Base type Abstract
interface-ref leafref This type is used by data models that need to reference configured interfaces.

Groupings

Grouping Objects Abstract
amplifier amp-number amp-type control-mode amp-gain-range target-gain target-tilt egress-average-channel-power out-voa-att partner-amp ila-direction-label lifecycle-state
changed-by-parms changed-by Common parameters to identify the source of a change event, such as a configuration or capability change.
circuit-pack circuit-pack-name lifecycle-state administrative-state vendor model serial-id type product-code manufacture-date clei hardware-version operational-statecircuit-pack-category equipment-state circuit-pack-mode shelf slot subSlot is-pluggable-optics is-physical is-passive faceplate-label user-descriptiondue-date parent-circuit-pack cp-slots software-load-version circuit-pack-features circuit-pack-componentsports
circuit-pack-features software-load-version circuit-pack-features circuit-pack-components
circuit-pack-name circuit-pack-name
circuit-packs circuit-packs
common-session-parms username session-id source-host Common session parameters to identify a management session.
connection connection-name opticalControlMode target-output-power source destination Grouping used to define connections.
create-tech-info-group shelf-id log-file-name
degree degree-number lifecycle-state max-wavelengths circuit-packs connection-ports otdr-port mc-capability-profile-name
degree-number degree-number
device-common node-id node-number node-type clli vendor model serial-idipAddress prefix-length defaultGateway source current-ipAddress current-prefix-length current-defaultGateway macAddress softwareVersion software-build openroadm-version template current-datetime lifecycle-state geoLocation
external-link external-link-name source destination
external-links external-link YANG definitions for external links.. - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.
flexo-grp circuit-pack-name port-name fecotsi-rate otsi-modulation-format otsi-width operational-mode-id Flexo group
interface-name interface-name interface name grouping
interfaces-grp interface OpenROADM Interface configuration parameters.
internal-link internal-link-name source destination
internal-links internal-link
mc-capabilities-grp mc-capability-profile-name Media channel capabilities grouping
mux-grp odtu-type network-odu-rate network-oducn-n-rate network-ho-odu-trib-port-number network-ho-odu-trib-slots network-ho-odu-opucn-trib-slots Mux group grouping
odu-connection connection-name direction source destination Grouping used to define odu-connections.
odu-mux-hierarchy-grp mux-capability ODU mux hierarchy group
org-openroadm-device-container org-openroadm-device
otn-capability-grp if-protection-capability proactive-DMp tcm-capable proactive-DMt tcm-direction-capability opu-payload-type-mapping OTN capability group
otn-odu-mux-hierarchy-grp mux-capability ODU mux hierarchy base group
otsigroup-capability-grp if-cap-type otu-rate foic-type otn-capability-profile-name otn-odu-mux-hierarchy-profile-name Otsigroup group capability
physical-link physical-link-name is-physical user-descriptionsource destination lifecycle-state
physical-links physical-link YANG definitions for physical links. - physical links (fiber, cables,etc.) between ports within a node.
port port-name supporting-port-listport-type port-qual port-wavelength-type port-direction is-physical faceplate-label user-descriptioncircuit-id lifecycle-state administrative-state operational-state logical-connection-point partner-port parent-port interfaces mc-capability-profile-name Grouping of attributes related to a port object.
port-name circuit-pack-nameport-name
protection-groups protection-grps OpenROADM facility protection configuration parameters.
shelf shelf-name shelf-type rack shelf-position lifecycle-state administrative-state vendor model serial-id type product-code manufacture-date clei hardware-version operational-stateequipment-state is-physical is-passive faceplate-label user-descriptiondue-date slots
shelves shelves
slot-info slot-name label provisioned-circuit-pack slot-status slots information. To be populated by NE during retrieval.
split-lambda-capability-grp logical-port otsi otsigroup-capability-profile-name Split lambda capability group
srg max-add-drop-ports current-provisioned-add-drop-ports srg-number lifecycle-state wavelength-duplication circuit-packs mc-capability-profile-name
srg-number srg-number
supporting-circuit-pack-list-grp supporting-port-list supporting circuit pack list grouping
supporting-port-name supporting-circuit-pack-name supporting-port
user-description-grp user-description user description group
xponder xpdr-number xpdr-type lifecycle-state recolor xpdr-port

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
org-openroadm-device container info users pending-sw database-info shelves circuit-packs interface protection-grps protocols internal-link physical-link external-link degree shared-risk-group line-amplifier xponder roadm-connections odu-connection connection-map odu-switching-pools otsigroup-capability-profile mc-capability-profile split-lambda-profile otn-odu-mux-hierarchy-profile optical-operational-mode-profile otn-capability-profile muxp-profile
   circuit-packs list List of circuit packs. This includes common equipment, like fans, power supplies, etc.
      administrative-state leaf Administrative state of circuit-pack
      circuit-pack-category container General type of circuit-pack
         extension leaf Populated with equipment type when enum value is set to 'other'
         type leaf OID: /org-openroadm-device/circuit-packs/circuit-pack-category/type
      circuit-pack-components list component
         component container Optional list of components on the circuit-pack and the load information applicable to those components. If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed. If there is no misa...
            boot leaf Flag to indicate boot loader or unprotected firmware update required
            current-version leaf Name of the load version currently running on the component.
            name leaf Name of a component on the circuit-pack that can have a load applied to it.
            version-to-apply leaf Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.
      circuit-pack-features list feature
         feature container List of features supported by the installed load and indications on whether the features have been applied or not.
            activated leaf Indicator if the feature has been activated.
            boot leaf Flag to indicate boot loader or unprotected firmware update required
            description leaf Feature description.
      circuit-pack-mode leaf Circuit-pack mode allowed. e.g. NORMAL or REGEN
      circuit-pack-name leaf Unique identifier for this circuit-pack within a device
      circuit-pack-product-code leaf Product Code for the circuit-pack
      circuit-pack-type leaf Type of circuit-pack
      clei leaf CLEI for this physical resource
      cp-slots list List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.
         label leaf Faceplate label
         provisioned-circuit-pack leaf The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov
         slot-name leaf The name of this slot.
         slot-status leaf OID: /org-openroadm-device/circuit-packs/cp-slots/slot-status
         slot-type leaf OID: /org-openroadm-device/circuit-packs/cp-slots/slot-type
      due-date leaf due date for this circuit-pack.
      equipment-state leaf Equipment state, which complements operational state.
      faceplate-label leaf label on the faceplace silk screening
      hardware-version leaf The version of the hardware.
      is-passive leaf is the entity passive and not actively managed by the device; e.g., no physical inventory or plug-in notification supported
      is-physical leaf is the entity physical or logical
      is-pluggable-optics leaf True if circuitpack is pluggable optics
      lifecycle-state leaf Lifecycle State of circuit-pack. Whether it is planned, deployed, in maintenance, etc.
      manufacture-date leaf Manufacture date of physical resource
      model leaf Physical resource model information.
      operational-state leaf Operational state of the physical resource
      parent-circuit-pack container In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment. It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circui...
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         cp-slot-name leaf Slot name on parent-circuit-pack.
      ports list List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs. All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-...
         administrative-state leaf Administrative state of port. The value of this field independent of the state of its contained and containing resources. Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained ...
         circuit-id leaf circuit identifier/user label, can be used in alarm correlation and/or connection management
         faceplate-label leaf label on the faceplace silk screening
         ila-port container port-power-capability-min-rx port-power-capability-min-tx port-power-capability-max-rx port-power-capability-max-tx
            port-power-capability-max-rx leaf Based on port capabilities, the maximum power in the system spec for this port to provide optimum function in rx direction.
            port-power-capability-max-tx leaf Based on port capabilities, the maximum power in the system spec for this port to provide optimum function in tx direction.
            port-power-capability-min-rx leaf Based on port capabilities, the minimum power in the system spec for this port to provide optimum function in rx direction
            port-power-capability-min-tx leaf Based on port capabilities, the minimum power in the system spec for this port to provide optimum function in tx direction.
         interfaces list List of the interfaces this port supports. This is a list of names of instances in the flat instance list. Implementations must provide the list of interfaces for port that has interfaces provisioned on that port.
            interface-name leaf Name of an interface. Unique within the context of a device.
         is-physical leaf is the entity physical or logical
         lifecycle-state leaf Lifecycle State of port. Whether it is planned, deployed, in maintenance, etc.
         logical-connection-point leaf delete or replace with list logical-ports or connections?
         mc-capability-profile-name leaf-list Media channel capabilities
         operational-state leaf Operational state of a port
         otdr-port container Settings for otdr port.
            launch-cable-length leaf OID: /org-openroadm-device/circuit-packs/ports/otdr-port/launch-cable-length
            port-direction leaf OID: /org-openroadm-device/circuit-packs/ports/otdr-port/port-direction
         parent-port container In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports. The parent-port of the subport will be the port ...
            circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
            port-name leaf Port identifier. Unique within the context of a circuit-pack.
         partner-port container For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-p...
            circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
            port-name leaf Port identifier. Unique within the context of a circuit-pack.
         port-direction leaf Whether port is uni (tx/rx) or bi-directional and
         port-name leaf Identifier for a port, unique within a circuit pack
         port-qual leaf OID: /org-openroadm-device/circuit-packs/ports/port-qual
         port-type leaf Type of the pluggable or fixed port.
         port-wavelength-type leaf Type of port - single, multiple-wavelength, etc.
         roadm-port container port-power-capability-min-rx port-power-capability-min-tx port-power-capability-max-rx port-power-capability-max-tx
            port-power-capability-max-rx leaf Based on port capabilities, the maximum power in the system spec for this port to provide optimum function in rx direction.
            port-power-capability-max-tx leaf Based on port capabilities, the maximum power in the system spec for this port to provide optimum function in tx direction.
            port-power-capability-min-rx leaf Based on port capabilities, the minimum power in the system spec for this port to provide optimum function in rx direction
            port-power-capability-min-tx leaf Based on port capabilities, the minimum power in the system spec for this port to provide optimum function in tx direction.
         supporting-port-list list supporting port list
            circuit-pack-name leaf The supported circuit-pack.
            index leaf supporting circuit pack index
            port-list leaf-list port list
         transponder-port container port-power-capability-min-rx port-power-capability-min-tx port-power-capability-max-rx port-power-capability-max-tx
            port-power-capability-max-rx leaf Based on port capabilities, the maximum power in the system spec for this port to provide optimum function in rx direction.
            port-power-capability-max-tx leaf Based on port capabilities, the maximum power in the system spec for this port to provide optimum function in tx direction.
            port-power-capability-min-rx leaf Based on port capabilities, the minimum power in the system spec for this port to provide optimum function in rx direction
            port-power-capability-min-tx leaf Based on port capabilities, the minimum power in the system spec for this port to provide optimum function in tx direction.
         user-description leaf user provided description
      product-code leaf Product Code for this physical resource
      serial-id leaf Product Code for this physical resource
      shelf leaf OID: /org-openroadm-device/circuit-packs/shelf
      slot leaf OID: /org-openroadm-device/circuit-packs/slot
      software-load-version leaf Software version running on the circuit pack.
      subSlot leaf OID: /org-openroadm-device/circuit-packs/subSlot
      type leaf The specific type of this physical resource - ie the type of shelf, type of circuit-pack, etc.
      user-description leaf user provided description
      vendor leaf Vendor of the equipment
   connection-map list connection-map-number source destination
      connection-map-number leaf Unique identifier for this connection-map entry
      destination list circuit-pack-name port-name
         circuit-pack-name leaf OID: /org-openroadm-device/connection-map/destination/circuit-pack-name
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      source container circuit-pack-name port-name
         circuit-pack-name leaf OID: /org-openroadm-device/connection-map/source/circuit-pack-name
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
   database-info container database restore information
      activation-date-time leaf activation date and time: The date load was activated
      last-restored-time leaf last restored time for the database, or the time that the database was created, whichever is later
      rollback-timer leaf value of rollback timer in hh-mm-ss
   degree list degree-number lifecycle-state max-wavelengths circuit-packs connection-ports otdr-port mc-capability-profile-name
      circuit-packs list list for Cards associated with a degree
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         index leaf OID: /org-openroadm-device/degree/circuit-packs/index
      connection-ports list Port associated with degree: One if bi-directional; two if uni-directional
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         index leaf OID: /org-openroadm-device/degree/connection-ports/index
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      degree-number leaf Degree number should be greater than zero and not greater than max-degrees
      lifecycle-state leaf Lifecycle State of degree. Whether it is planned, deployed, in maintenance, etc.
      max-wavelengths leaf maximum number of wavelengths
      mc-capability-profile-name leaf-list Media channel capabilities
      otdr-port container otdr port associated with degree.
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
   external-link list external-link-name source destination
      destination container node-id circuit-pack-name port-name
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device. Same as leafref value in model, if applicable.
         node-id leaf Node Id is a globally unique identifier for a device. Same as leafref value in model, if applicable.
         port-name leaf Port identifier. Unique within the context of a circuit-pack. Same as leafref value in model, if applicable.
      external-link-name leaf OID: /org-openroadm-device/external-link/external-link-name
      source container node-id circuit-pack-name port-name
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device. Same as leafref value in model, if applicable.
         node-id leaf Node Id is a globally unique identifier for a device. Same as leafref value in model, if applicable.
         port-name leaf Port identifier. Unique within the context of a circuit-pack. Same as leafref value in model, if applicable.
   info container node-id node-number node-type clli vendor model serial-id ipAddress prefix-length defaultGateway source current-ipAddress current-prefix-length current-defaultGateway macAddress softwareVersion software-build openroadm-version template current-datetime lifecycle-state geoLocation max-degrees max-srgs max-num-bin-15min-historical-pm max-num-bin-24hour-historical-pm
      clli leaf Common Language Location Identifier.
      current-datetime leaf The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+
      current-defaultGateway leaf Current Default Gateway
      current-ipAddress leaf Current IP Address of device
      current-prefix-length leaf The current length of the subnet prefix
      defaultGateway leaf Default Gateway
      geoLocation container GPS location
         latitude leaf [From wikipedia] Latitude is an angle (defined below) which ranges from 0 at the Equator to 90 (North or South) at the poles
         longitude leaf [From wikipedia] The longitude is measured as the angle east or west from the Prime Meridian, ranging from 0 at the Prime Meridian to +180 eastward and -180 westward.
      ipAddress leaf IP Address of device
      lifecycle-state leaf Lifecycle State of the device node. Whether it is planned, deployed, in maintenance, etc.
      macAddress leaf MAC Address of device
      max-degrees leaf Max. number of degrees supported by device
      max-num-bin-15min-historical-pm leaf Max. number of bin the NE support for 15min historical PM
      max-num-bin-24hour-historical-pm leaf Max. number of bin the NE support for 24hour historical PM
      max-srgs leaf Max. number of SRGs in an add/drop group
      model leaf Physical resource model information.
      node-id leaf Globally unique identifier for a device.
      node-number leaf Number assigned to a ROADM node at a given office
      node-type leaf Identifier for node-type e.g Roadm, xponder. Once the node-type is configured, it should not be modified.
      openroadm-version leaf openroadm version used on the device
      prefix-length leaf The length of the subnet prefix
      serial-id leaf Product Code for this physical resource
      software-build leaf Software build version
      softwareVersion leaf Software version
      source leaf OID: /org-openroadm-device/info/source
      template leaf Template information used in the deployment.
      vendor leaf Vendor of the equipment
   interface list The list of configured interfaces on the device.
      administrative-state leaf OID: /org-openroadm-device/interface/administrative-state
      circuit-id leaf circuit identifier/user label, can be used in alarm correlation and/or connection management
      description leaf A textual description of the interface.
      lifecycle-state leaf Lifecycle State of interface. Whether it is planned, deployed, in maintenance, etc.
      name leaf The name of the interface.
      operational-state leaf OID: /org-openroadm-device/interface/operational-state
      supporting-circuit-pack-name leaf Identifier of the supporting circuit-pack.
      supporting-interface-list leaf-list supporting interface list
      supporting-port leaf Identifier of the supporting port.
      type leaf The type of the interface.
   internal-link list internal-link-name source destination
      destination container circuit-pack-name port-name
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      internal-link-name leaf OID: /org-openroadm-device/internal-link/internal-link-name
      source container circuit-pack-name port-name
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
   line-amplifier list lists amplifiers in different directions
      amp-gain-range leaf Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers) gain-range-1 (default value) for standard amplifiers
      amp-number leaf Unique identifier/number for the amplifier entry which corresponds to a logical amplifier
      amp-type leaf Amplifier type
      circuit-pack list list for Cards associated with an amplifier
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         index leaf OID: /org-openroadm-device/line-amplifier/circuit-pack/index
      control-mode leaf Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when ...
      egress-average-channel-power leaf Based upon the total max power across the 4.8 THz passband. Defined as optional for ODL support, but shall be considered as mandatory and provided by the controller when the control-mode is set to gainLoss for amplifier setting
      ila-direction-label leaf Amplifier direction. Each operators may have its own naming convention. Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.
      lifecycle-state leaf Lifecycle State of the amplifier. Whether it is planned, deployed, in maintenance, etc.
      line-port list Port associated with an amplifier which face the line (ila-external): traffic port.
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-direction leaf partly allows identifying ports associated with logical amp :TX for egress, RX for ingress TXRX in case of bidirectional port
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
         rx-instance-port-direction-label leaf Complements ports identification. Used notably in case of bidirectional ports, and/or in multi-degree amplifier nodes. Allows associating one of the directions specified in ila-direction-label. Shall be consistent with ila-direction-label
         tx-instance-port-direction-label leaf Complements ports identification. Used notably in case of bidirectional ports, and/or in multi-degree amplifier nodes. Allows associating one of the directions specified in ila-direction-label. Shall be consistent with ila-direction-label
      osc-port list Ports associated with OSC
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-direction leaf allows identifying ports associated with logical amp : TX for OSC circuit-pack IN RX for OSC circuit-pack OUT
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      otdr-port list otdr ports associated with an ILA
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         otdr-direction leaf allows identifying associated logical amp port in which OTDR is launched: corresponds to rx-instance-port-direction-label of corresponding amplifier line-port
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      out-voa-att leaf Used to provide the value output VOA attenuation, optional
      partner-amp leaf amp-number of amp module that is functionally associated to the amplifier in the opposite direction
      target-gain leaf Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation. Defined as optional for ODL support, but shall be considered as mandatory and provided by the controller when the control-mode is set to gainLoss for amplifier setting
      target-tilt leaf Target tilt configured in case of smart EDFA. Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet Defined as optional for ODL support, but shall be considered as mandatory and provided by the controller when the control-mode is s...
   mc-capability-profile list Media channel capability profile list
      center-freq-granularity leaf Granularity of allowed center frequencies. The base frequency for this computation is 193.1 THz (G.694.1)
      max-edge-freq leaf Maximum edge frequency
      max-slots leaf Maximum number of slots permitted to be joined together to form a media channel. Must be greater than or equal to the min-slots
      min-edge-freq leaf Minimum edge frequency
      min-slots leaf Minimum number of slots permitted to be joined together to form a media channel. Must be less than or equal to the max-slots
      profile-name leaf Media channel profile name
      slot-width-granularity leaf Width of a slot measured in GHz.
   muxp-profile list Muxp profile list
      network-ho-odu-opucn-trib-slots leaf-list Network high order ODU OPU tributary slots
      network-ho-odu-trib-port-number leaf Tributary port number
      network-ho-odu-trib-slots leaf-list Network high order ODU trib slots
      network-odu-rate leaf Network ODU rate
      network-oducn-n-rate leaf Network ODUCn rate, eg, network-oducn-n-rate=4 for ODUC4
      odtu-type leaf ODTU type, part of the MSI (Multiplex Structure Identifier)
      profile-name leaf Mux profile name
   odu-connection list connection-name direction source destination
      connection-name leaf roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)
      destination container dst-if
         dst-if leaf OID: /org-openroadm-device/odu-connection/destination/dst-if
      direction leaf Directionality of connection. If bidirectional, both directions are created.
      source container src-if
         src-if leaf OID: /org-openroadm-device/odu-connection/source/src-if
   odu-switching-pools list switching-pool-number switching-pool-type odu-connection-direction-capabilities non-blocking-list
      non-blocking-list list List of ports in a non-blocking switch element
         interconnect-bandwidth leaf Total interconnect bandwidth for a non-blocking element expressed as number of inter-connect-bandwidth units
         interconnect-bandwidth-unit leaf Switch fabric interconnect bandwidth unit rate in bits per second. Represents granularity of switch fabric
         nbl-number leaf Identifier for this non-blocking-list. Unique within odu-switching-pool
         pluggable-optics-holder-list list circuit-pack-name slot-name
            circuit-pack-name leaf Name of parent circuit-pack
            slot-name leaf Name of pluggable-optics-holder
         port-list list circuit-pack-name port-name
            circuit-pack-name leaf OID: /org-openroadm-device/odu-switching-pools/non-blocking-list/port-list/circuit-pack-name
            port-name leaf Port name. Unique within device
      odu-connection-direction-capabilities leaf Bidrectional capable, or Bi and Unidirectional capable
      switching-pool-number leaf Unique identifier for this odu-switching-pool
      switching-pool-type leaf Blocking/Non-Blocking
   optical-operational-mode-profile list Optical operational profile
      profile-name leaf Optical operational profile name
      spectral-width leaf The required minimum signal spectral width of signal at -22 dbm.
   otn-capability-profile list OTN capability profile
      if-protection-capability leaf-list supported protection types if protection is supported on this port
      opu-payload-type-mapping leaf-list OPU payload-type mapping OPU.
      proactive-DMp leaf ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)
      proactive-DMt leaf ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)
      profile-name leaf OTN capability profile name
      tcm-capable leaf only when tcm-capable=true, the following two are applicable (ie, proactive-DMt, tcm-direction
      tcm-direction-capability leaf Supported tcm direction capability on the ODUk associated with the port.
   otn-odu-mux-hierarchy-profile list OTN ODU mux hierarchy profile list
      mux-capability list low order ODU TCM direction capability
         ho-odu-payload-type leaf High order ODU payload type
         ho-odu-type leaf High order ODU type
         lo-odu-proactive-DMp leaf low order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)
         lo-odu-proactive-DMt leaf low order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)
         lo-odu-tcm-capable leaf only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction
         lo-odu-tcm-direction-capability leaf Supported tcm direction capability for low order ODU associated with the port.
         stage-number leaf stage number
         supported-lo-odu-type leaf-list Supported low order ODU type
      profile-name leaf OTN ODU mux hierarchy profile name
   otsigroup-capability-profile list OTSI group operational profile
      foic-type leaf-list FlexO interface type
      if-cap-type leaf Interface type/hierarchy/rate supported on this Otsi port. For example, if-n-otu4-n-odu4 and if-otucn-oducn
      otn-capability-profile-name leaf OTN capabilities
      otn-odu-mux-hierarchy-profile-name leaf OTN ODU Mux hierarchy capabilities
      otu-rate choice To specify the supported rate in the case of OTUCn or NxOTU4
         nxotu4 case supported-n-otu4
            supported-n-otu4 leaf Specify the number of N in the case of N x OTU4
         otucn case otucn-n-rate
            otucn-n-rate leaf Specify the N associated with OTUCn, e.g. N = 2,3,4 for 200G/300G/400G respectively
      profile-name leaf OTSI group profile name
   pending-sw container pending software information
      activation-date-time leaf activation date and time: The date load was activated
      sw-validation-timer leaf value of validation timer in hh-mm-ss
      sw-version leaf Gissue of the SW in this bank
   physical-link list physical-link-name is-physical user-description source destination lifecycle-state
      destination container circuit-pack-name port-name
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      is-physical leaf is the entity physical or logical
      lifecycle-state leaf Lifecycle State of the physical link. Whether it is planned, deployed, in maintenance, etc.
      physical-link-name leaf OID: /org-openroadm-device/physical-link/physical-link-name
      source container circuit-pack-name port-name
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      user-description leaf user provided description
   protection-grps container The list of configured protection groups on the device.
   protocols container Contains the supported protocols
      lifecycle-state leaf Lifecycle State of the protocols. Whether it is planned or deployed, etc.
   roadm-connections list connection-name opticalControlMode target-output-power source destination
      connection-name leaf OID: /org-openroadm-device/roadm-connections/connection-name
      destination container dst-if
         dst-if leaf OID: /org-openroadm-device/roadm-connections/destination/dst-if
      opticalControlMode leaf Whether connection is currently in power or gain/loss mode
      source container src-if
         src-if leaf OID: /org-openroadm-device/roadm-connections/source/src-if
      target-output-power leaf The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.
   shared-risk-group list max-add-drop-ports current-provisioned-add-drop-ports srg-number lifecycle-state wavelength-duplication circuit-packs mc-capability-profile-name
      circuit-packs list list for Cards associated with an add/drop group and srg
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         index leaf OID: /org-openroadm-device/shared-risk-group/circuit-packs/index
      current-provisioned-add-drop-ports leaf The number of ports currently provisioned for a given srg.
      lifecycle-state leaf Lifecycle State of shared-risk-group. Whether it is planned, deployed, in maintenance, etc.
      max-add-drop-ports leaf The max number of ports available for a given srg
      mc-capability-profile-name leaf-list Media channel capabilities
      srg-number leaf Srg number should be greater than zero and not greater than max-srgs
      wavelength-duplication leaf Whether the SRG can handle duplicate wavelengths and if so to what extent.
   shelves list shelf-name shelf-type rack shelf-position lifecycle-state administrative-state vendor model serial-id type product-code manufacture-date clei hardware-version operational-state equipment-state is-physical is-passive faceplate-label user-description due-date slots
      administrative-state leaf Admin State of the shelf
      clei leaf CLEI for this physical resource
      due-date leaf due date for the shelf.
      equipment-state leaf equipment state for the shelf, used to track the lifecycle state.
      faceplate-label leaf label on the faceplace silk screening
      hardware-version leaf The version of the hardware.
      is-passive leaf is the entity passive and not actively managed by the device; e.g., no physical inventory or plug-in notification supported
      is-physical leaf is the entity physical or logical
      lifecycle-state leaf Lifecycle State of shelf. Whether it is planned, deployed, in maintenance, etc.
      manufacture-date leaf Manufacture date of physical resource
      model leaf Physical resource model information.
      operational-state leaf Operational state of the physical resource
      product-code leaf Product Code for this physical resource
      rack leaf Reflect the shelf physical location data including floor, aisle, bay values.
      serial-id leaf Product Code for this physical resource
      shelf-name leaf Unique identifier for this shelf within a device
      shelf-position leaf Reflect the shelf vertical position within an equipment bay.
      shelf-type leaf The shelf type: describe the shelf with a unique string.
      slots list List of slots on this shelf. To be populated by NE during retrieval.
         label leaf Faceplate label
         provisioned-circuit-pack leaf The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov
         slot-name leaf The name of this slot.
         slot-status leaf OID: /org-openroadm-device/shelves/slots/slot-status
      type leaf The specific type of this physical resource - ie the type of shelf, type of circuit-pack, etc.
      user-description leaf user provided description
      vendor leaf Vendor of the equipment
   split-lambda-profile list OTN capability profile
      logical-port container Logical port container
         circuit-pack-name leaf The circuit pack supporting the logical port
         port-name leaf Port name for logical-port
      otsi list OTSI list for split lambda
         circuit-pack-name leaf OTSI circuit pack name
         optical-operational-mode leaf-list Optical operational mode leaf list
         otsi-rate leaf OTSI rate
         port-name leaf OTSI port name
      otsigroup-capability-profile-name leaf-list OTSI group capability mode
      profile-name leaf Split lambda profile name
   users container Stores a list of users
      user list The list of local users configured on this device.
         group leaf The group to which the user is associated to.
         name leaf The user name string identifying this entry.
         password leaf The password for this entry.
   xponder list xpdr-number xpdr-type lifecycle-state recolor xpdr-port
      lifecycle-state leaf Lifecycle State of xponder. Whether it is planned, deployed, in maintenance, etc.
      recolor leaf Indication if recolor is supported
      xpdr-number leaf OID: /org-openroadm-device/xponder/xpdr-number
      xpdr-port list Network Ports with in a Xponder
         circuit-pack-name leaf Circuit-Pack identifier. Unique within the context of a device.
         eqpt-srg-id leaf Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id
         index leaf OID: /org-openroadm-device/xponder/xpdr-port/index
         port-name leaf Port identifier. Unique within the context of a circuit-pack.
      xpdr-type leaf Identifier for xponder-type e.g Transponder, Muxponder

RPC Methods

RPC Abstract
create-tech-info Collects all log data for debugging and place it in a location accessible via ftp/sftp. This model assumes ASYNC operation, i.e. the command will return after the device accepts the command, A create-tech-info-notification will be send out later for the r...
disable-automatic-shutoff input output
get-connection-port-trail input output
led-control This command is used to allow user to find an entity on the NE, The specified entity will have LED blinking. The equipmentLedOn alarm will be raised and cleared for the indication
set-current-datetime Set the info/current-datetime leaf to the specified value.
start-scan input output

Notifications

Notification Abstract
change-notification The Notification that a resource has been added, modified or removed. This notification can be triggered by changes in configuration and operational data. It shall contain the changed field pointed by the xpath. Typically it is not intended for frequently...
create-tech-info-notification This Notification is sent when the create-tech-info is complete or failed.
otdr-scan-result This Notification is sent when the otdr-scan-result is complete or failed.