netconfcentral logo

org-openroadm-resource@2020-05-29



  module org-openroadm-resource {

    yang-version 1;

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

    prefix org-openroadm-resource;

    import org-openroadm-interfaces {
      prefix org-openroadm-interfaces;
      revision-date "2019-11-29";
    }
    import org-openroadm-otn-common-types {
      prefix
        org-openroadm-otn-common-types;
      revision-date "2020-03-27";
    }
    import org-openroadm-common-optical-channel-types {
      prefix
        org-openroadm-common-optical-channel-types;
      revision-date "2020-05-29";
    }
    import org-openroadm-resource-types {
      prefix org-openroadm-resource-types;
      revision-date "2019-11-29";
    }

    organization "Open ROADM MSA";

    contact "OpenROADM.org";

    description
      "YANG definitions of resources.

 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";

    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-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 "2016-10-14" {
      description "Version 1.2";
    }


    grouping eth-attributes {
      leaf speed {
        type uint32;
        description
          "Set speed of the interface, unit mbps.
This is for ETH facility. ";
      }
    }  // grouping eth-attributes

    grouping mc-ttp-attributes {
      description
        "Media channel termination point. Models bandwidth allocation in physical media. Network media channels may be provisioned in the spectrum characterized by the frequency limits.";
      leaf min-freq {
        type org-openroadm-common-optical-channel-types:frequency-THz;
        description
          "Minimum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
      }

      leaf max-freq {
        type org-openroadm-common-optical-channel-types:frequency-THz;
        description
          "Maximum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
      }
    }  // grouping mc-ttp-attributes

    grouping nmc-ctp-attributes {
      description
        "Network Media Channel attributes";
      leaf frequency {
        type org-openroadm-common-optical-channel-types:frequency-THz;
        description
          "Center Frequency in THz.  This is not constrained by mc-capabilities.  It must fit (when combined with width) inside any containing media channel.";
      }

      leaf width {
        type org-openroadm-common-optical-channel-types:frequency-GHz;
        description
          "Frequency width in GHz.  This is not constrained by mc-capabilities.  It must fit (when combined with frequency) inside any containing media channel.";
      }
    }  // grouping nmc-ctp-attributes

    grouping och-attributes {
      description
        "Optical Channel attributes";
      leaf rate {
        type identityref {
          base org-openroadm-common-optical-channel-types:och-rate-identity;
        }
        description "rate";
      }

      leaf frequency {
        type org-openroadm-common-optical-channel-types:frequency-THz;
        description
          "Center Frequency in THz.";
      }

      leaf width {
        type org-openroadm-common-optical-channel-types:frequency-GHz;
        config false;
        description
          "Frequency width in GHz.";
      }

      leaf modulation-format {
        type org-openroadm-common-optical-channel-types:modulation-format;
        description "Modulation format";
      }
    }  // grouping och-attributes

    grouping odu-attributes {
      description "ODU attributes";
      leaf rate {
        type identityref {
          base org-openroadm-otn-common-types:odu-rate-identity;
        }
        description
          "rate identity of the ODU. 'identityref' is used
to allow to extend for future higher rates";
      }

      container parent-odu-allocation {
        description "parent odu allocation";
        leaf trib-port-number {
          type uint16 {
            range "1 .. 80";
          }
          description
            "Assigned tributary port number in parent OPU";
        }

        leaf-list trib-slots {
          type uint16 {
            range "1 .. 80";
          }
          min-elements 1;
          max-elements 80;
          description
            "Assigned trib slots occupied in parent OPU MSI";
        }
      }  // container parent-odu-allocation
    }  // grouping odu-attributes

    grouping otu-attributes {
      description "OTU attributes";
      leaf rate {
        type identityref {
          base org-openroadm-otn-common-types:otu-rate-identity;
        }
        description
          "rate identity of the OTU. 'identityref' is used
to allow to extend for future higher rates";
      }
    }  // grouping otu-attributes

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

      container ethernet {
        when "../type = 'ethernetCsmacd'";
        description "Ethernet Interfaces";
        uses eth-attributes;
      }  // container ethernet

      container mc-ttp {
        when
          "../type = 'mediaChannelTrailTerminationPoint'";
        description
          "Media Channel Trail Termination Point (MC-TTP)";
        uses mc-ttp-attributes;
      }  // container mc-ttp

      container nmc-ctp {
        when
          "../type = 'networkMediaChannelConnectionTerminationPoint'";
        description
          "Network Media Channel Connection Termination Point (NMC-CTP)";
        uses nmc-ctp-attributes;
      }  // container nmc-ctp

      container och {
        when "../type = 'opticalChannel'";
        description
          "Optical Channel (OCh):
Models the optical channel interfaces for an Optical White Box.";
        uses och-attributes;
      }  // container och

      container odu {
        when "../type = 'otnOdu'";
        presence
          "Attribute Nodes for Optical Data Unit (ODU)";
        description
          "Optical Channel Data Unit (ODU)";
        uses odu-attributes;
      }  // container odu

      container otu {
        when "../type = 'otnOtu'";
        description
          "Optical Channel Transport Unit (OTU)";
        uses otu-attributes;
      }  // container otu
    }  // grouping resource-reporting

    grouping resource {
      description
        "This resource identifier is intended to provide a generic identifier
for any resource that can be used without specific knowledge of
the resource.";
      container device {
        description
          "Device of the resource, used only when the system using this
model report on more than one device. ";
        uses org-openroadm-resource-types:device-id;
      }  // container device

      container resource {
        choice resource {
          case circuit-pack {
            uses org-openroadm-resource-types:circuit-pack-name;
          }  // case circuit-pack
          container port {
            uses org-openroadm-resource-types:port-name;
          }  // container port

          case connection {
            uses org-openroadm-resource-types:connection-name {
              refine connection-name {
                mandatory true;
              }
            }
          }  // case connection

          case physical-link {
            uses org-openroadm-resource-types:physical-link-name;
          }  // case physical-link

          case internal-link {
            uses org-openroadm-resource-types:internal-link-name;
          }  // case internal-link

          case shelf {
            uses org-openroadm-resource-types:shelf-name;
          }  // case shelf

          case srg {
            uses org-openroadm-resource-types:srg-number {
              refine srg-number {
                mandatory true;
              }
            }
          }  // case srg

          case degree {
            uses org-openroadm-resource-types:degree-number {
              refine degree-number {
                mandatory true;
              }
            }
          }  // case degree

          case service {
            uses org-openroadm-resource-types:service-name;
          }  // case service

          case interface {
            uses org-openroadm-resource-types:interface-name;
          }  // case interface

          case odu-sncp-pg {
            uses org-openroadm-resource-types:odu-sncp-pg-name;
          }  // case odu-sncp-pg

          case other {
            uses org-openroadm-resource-types:other-resource-id;
          }  // case other

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

          case line-amplifier {
            uses org-openroadm-resource-types:amp-number;
          }  // case line-amplifier

          case xponder {
            uses org-openroadm-resource-types:xpdr-number;
          }  // case xponder

          case versioned-service {
            uses org-openroadm-resource-types:versioned-service-name;
          }  // case versioned-service

          case temp-service {
            uses org-openroadm-resource-types:temp-service-name;
          }  // case temp-service
        }  // choice resource
      }  // container resource

      container resourceType {
        uses org-openroadm-resource-types:resource-type;
      }  // container resourceType
    }  // grouping resource
  }  // module org-openroadm-resource