Merge "Update YANG models for OpenFronthaul M-Plane."
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / o-ran-transceiver.yang
@@ -46,6 +46,36 @@ module o-ran-transceiver {
     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
@@ -70,15 +100,27 @@ module o-ran-transceiver {
   // Groupings
 
   grouping transceiver-group {
+    description "a transceiver grouping";
     list port-transceiver-data {
       key "interface-name port-number";
-      description "data recovered from port transceivers";
+      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 interface";
+        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";
@@ -91,6 +133,20 @@ module o-ran-transceiver {
         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";
@@ -115,7 +171,7 @@ module o-ran-transceiver {
         }
         config false;
         description
-          "Name of the transciever vendor Full name of transceiver vendor,
+          "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
@@ -123,7 +179,8 @@ module o-ran-transceiver {
           close-brace (7Dh).
 
           Optional node included when the NETCONF Server has determined
-          the vendor ID.";
+          the vendor ID. When used, the content of this schema node
+          follows the definition of Vendor name field in SFF-8472.";
       }
 
       leaf vendor-part {
@@ -139,7 +196,8 @@ module o-ran-transceiver {
           replaced with ASCII close-brace (7Dh).
 
           Optional node included when the NETCONF Server has determined
-          the vendor part number.";
+          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 {
@@ -152,7 +210,8 @@ module o-ran-transceiver {
           contains ASCII characters.
 
           Optional node included when the NETCONF Server has determined
-          the vendor revision number";
+          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 {
@@ -195,19 +254,31 @@ module o-ran-transceiver {
             description "diagnostics published 07-24-14";
           }
           enum rev12.0-diagnostics{
-            description "diagnostics published 08-28-14";
+            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://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF
+          https://members.snia.org/document/dl/25916 v12.4
 
           Optional node included when the NETCONF Server has determined
           the compliance code.";
 
-        reference "https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF";
+        reference "https://members.snia.org/document/dl/25916";
       }
 
        leaf connector-type {
@@ -317,7 +388,7 @@ module o-ran-transceiver {
         }
         config false;
         description
-          "Connector identifier as defined in the identifer
+          "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
@@ -330,7 +401,7 @@ module o-ran-transceiver {
         config false;
         description
           "Nominal bitrate in Mb/s (10^6 bits per second).
-          If needed actual value is rounded to nearest integer.
+          If needed actual value is rounded to the nearest integer.
 
           Optional node included when the NETCONF Server has determined
           the nominal bit rate.";
@@ -369,7 +440,7 @@ module o-ran-transceiver {
         }
         config false;
         description
-          "Receieved power measurement type
+          "Received power measurement type
           oma = optical modulation amplitude
           avp = average power
 
@@ -437,7 +508,7 @@ module o-ran-transceiver {
         }
         config false;
         description
-          "Internally measured module temperature in degrees Celcius.
+          "Internally measured module temperature in degrees Celsius.
 
           Optional node included when the NETCONF Server has determined
           the temperature.";
@@ -445,12 +516,13 @@ module o-ran-transceiver {
 
       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. ";
-        key lane;
+
         leaf lane {
           type uint8 {
             range "2..4";
@@ -458,6 +530,13 @@ module o-ran-transceiver {
           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;