Add WG4 yangs published 2023-03 (v11)
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-transceiver@2022-12-05.yang
diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang
new file mode 100644 (file)
index 0000000..8928fac
--- /dev/null
@@ -0,0 +1,592 @@
+module o-ran-transceiver {
+  yang-version 1.1;
+  namespace "urn:o-ran:transceiver:1.0";
+  prefix "o-ran-transceiver";
+
+  import o-ran-interfaces {
+    prefix "o-ran-int";
+  }
+
+  import ietf-interfaces {
+    prefix "if";
+  }
+
+  organization "O-RAN Alliance";
+
+  contact
+    "www.o-ran.org";
+
+  description
+    "This module defines the operational state data for SFP transceivers used in
+    an O-RAN Radio Unit.
+
+    Copyright 2019 the O-RAN Alliance.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '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 SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.
+
+    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 above disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the above disclaimer in the documentation
+    and/or other materials provided with the distribution.
+    * Neither the Members of the O-RAN Alliance nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.";
+
+  revision "2022-12-05" {
+    description
+      "version 11.0.0
+
+      1) enable more than one interface to be accessible through a transceiver";
+
+    reference "ORAN-WG4.M.0-v11.00";
+  }
+
+
+  revision "2022-08-15" {
+    description
+      "version 10.0.0
+
+      1) introduced new SFP compliance codes and updated references";
+
+    reference "ORAN-WG4.M.0-v10.00";
+  }
+
+  revision "2021-12-01" {
+    description
+      "version 2.1.0
+
+      1) typographical corrections in descriptions
+      2) clarifying vendor name follows SFF 8472";
+
+    reference "ORAN-WG4.M.0-v02.00";
+  }
+
+
+  revision "2019-07-03" {
+    description
+      "version 2.0.0
+
+      1) introduction of reporting for QSFP.
+      2) backward compatible changes to introduce groupings.";
+
+    reference "ORAN-WG4.M.0-v02.00";
+  }
+
+  revision "2019-02-04" {
+    description
+      "version 1.0.0
+
+      1) imported model from xRAN
+      2) changed namespace and reference from xran to o-ran";
+
+    reference "ORAN-WG4.M.0-v01.00";
+  }
+
+
+  // Groupings
+
+  grouping transceiver-group {
+    description "a transceiver grouping";
+    list port-transceiver-data {
+      key "interface-name port-number";
+      description
+      "Data recovered from port transceivers.
+      A single entry in the list is created per transceiver.";
+      leaf interface-name {
+        type leafref {
+          path "/if:interfaces/if:interface/if:name";
+        }
+        description
+        "Name of an interface accessible through the transceiver.
+
+        If operating with a QSFP, then the interface corresponds
+        to an interface accessible through the lane/channel 1 of the QSFP.
+
+        If more than one interface is accessible through the transceiver
+        or the lane/channel 1 of the QSFP, then O-RU arbitrarily chooses
+        the referenced interface instance.";
+      }
+
+      leaf port-number {
+        type leafref {
+          path "/if:interfaces/if:interface[if:name = current()/../interface-name]" + "/o-ran-int:port-reference/o-ran-int:port-number";
+        }
+        description
+        "A number which identifies a port. In case of SFP/SFP+
+        port, port number value is 0 to N-1 where N is number of ports
+        in the device. Numbers 0 to N-1 are assigned to ports in order
+        following order of labels on the device (labels for ports are
+        not necessarily numbers starting from zero)";
+      }
+
+      leaf-list interface-names {
+        type leafref {
+          path "/if:interfaces/if:interface/if:name";
+        }
+        description
+        "Names of all interfaces accessible through the transceiver.
+
+        If operating with a QSFP, then the interfaces correspond
+        to all interfaces accessible through the lane/channel 1 of the QSFP.
+
+        O-RU provides the values only if more than one interface is
+        accessible through the transceiver or the lane/channel 1 of the QSFP.";
+      }
+
+      leaf name {
+        type string {
+          length "1..255";
+        }
+        description
+          "A name that is unique across the O-RU that identifies a transceiver instance.
+          This name may be used in fault management to refer to a fault source
+          or affected object";
+      }
+
+      leaf present {
+        type boolean;
+        config false;
+        mandatory true;
+        description
+          "Indicates if pluggable transceiver module is present.";
+      }
+
+      leaf vendor-id {
+        type string {
+          length 1..16;
+        }
+        config false;
+        description
+          "Name of the transceiver vendor Full name of transceiver vendor,
+          that contains ASCII characters, left-aligned with
+          any padding on the right with ASCII spaces (20h), or ASCII nul
+          (00h) removed, and ASCII less-than (3Ch) replaced with ASCII
+          open-brace (7Bh) and ASCII more-than (3Eh) replaced with ASCII
+          close-brace (7Dh).
+
+          Optional node included when the NETCONF Server has determined
+          the vendor ID. When used, the content of this schema node
+          follows the definition of Vendor name field in SFF-8472.";
+      }
+
+      leaf vendor-part {
+        type string {
+          length 1..16;
+        }
+        config false;
+        description
+          "Transceiver vendors part number, that contains ASCII characters,
+          left-aligned with any padding on the right with ASCII spaces
+          (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
+          replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
+          replaced with ASCII close-brace (7Dh).
+
+          Optional node included when the NETCONF Server has determined
+          the vendor part number. When used, the content of this schema node
+          follows the definition of Vendor PN field in SFF-8472.";
+      }
+
+      leaf vendor-rev {
+        type string {
+          length 1..2;
+        }
+        config false;
+        description
+          "Transceiver vendors revision number. 2-octet field that
+          contains ASCII characters.
+
+          Optional node included when the NETCONF Server has determined
+          the vendor revision number. When used, the content of this schema
+          node follows the definition of Vendor Rev field in SFF-8472.";
+      }
+
+      leaf serial-no {
+        type string {
+          length 1..16;
+        }
+        config false;
+        description
+          "Transceiver serial number encoded using ASCII characters,
+          left-aligned with any padding on the right with ASCII spaces
+          (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
+          replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
+          replaced with ASCII close-brace (7Dh).
+
+          Optional node included when the NETCONF Server has determined
+          the serial number.";
+      }
+
+      leaf SFF8472-compliance-code {
+        type enumeration {
+          enum diagnostics-undefined {
+            description "undefined compliance code";
+          }
+          enum rev9.3-diagnostics {
+            description "diagnostics published 08-01-02";
+          }
+          enum rev9.5-diagnostics{
+            description "diagnostics published 06-01-04";
+          }
+          enum rev10.2-diagnostics{
+            description "diagnostics published 06-01-07";
+          }
+          enum rev11.0-diagnostics{
+            description "diagnostics published 05-21-10";
+          }
+          enum rev11.3-diagnostics{
+            description "diagnostics published 06-11-13";
+          }
+          enum rev11.4-diagnostics{
+            description "diagnostics published 07-24-14";
+          }
+          enum rev12.0-diagnostics{
+            status deprecated;
+            description
+              "diagnostics published 08-28-14
+               Note: Deprecated as it does not exists in SFF-8472 v12.4";
+          }
+          enum rev10.4-diagnostics{
+            description "diagnostics published 30-01-09";
+          }
+          enum rev12.3-diagnostics{
+            description "diagnostics published 29-07-18";
+          }
+          enum rev12.4-diagnostics{
+            description "diagnostics published 31-03-21";
+          }
+        }
+        config false;
+        description
+          "Indication of which feature set(s) are
+          implemented in the transceiver from Byte 94 of address A0h
+          https://members.snia.org/document/dl/25916 v12.4
+
+          Optional node included when the NETCONF Server has determined
+          the compliance code.";
+
+        reference "https://members.snia.org/document/dl/25916";
+      }
+
+       leaf connector-type {
+        type enumeration {
+          enum unknown {
+            description "encoded as 00h in Table 4-3 of SFF-8024";
+          }
+          enum subscrber-connector {
+            description "encoded as 01h in Table 4-3 of SFF-8024";
+          }
+          enum fiber-jack {
+            description "encoded as 06h in Table 4-3 of SFF-8024";
+          }
+          enum lucent-connector {
+            description "encoded as 07h in Table 4-3 of SFF-8024";
+          }
+          enum mt-rj {
+            description "encoded as 08h in Table 4-3 of SFF-8024";
+          }
+          enum multiple-optical {
+            description "encoded as 09h in Table 4-3 of SFF-8024";
+          }
+          enum sg {
+            description "encoded as 0Ah in Table 4-3 of SFF-8024";
+          }
+          enum optical-pigtail {
+            description "encoded as 0Bh in Table 4-3 of SFF-8024";
+          }
+          enum multi-fiber-parralel-optic-1x12 {
+            description "encoded as 0Ch in Table 4-3 of SFF-8024";
+          }
+          enum multi-fiber-parralel-optic-2x16 {
+            description "encoded as 0Dh in Table 4-3 of SFF-8024";
+          }
+          enum hssdc_2{
+            description "encoded as 20h in Table 4-3 of SFF-8024";
+          }
+          enum copper-pigtail{
+            description "encoded as 21h in Table 4-3 of SFF-8024";
+          }
+          enum rj45{
+            description "encoded as 22h in Table 4-3 of SFF-8024";
+          }
+          enum no-separable-connector{
+            description "encoded as 23h in Table 4-3 of SFF-8024";
+          }
+          enum mxc-2x16{
+            description "encoded as 24h in Table 4-3 of SFF-8024";
+          }
+        }
+        config false;
+        // TOCHECK: Remove any enumerations which are not applicable
+        description
+          "Connector-type indicates the external optical or electrical cable
+          connector provided as the media interface as defined in the connector
+          types derived from table 4-3 in SFF-8024.
+
+          Optional node included when the NETCONF Server has determined
+          the connector type.";
+        reference "https://ta.snia.org/higherlogic/ws/public/document?document_id=944";
+      }
+
+      leaf identifier {
+        type enumeration {
+          enum unknown {
+            description "encoded as 00h in Table 4-1 of SFF-8024";
+          }
+          enum gbic {
+            description "encoded as 01h in Table 4-1 of SFF-8024";
+          }
+          enum soldered {
+            description "encoded as 02h in Table 4-1 of SFF-8024";
+          }
+          enum sfp {
+            description "encoded as 03h in Table 4-1 of SFF-8024";
+          }
+          enum xbi {
+            description "encoded as 04h in Table 4-1 of SFF-8024";
+          }
+          enum xenpack {
+            description "encoded as 05h in Table 4-1 of SFF-8024";
+          }
+          enum xfp {
+            description "encoded as 06h in Table 4-1 of SFF-8024";
+          }
+          enum xff {
+            description "encoded as 07h in Table 4-1 of SFF-8024";
+          }
+          enum xfp-e {
+            description "encoded as 08h in Table 4-1 of SFF-8024";
+          }
+          enum xpak {
+            description "encoded as 09h in Table 4-1 of SFF-8024";
+          }
+          enum x2 {
+            description "encoded as 0Ah in Table 4-1 of SFF-8024";
+          }
+          enum dwdm-sfp {
+            description "encoded as 0Bh in Table 4-1 of SFF-8024";
+          }
+          enum qsfp {
+            description "encoded as 0Ch in Table 4-1 of SFF-8024";
+          }
+          enum qsfp+ {
+            description "encoded as 0Dh in Table 4-1 of SFF-8024";
+          }
+        }
+        config false;
+        description
+          "Connector identifier as defined in the identifier
+          types derived from table 4-1 in SFF-8024.
+
+          Optional node included when the NETCONF Server has determined
+          the identifier type.";
+        reference "https://members.snia.org/document/dl/26423";
+      }
+
+      leaf nominal-bitrate {
+        type uint32;
+        config false;
+        description
+          "Nominal bitrate in Mb/s (10^6 bits per second).
+          If needed actual value is rounded to the nearest integer.
+
+          Optional node included when the NETCONF Server has determined
+          the nominal bit rate.";
+      }
+
+      leaf low-bitrate-margin {
+        type uint8;
+        config false;
+        description
+          "Minimum supported bitrate as percentage of nominal bitrate
+          below nominal bitrate.
+
+          Optional node included when the NETCONF Server has determined
+          the low bit rate margin";
+      }
+
+      leaf high-bitrate-margin {
+        type uint8;
+        config false;
+        description
+          "Maximum supported bitrate as percentage of nominal bitrate
+          above nominal bitrate.
+
+          Optional node included when the NETCONF Server has determined
+          the high bitrate margin.";
+      }
+
+      leaf rx-power-type {
+        type enumeration {
+          enum oma {
+            description "oma = optical modulation amplitude";
+          }
+          enum avp{
+            description "avp = average power";
+          }
+        }
+        config false;
+        description
+          "Received power measurement type
+          oma = optical modulation amplitude
+          avp = average power
+
+          Optional node included when the NETCONF Server has determined
+          the rx power type.";
+      }
+
+      leaf rx-power {
+        type decimal64{
+          fraction-digits 4;
+        }
+        config false;
+        description
+          "Measured RX input power in mW.
+
+          Optional node included when the NETCONF Server has determined
+          the measured RX power.
+
+          If operating with QSFP, this power corresponds to that of
+          Lane/Channel 1.";
+      }
+
+      leaf tx-power {
+        type decimal64{
+          fraction-digits 4;
+        }
+        config false;
+        description
+          "Measured coupled TX output power in mW.
+
+          Optional node included when the NETCONF Server has determined
+          the measured coupled TX power.";
+      }
+
+      leaf tx-bias-current {
+        type decimal64{
+          fraction-digits 4;
+        }
+        config false;
+        description
+          "Measured transmitter laser bias current in mA.
+
+          Optional node included when the NETCONF Server has determined
+          the tx bias current.
+
+          If operating with QSFP, this bias current corresponds to that of
+          Lane/Channel 1.";
+      }
+
+      leaf voltage {
+        type decimal64{
+          fraction-digits 4;
+        }
+        config false;
+        description
+          "Internally measured supply voltage in mV.
+
+          Optional node included when the NETCONF Server has determined
+          the internally measured voltage.";
+      }
+
+      leaf temperature {
+        type decimal64 {
+          fraction-digits 4;
+        }
+        config false;
+        description
+          "Internally measured module temperature in degrees Celsius.
+
+          Optional node included when the NETCONF Server has determined
+          the temperature.";
+      }
+
+      list additional-multi-lane-reporting {
+        when "(../identifier ='qsfp')or(../identifier ='qsfp+')";
+        key lane;
+        config false;
+        description
+          "Additional reporting according to SFF8436 which specifies real time
+          channel monitoring for each transmit and receive channel and includes
+          optical input power and Tx bias current. ";
+
+        leaf lane {
+          type uint8 {
+            range "2..4";
+          }
+          description
+            "the specific lane/channel associated with the report parameters";
+        }
+        leaf-list interface-names {
+          type leafref {
+            path "/if:interfaces/if:interface/if:name";
+          }
+          description
+          "Names of all interfaces accessible through a particular lane/channel.";
+        }
+        leaf rx-power {
+          type decimal64{
+            fraction-digits 4;
+          }
+          config false;
+          description
+            "Measured RX input power in mW.
+
+            Optional node included when the NETCONF Server has determined
+            the measured RX power for a particular lane/channel
+            - see tabel 7-10 of SFF-8636.";
+        }
+        leaf tx-bias-current {
+          type decimal64{
+            fraction-digits 4;
+          }
+          config false;
+          description
+            "Measured transmitter laser bias current in mA.
+
+            Optional node included when the NETCONF Server has determined
+            the tx bias current for a particular lane/channel
+            - see tabel 7-10 of SFF-8636.";
+        }
+        leaf tx-power {
+          type decimal64{
+            fraction-digits 4;
+          }
+          config false;
+          description
+            "Measured coupled TX output power in mW.
+
+            Optional node included when the NETCONF Server has determined
+            the measured coupled TX power or a particular lane/channel
+            - see tabel 7010 of SFF-8636.";
+        }
+      }
+    }
+
+  }
+
+  // Top Level Container
+
+  container port-transceivers {
+    description
+      "Container for Port transceiver information.
+      Leaf nodes providing  parameters status and diagnostic
+      information for pluggable transceiver module (like SFP,
+      SFP+, SFP28)";
+
+    uses transceiver-group;
+  }
+}