-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 "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 {
- list port-transceiver-data {
- key "interface-name port-number";
- description "data recovered from port transceivers";
- leaf interface-name {
- type leafref {
- path "/if:interfaces/if:interface/if:name";
- }
- description "Name of interface";
- }
- 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 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 transciever 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.";
- }
-
- 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.";
- }
-
- 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";
- }
-
- 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{
- description "diagnostics published 08-28-14";
- }
- }
- 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
-
- 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";
- }
-
- 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 identifer
- 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 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
- "Receieved 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 Celcius.
-
- Optional node included when the NETCONF Server has determined
- the temperature.";
- }
-
- list additional-multi-lane-reporting {
- when "(../identifier ='qsfp')or(../identifier ='qsfp+')";
- 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";
- }
- description
- "the specific lane/channel associated with the report parameters";
- }
- 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;
- }
-}