bbf-hardware-transceivers

This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on hardware management as ...

  • Version: 2023-12-15

    bbf-hardware-transceivers@2023-12-15


    
      module bbf-hardware-transceivers {
    
        yang-version 1.1;
    
        namespace
          "urn:bbf:yang:bbf-hardware-transceivers";
    
        prefix bbf-hw-xcvr;
    
        import bbf-yang-types {
          prefix bbf-yang;
        }
        import ietf-hardware {
          prefix hw;
        }
        import bbf-hardware-types {
          prefix bbf-hwt;
        }
    
        organization
          "Broadband Forum <https://www.broadband-forum.org>
         Common YANG Work Area";
    
        contact
          "Comments or questions about this Broadband Forum YANG module
         should be directed to <mailto:help@broadband-forum.org>.
    
         Editor:      Nick Hancock, Adtran
    
         Editor:      Ludwig Pauwels, Nokia
    
         PS Leader:   Joey Boyd, Adtran
    
         WA Director: Joey Boyd, Adtran
    
         WA Director: Sven Ooghe, Nokia";
    
        description
          "This module contains a collection of YANG definitions for
         supporting the Broadband Forum requirements on hardware
         management as applicable to access network equipment.
         As such, this module is specific to access network equipment
         (e.g., BBF-specified Access Nodes and FTTdp DPUs).
    
         Specifically, this module augments the ietf-hardware model with
         management of compact transceivers.
    
         Copyright (c) 2017-2023, Broadband Forum
    
         Redistribution and use in source and binary forms, with or
         without modification, are permitted provided that the following
         conditions are met:
    
         1. Redistributions of source code must retain the above copyright
            notice, this list of conditions and the following disclaimer.
    
         2. 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.
    
         3. Neither the name of the copyright holder 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 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.
    
         The above license is used as a license under copyright only.
         Please reference the Forum IPR Policy for patent licensing terms
         <https://www.broadband-forum.org/ipr-policy>.
    
         Any moral rights which are necessary to exercise under the above
         license grant are also deemed granted under this license.
    
         This version of this YANG module is part of TR-383a7; see
         the TR itself for full legal notices.";
    
        revision "2023-12-15" {
          description
            "Amendment 7.
           * Approval Date:    2023-12-15.
           * Publication Date: 2023-12-15.";
          reference
            "TR-383a7: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-7.pdf>";
    
        }
    
        revision "2023-03-07" {
          description
            "Amendment 6.
           * Approval Date:    2023-03-07.
           * Publication Date: 2023-03-07.";
          reference
            "TR-383a6: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-6.pdf>";
    
        }
    
        revision "2022-03-01" {
          description
            "Amendment 5.
           * Approval Date:    2022-03-01.
           * Publication Date: 2022-03-01.";
          reference
            "TR-383a5: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-5.pdf>";
    
        }
    
        revision "2021-06-02" {
          description
            "Amendment 4.
           * Approval Date:    2021-06-02.
           * Publication Date: 2021-06-02.";
          reference
            "TR-383a4: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-4.pdf>";
    
        }
    
        revision "2020-10-13" {
          description
            "Amendment 3.
           * Approval Date:    2020-10-13.
           * Publication Date: 2020-10-13.";
          reference
            "TR-383a3: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-3.pdf>";
    
        }
    
    
        feature vendor-eeprom {
          description
            "Indicates support for reporting the contents of the vendor-
           specific EEPROM data fields.";
          reference
            "SFF-8472 (Revision 12.4) Table 4-1 - Address A0h, Bytes 96-127;
            SFF-8436 (Revision 4.9) Table 29 - Page 00h, Bytes 224-255;
            INF-8077i (Revision 4.5) Table 46 - Page 01h, Bytes 224-255";
    
        }
    
        feature vendor-eeprom-string {
          if-feature vendor-eeprom;
          description
            "Indicates support for reporting the contents of the vendor-
           specific EEPROM data fields as a string.";
          reference
            "SFF-8472 (Revision 12.4) Table 4-1 - Address A0h, Bytes 96-127;
            SFF-8436 (Revision 4.9) Table 29 - Page 00h, Bytes 224-255;
            INF-8077i (Revision 4.5) Table 46 - Page 01h, Bytes 224-255";
    
        }
    
        feature vendor-eeprom-binary {
          if-feature vendor-eeprom;
          description
            "Indicates support for reporting the contents of the vendor-
           specific EEPROM data fields in binary format.";
          reference
            "SFF-8472 (Revision 12.4) Table 4-1 - Address A0h, Bytes 96-127;
            SFF-8436 (Revision 4.9) Table 29 - Page 00h, Bytes 224-255;
            INF-8077i (Revision 4.5) Table 46 - Page 01h, Bytes 224-255";
    
        }
    
        feature extended-information {
          description
            "Indicates whether reporting extended information data fields
           of the transceiver are supported.";
          reference
            "SFF-8472 (Revision 12.4) Section 10";
    
        }
    
        feature user-eeprom {
          if-feature extended-information;
          description
            "Indicates support for reporting the contents of the user-
           writable EEPROM data fields.";
          reference
            "SFF-8472 (Revision 12.4) Table 10-4 - Address A2h,
            Page 00h/01h, Bytes 128-247;
            SFF-8436 (Revision 4.9) Section 7.6.4 - Page 02h,
            Bytes 128-255;
            INF-8077i (Revision 4.5) Section 5.45 - Table 02h,
            Bytes 128-255";
    
        }
    
        feature user-eeprom-string {
          if-feature user-eeprom;
          description
            "Indicates support for reporting the contents of the user-
           writable EEPROM data fields as a string.";
          reference
            "SFF-8472 (Revision 12.4) Table 10-4 - Address A2h,
            Page 00h/01h, Bytes 128-247;
            SFF-8436 (Revision 4.9) Section 7.6.4 - Page 02h,
            Bytes 128-255;
            INF-8077i (Revision 4.5) Section 5.45 - Table 02h,
            Bytes 128-255";
    
        }
    
        feature user-eeprom-binary {
          if-feature user-eeprom;
          description
            "Indicates support for reporting the contents of the user-
           writable EEPROM data fields in binary format.";
          reference
            "SFF-8472 (Revision 12.4) Table 10-4 - Address A2h,
            Page 00h/01h, Bytes 128-247;
            SFF-8436 (Revision 4.9) Section 7.6.4 - Page 02h,
            Bytes 128-255;
            INF-8077i (Revision 4.5) Section 5.45 - Table 02h,
            Bytes 128-255";
    
        }
    
        feature optical-power-and-sensitivity-in-dbm {
          description
            "Indicates support for reporting optical power and sensitivity
           diagnostic data in dBm.";
        }
    
        identity transceiver-alarm-warning {
          description
            "Base identity for the basic alarm and warning flags of the
           transceiver.
    
           This identity is abstract and must not be used for a
           transceiver alarm or warning flag.";
        }
    
        identity temperature-high {
          base transceiver-alarm-warning;
          description
            "The internal temperature has exceeded the high level
           threshold.";
        }
    
        identity temperature-low {
          base transceiver-alarm-warning;
          description
            "The internal temperature has dropped below the low level
           threshold.";
        }
    
        identity supply-voltage-high {
          base transceiver-alarm-warning;
          description
            "The internal supply voltage has exceeded the high level
           threshold.";
        }
    
        identity supply-voltage-low {
          base transceiver-alarm-warning;
          description
            "The internal supply voltage has dropped below the low level
           threshold.";
        }
    
        identity link-alarm-warning {
          description
            "Base identity for the physical links of alarm and warning flags
           of the transceiver.
    
           This identity is abstract and must not be used for a
           transceiver link alarm or warning flag.";
        }
    
        identity tx-bias-high {
          base link-alarm-warning;
          description
            "The transmit (TX) bias current has exceeded the high level
           threshold.";
        }
    
        identity tx-bias-low {
          base link-alarm-warning;
          description
            "The transmit (TX) bias current has dropped below the low level
           threshold.";
        }
    
        identity tx-power-high {
          base link-alarm-warning;
          description
            "The transmit (TX) output power has exceeded the high level
           threshold.";
        }
    
        identity tx-power-low {
          base link-alarm-warning;
          description
            "The transmit (TX) output power has dropped below the low
           level threshold.";
        }
    
        identity rx-power-high {
          base link-alarm-warning;
          description
            "The receive (RX) input power has exceeded the high level
           threshold.";
        }
    
        identity rx-power-low {
          base link-alarm-warning;
          description
            "The receive (RX) input power has dropped below the low level
           threshold.";
        }
    
        identity laser-temperature-high {
          base link-alarm-warning;
          description
            "The laser temperature has exceeded the high level threshold.";
        }
    
        identity laser-temperature-low {
          base link-alarm-warning;
          description
            "The laser temperature has dropped below the low level
           threshold.";
        }
    
        identity tec-current-high {
          base link-alarm-warning;
          description
            "The Thermoelectric Cooler (TEC) current has exceeded the high
           level threshold.";
        }
    
        identity tec-current-low {
          base link-alarm-warning;
          description
            "The Thermoelectric Cooler (TEC) current has dropped below the
           low level threshold.";
        }
    
        identity physical-device {
          description
            "Identifies the physical device.
    
           This identity is abstract and must not be used to represent a
           physical device.";
          reference
            "SFF-8472 (Revision 12.4) Table 5-1 - Address A0h, Byte 0";
    
        }
    
        identity unknown-physical-device {
          base physical-device;
          description "Unknown or unspecified.";
          reference
            "SFF-8472 (Revision 12.4) Table 5-1 - Address A0h, Byte 0,
            Value 00h;
            SFF-8024 (Revision 4.8a) Table 4-1 - Value 00h";
    
        }
    
        identity gbic {
          base physical-device;
          description "GBIC.";
          reference
            "SFF-8472 (Revision 12.4) Table 5-1 - Address A0h, Byte 0,
            Value 01h;
            SFF-8024 (Revision 4.8a) Table 4-1 - Value 01h";
    
        }
    
        identity sff {
          base physical-device;
          description
            "Module/connector soldered to a motherboard (using SFF-8472).";
          reference
            "SFF-8472 (Revision 12.4) Table 5-1 - Address A0h, Byte 0,
            Value 02h;
            SFF-8024 (Revision 4.8a) Table 4-1 - Value 02h";
    
        }
    
        identity sfp {
          base physical-device;
          description "SFP/SFP+/SFP28.";
          reference
            "SFF-8472 (Revision 12.4) Table 5-1 - Address A0h, Byte 0,
            Value 03h;
            SFF-8024 (Revision 4.8a) Table 4-1 - Value 03h";
    
        }
    
        identity xbi-300-pin {
          base physical-device;
          description "300 pin XBI.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 04h";
    
        }
    
        identity xenpak {
          base physical-device;
          description "XENPAK.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 05h";
    
        }
    
        identity xfp {
          base physical-device;
          description "XFP.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 06h";
    
        }
    
        identity xff {
          base physical-device;
          description "XFF.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 07h";
    
        }
    
        identity xfp-e {
          base physical-device;
          description "XFP-E.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 08h";
    
        }
    
        identity xpak {
          base physical-device;
          description "XPAK.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 09h";
    
        }
    
        identity x2 {
          base physical-device;
          description "X2.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 0Ah";
    
        }
    
        identity dwdm-sfp {
          base physical-device;
          description
            "DWDM-SFP/SFP+ (not using SFF-8472).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 0Bh";
    
        }
    
        identity qsfp {
          base physical-device;
          description "QSFP (INF-8438).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 0Ch";
    
        }
    
        identity qsfp-plus-or-later {
          base physical-device;
          description
            "QSFP+ or later (SFF-8436, SFF-8635, SFF-8665, SFF-8685 et
           al).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 0Dh";
    
        }
    
        identity cxp-or-later {
          base physical-device;
          description "CXP or later.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 0Eh";
    
        }
    
        identity shielded-mini-multilane-hd-4x {
          base physical-device;
          description
            "Shielded Mini Multilane HD 4x.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 0Fh";
    
        }
    
        identity shielded-mini-multilane-hd-8x {
          base physical-device;
          description
            "Shielded Mini Multilane HD 8x.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 10h";
    
        }
    
        identity qsfp28-or-later {
          base physical-device;
          description
            "QSFP28 or later (SFF-8665).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 11h";
    
        }
    
        identity cxp2-or-later {
          base physical-device;
          description
            "CXP2 (aka CXP28) or later.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 12h";
    
        }
    
        identity cdfp-style1-style2 {
          base physical-device;
          description "CDFP (Style 1/Style 2).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 13h";
    
        }
    
        identity shielded-mini-multilane-hd-4x-fanout-cable {
          base physical-device;
          description
            "Shielded Mini Multilane HD 4x Fanout Cable.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 14h";
    
        }
    
        identity shielded-mini-multilane-hd-8x-fanout-cable {
          base physical-device;
          description
            "Shielded Mini Multilane HD 8x Fanout Cable.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 15h";
    
        }
    
        identity cdfp-style3 {
          base physical-device;
          description "CDFP (Style 3).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 16h";
    
        }
    
        identity micro-qsfp {
          base physical-device;
          description "Micro QSFP.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 17h";
    
        }
    
        identity qsfp-dd {
          base physical-device;
          description
            "QSFP-DD Double Density 8X Pluggable Transceiver (INF-8628).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Value 18h";
    
        }
    
        identity vendor-specific {
          base physical-device;
          description
            "Vendor-specific physical device. A vendor may derive specific
           identities from this one.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-1 - Values 80h-FFh";
    
        }
    
        identity connector-type {
          description
            "Identifies the external optical or electrical cable connector
           provided as the media interface.
    
           This identity is abstract and must not be used to represent a
           connector type.";
          reference
            "SFF-8472 (Revision 12.4) Section 5.3 - Address A0h, Byte 2";
    
        }
    
        identity unknown-connector-type {
          base connector-type;
          description "Unknown or unspecified.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 00h";
    
        }
    
        identity subscriber-connector {
          base connector-type;
          description
            "SC (Subscriber Connector).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 01h";
    
        }
    
        identity fibre-channel-style-1-copper {
          base connector-type;
          description
            "Fibre Channel Style 1 copper connector.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 02h";
    
        }
    
        identity fibre-channel-style-2-copper {
          base connector-type;
          description
            "Fibre Channel Style 2 copper connector.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 03h";
    
        }
    
        identity bnc-tnc {
          base connector-type;
          description
            "BNC/TNC (Bayonet/Threaded Neill-Concelman).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 04h";
    
        }
    
        identity fibre-channel-coax-headers {
          base connector-type;
          description
            "Fibre Channel coax headers.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 05h";
    
        }
    
        identity fibre-jack {
          base connector-type;
          description "Fibre Jack.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 06h";
    
        }
    
        identity lucent-connector {
          base connector-type;
          description "LC (Lucent Connector).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 07h";
    
        }
    
        identity mt-rj {
          base connector-type;
          description
            "MT-RJ (Mechanical Transfer - Registered Jack).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 08h";
    
        }
    
        identity mu {
          base connector-type;
          description "MU (Multiple Optical).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 09h";
    
        }
    
        identity sg {
          base connector-type;
          description "SG.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 0Ah";
    
        }
    
        identity optical-pigtail {
          base connector-type;
          description "Optical Pigtail.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 0Bh";
    
        }
    
        identity mpo-1x12 {
          base connector-type;
          description
            "MPO 1x12 (Multifiber Parallel Optic).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 0Ch";
    
        }
    
        identity mpo-2x16 {
          base connector-type;
          description
            "MPO 2x16 (Multifiber Parallel Optic).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 0Dh";
    
        }
    
        identity hssdc-ii {
          base connector-type;
          description
            "HSSDC II (High Speed Serial Data Connector).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 20h";
    
        }
    
        identity copper-pigtail {
          base connector-type;
          description "Copper Pigtail.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 21h";
    
        }
    
        identity rj45 {
          base connector-type;
          description "RF45 (Registered Jack).";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 22h";
    
        }
    
        identity no-separable-connector {
          base connector-type;
          description "No separable connector.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 23h";
    
        }
    
        identity mxc-2x16 {
          base connector-type;
          description "MXC 2x16.";
          reference
            "SFF-8024 (Revision 4.8a) Table 4-3 - Value 24h";
    
        }
    
        typedef power-milliwatts {
          type decimal64 {
            fraction-digits 4;
          }
          units "milliwatts";
          description
            "Defines the power detected at a transceiver in milliwatts.";
        }
    
        typedef power-dbm {
          type union {
            type enumeration {
              enum "undetermined" {
                value 0;
                description
                  "A value could not be determined or the transceiver
                 reports a power value of zero.";
              }
            }
            type decimal64 {
              fraction-digits 4;
              range "-40..20";
            }
          }
          units "dBm";
          description
            "Defines the power detected at a transceiver in dBm.";
        }
    
        grouping link-parameters {
          description
            "Management data nodes related to the physical link of the
           transceiver.";
          choice wavelength-or-specification-compliance {
            description
              "For optical variants, report the nominal transmitter output
             wavelength. For passive and active cable variants, report the
             specification compliance.";
            reference
              "SFF-8472 (Revision 12.4) Section 8.1 - Address A0h,
              Bytes 60-61";
    
            leaf unspecified {
              type empty;
              description
                "Neither the laser wavelength or cable specification
                 compliance is specified.";
            }
            leaf wavelength {
              type uint32;
              units "nanometers";
              description
                "For optical variants, this denotes the nominal
                 transmitter output wavelength at room temperature.";
            }
            leaf high-resolution-wavelength {
              type decimal64 {
                fraction-digits 2;
              }
              units "nanometers";
              description
                "For optical variants, reports the nominal
                 transmitter output wavelength at room temperature.
    
                 This data node is intended to be used for transceiver
                 links able to report wavelengths with subnanometer
                 granularity.
    
                 However, it may also be used with transceiver links that
                 cannot report wavelengths with subnanometer granularity,
                 in which case the decimal digits must be set to '.00'.";
              reference
                "SFF-8636 (Revision 2.10a) Section 6.3.19
                INF-8077i (Revision 4.5) Section 5.33";
    
            }
    
            case passive-cable-specification-compliance {
              leaf passive-cable-specification-compliance {
                type enumeration {
                  enum "fc-pi-4-appendix-h" {
                    value 0;
                    description
                      "Compliant to FC-PI-4 Appendix H.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-1 - Address A0h,
                      Byte 60, bit 1";
    
                  }
                  enum "sff-8431-appendix-e" {
                    value 1;
                    description
                      "Compliant to SFF-8431 Appendix E.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-1 - Address A0h,
                      Byte 60, bit 0";
    
                  }
                }
                status deprecated;
                description
                  "For passive cable variants, this denotes the passive
                 cable specification compliance.";
                reference
                  "SFF-8472 (Revision 12.4) Table 8-1";
    
              }
    
              leaf-list passive-cable-spec-compliance {
                type enumeration {
                  enum "fc-pi-4-appendix-h" {
                    value 0;
                    description
                      "Compliant to FC-PI-4 Appendix H.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-1 - Address A0h,
                      Byte 60, bit 1";
    
                  }
                  enum "sff-8431-appendix-e" {
                    value 1;
                    description
                      "Compliant to SFF-8431 Appendix E.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-1 - Address A0h,
                      Byte 60, bit 0";
    
                  }
                }
                description
                  "For passive cable variants, this denotes the passive
                 cable specification compliance.";
                reference
                  "SFF-8472 (Revision 12.4) Table 8-1";
    
              }
            }  // case passive-cable-specification-compliance
    
            case active-cable-specification-compliance {
              leaf active-cable-specification-compliance {
                type enumeration {
                  enum "fc-pi-4-limiting" {
                    value 0;
                    description
                      "Compliant to FC-PI-4 Limiting.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 3";
    
                  }
                  enum "sff-8431-limiting" {
                    value 1;
                    description
                      "Compliant to SFF-8431 Limiting.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 2";
    
                  }
                  enum "fc-pi-4-appendix-h" {
                    value 2;
                    description
                      "Compliant to FC-PI-4 Appendix H.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 1";
    
                  }
                  enum "sff-8431-appendix-e" {
                    value 3;
                    description
                      "Compliant to SFF-8431 Appendix E.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 0";
    
                  }
                }
                status deprecated;
                description
                  "For active cable variants, this denotes the active cable
                 specification compliance.";
                reference
                  "SFF-8472 (Revision 12.4) Table 8-2";
    
              }
    
              leaf-list active-cable-spec-compliance {
                type enumeration {
                  enum "fc-pi-4-limiting" {
                    value 0;
                    description
                      "Compliant to FC-PI-4 Limiting.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 3";
    
                  }
                  enum "sff-8431-limiting" {
                    value 1;
                    description
                      "Compliant to SFF-8431 Limiting.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 2";
    
                  }
                  enum "fc-pi-4-appendix-h" {
                    value 2;
                    description
                      "Compliant to FC-PI-4 Appendix H.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 1";
    
                  }
                  enum "sff-8431-appendix-e" {
                    value 3;
                    description
                      "Compliant to SFF-8431 Appendix E.";
                    reference
                      "SFF-8472 (Revision 12.4) Table 8-2 - Address A0h,
                      Byte 60, bit 0";
    
                  }
                }
                description
                  "For active cable variants, this denotes the active cable
                 specification compliance.";
                reference
                  "SFF-8472 (Revision 12.4) Table 8-2";
    
              }
            }  // case active-cable-specification-compliance
          }  // choice wavelength-or-specification-compliance
        }  // grouping link-parameters
    
        grouping transceiver-diagnostic-parameters {
          description
            "Management data nodes related to retrieving diagnostic data
           from the transceiver.";
          leaf temperature {
            type int32;
            units "millidegrees Celsius";
            config false;
            mandatory true;
            description
              "Internally measured transceiver temperature. Temperature
             accuracy is vendor-specific but must be better than +/- 3
             degrees Celsius over specified operating temperature and
             voltage.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
              Bytes 96-97";
    
          }
    
          leaf supply-voltage {
            type uint16;
            units "0.1 millivolts";
            config false;
            mandatory true;
            description
              "Internally measured transceiver supply voltage. Practical
             considerations to be defined by transceiver manufacturer will
             tend to limit the actual bounds of the supply voltage
             measurement. Accuracy is vendor-specific but must be better
             than +/- 3% of the manufacturer's nominal value over
             specified operating temperature and voltage. Note that in
             some transceivers, transmitter supply voltage and receiver
             supply voltage are isolated. In that case, only one supply
             is monitored. Refer to the device specification for more
             detail.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
              Bytes 98-99";
    
          }
        }  // grouping transceiver-diagnostic-parameters
    
        grouping link-diagnostic-parameters {
          description
            "Management data nodes related to retrieving diagnostic physical
           link data from the transceiver.";
          leaf tx-bias {
            type uint32;
            units "microamperes";
            config false;
            mandatory true;
            description
              "Measured transmit (TX) bias current in microamperes (uA).
             Accuracy is vendor-specific but must be better than +/- 10%
             of the manufacturer's nominal value over specified operating
             temperature and voltage.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
              Bytes 100-101";
    
          }
    
          choice power {
            status deprecated;
            description
              "Measured receive (RX) and transmit (TX) power.";
            case power-in-mwatt {
              status deprecated;
              leaf tx-power {
                type uint16;
                units "0.1 milliwatts";
                status deprecated;
                description
                  "Measured transmit (TX) output power in tenths of a
                 milliwatt (mW). Data is assumed to be based on
                 measurement of laser monitor photodiode current. It is
                 factory calibrated to absolute units using the most
                 representative fiber output type. Accuracy is vendor-
                 specific but must be better than +/- 3dB over specified
                 temperature and voltage. Data is not valid when the
                 transmitter is disabled.";
                reference
                  "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
                  Bytes 102-103";
    
              }
    
              leaf rx-power {
                type uint16;
                units "0.1 milliwatts";
                status deprecated;
                description
                  "Measured received (RX) optical power in tenths of a mW.
                 Absolute accuracy is dependent upon the exact optical
                 wavelength. For the vendor specified wavelength, accuracy
                 shall be better than +/- 3dB over specified temperature
                 and voltage. This accuracy shall be maintained for input
                 power levels up to the lesser of maximum transmitted or
                 maximum received optical power per the appropriate
                 standard. It shall be maintained down to the minimum
                 transmitted power minus cable plant loss (insertion loss
                 or passive loss) per the appropriate standard. Absolute
                 accuracy beyond this minimum required received input
                 optical power range is vendor-specific.";
                reference
                  "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
                  Bytes 104-105";
    
              }
            }  // case power-in-mwatt
          }  // choice power
    
          container power-milliwatts {
            presence
              "Indicates that monitoring of received power and
                    transmit power is reported in milliwatts.";
            config false;
            description
              "Data nodes reporting the power levels measured at the
             transceiver link in milliwatts.";
            leaf transmit {
              type power-milliwatts;
              description
                "Measured transmit (TX) output power in milliwatts. Data is
               assumed to be based on measurement of laser monitor
               photodiode current. It is factory calibrated to absolute
               units using the most representative fiber output type.
               Accuracy is vendor-specific but must be better than
               +/- 3dB over specified temperature and voltage. Data is
               not valid when the transmitter is disabled.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
                Bytes 102-103";
    
            }
    
            leaf receive {
              type power-milliwatts;
              description
                "Measured received (RX) optical power in milliwatts.
               Absolute accuracy is dependent upon the exact optical
               wavelength. For the vendor specified wavelength, accuracy
               shall be better than +/- 3dB over specified temperature and
               voltage. This accuracy shall be maintained for input
               power levels up to the lesser of maximum transmitted or
               maximum received optical power per the appropriate
               standard. It shall be maintained down to the minimum
               transmitted power minus cable plant loss (insertion loss
               or passive loss) per the appropriate standard. Absolute
               accuracy beyond this minimum required received input
               optical power range is vendor-specific.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
                Bytes 104-105";
    
            }
          }  // container power-milliwatts
    
          container power-dbm {
            if-feature bbf-hw-xcvr:optical-power-and-sensitivity-in-dbm;
            presence
              "Indicates that monitoring of received power and transmit
             power is reported in dBm.";
            config false;
            description
              "Data nodes reporting the power levels measured at the
             transceiver link in dBm.";
            leaf transmit {
              type power-dbm;
              description
                "Measured transmitted optical power in dBm. Data is assumed
               to be based on measurement of laser monitor photodiode
               current. It is factory calibrated to absolute units using
               the most representative fiber output type. Accuracy is
               vendor-specific but must be better than +/- 3dB over
               specified temperature and voltage. Data is not valid when
               the transmitter is disabled.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
                Bytes 102-103";
    
            }
    
            leaf receive {
              type power-dbm;
              description
                "Measured received optical power in dBm. Absolute accuracy
               is dependent upon the exact optical wavelength. For the
               vendor specified wavelength, accuracy shall be better than
               +/- 3dB over specified temperature and voltage. This
               accuracy shall be maintained for input power levels up to
               the lesser of maximum transmitted or maximum received
               optical power per the appropriate standard. It shall be
               maintained down to the minimum transmitted power minus
               cable plant loss (insertion loss or passive loss) per the
               appropriate standard. Absolute accuracy beyond this minimum
               required received input optical power range is vendor-
               specific.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
                Bytes 104-105";
    
            }
          }  // container power-dbm
    
          leaf laser-temperature {
            type int32;
            units "millidegrees Celsius";
            config false;
            description
              "Measured optional laser temperature. The relative and
             absolute accuracy are vendor-specific but relative laser
             temperature accuracy must be better than +/- 0.2 degrees
             Celsius. [Relative temperature accuracy refers to the
             accuracy of the reported temperature changes relative to the
             actual laser temperature changes.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
              Bytes 106-107";
    
          }
    
          leaf tec-current {
            type int16;
            units "0.1 milliamperes";
            config false;
            description
              "Measured Thermoelectric Cooler (TEC) current. The format is
             signed two's complement with the LSB equal to 0.1 milliampere
             (mA). Thus a range from -3276.8 to +3276.7 mA may be reported
             with a resolution of 0.1 mA. Reported TEC current is a
             positive number for cooling and a negative number for
             heating. The accuracy of the TEC current monitor is vendor-
             specific but must be better than +/- 15% of the maximum TEC
             current as stored in the TEC current high alarm threshold.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-16 - Address A2h,
              Bytes 108-109";
    
          }
        }  // grouping link-diagnostic-parameters
    
        grouping transceiver-alarm-diagnostic-parameters {
          description
            "Management data nodes related to retrieving diagnostic basic
           alarm data from the transceiver.";
          leaf-list alarm-flag {
            type identityref {
              base transceiver-alarm-warning;
            }
            config false;
            description
              "Alarm flags associated with transceiver temperature and
             supply voltage as well as reserved locations for future
             flags. Alarm flags indicate conditions likely to be
             associated with an in-operational link and cause for
             immediate action.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-7 - Address A2h,
              Bytes 112-117;
              SFF-8436 (Revision 4.9) Table 25 - Page A0h,
              Addresses 100-106";
    
          }
    
          leaf-list warning-flag {
            type identityref {
              base transceiver-alarm-warning;
            }
            config false;
            description
              "Warning flags associated with transceiver temperature and
             supply voltage as well as reserved locations for future
             flags. Warning flags indicate conditions outside the normally
             guaranteed bounds but not necessarily causes of immediate
             link failures. Certain warning flags may also be defined by
             the manufacturer as end-of-life indicators (such as for
             higher than expected bias currents in a constant power
             control loop).";
            reference
              "SFF-8472 (Revision 12.4) Table 9-17 - Address A2h,
              Bytes 112-117;
              SFF-8436 (Revision 4.9) Table 25 - Page A0h,
              Addresses 100-106";
    
          }
        }  // grouping transceiver-alarm-diagnostic-parameters
    
        grouping link-alarm-diagnostic-parameters {
          description
            "Management data nodes related to retrieving diagnostic physical
           link alarm data from the transceiver.";
          leaf-list alarm-flag {
            type identityref {
              base link-alarm-warning;
            }
            config false;
            description
              "Alarm flags associated with the transceiver transmit bias
             current, transmit output power and received optical power as
             well as reserved locations for future flags. Alarm flags
             indicate conditions likely to be associated with an
             in-operational link and cause for immediate action.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-7 - Address A2h,
              Bytes 112-117;
              SFF-8436 (Revision 4.9) Table 25 - Page A0h,
              Addresses 100-106";
    
          }
    
          leaf-list warning-flag {
            type identityref {
              base link-alarm-warning;
            }
            config false;
            description
              "Warning flags associated with the transceiver transmit bias
             current, transmit output power and received optical power as
             well as reserved locations for future flags. Warning flags
             indicate conditions outside the normally guaranteed bounds
             but not necessarily causes of immediate link failures.
             Certain warning flags may also be defined by the manufacturer
             as end-of-life indicators (such as for higher than expected
             bias currents in a constant power control loop).";
            reference
              "SFF-8472 (Revision 12.4) Table 9-7 - Address A2h,
              Bytes 112-117;
              SFF-8436 (Revision 4.9) Table 25 - Page A0h,
              Addresses 100-106";
    
          }
        }  // grouping link-alarm-diagnostic-parameters
    
        grouping transceiver-compliance-codes {
          description
            "Nodes which allow reporting of the transceivers compliance.";
          container compliance-codes {
            status deprecated;
            description
              "Compliance codes which collectively represent the electronic
             or optical interfaces that are supported by the
             transceiver.";
            reference
              "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
              Bytes 3-10, 36, 62";
    
            leaf ten-gigabit-ethernet {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "10g-base-er" {
                  value 1;
                  description "10G Base-ER.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 7";
    
                }
                enum "10g-base-lrm" {
                  value 2;
                  description "10G Base-LRM.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 6";
    
                }
                enum "10g-base-lr" {
                  value 3;
                  description "10G Base-LR.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 5";
    
                }
                enum "10g-base-sr" {
                  value 4;
                  description "10G Base-SR.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 4";
    
                }
              }
              config false;
              status deprecated;
              description
                "10G Ethernet Compliance Codes.";
            }
    
            leaf infiniband {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "1x-sx" {
                  value 1;
                  description "1X SX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 3";
    
                }
                enum "1x-lx" {
                  value 2;
                  description "1X LX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 2";
    
                }
                enum "1x-copper-active" {
                  value 3;
                  description
                    "1X Copper Active.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 1";
    
                }
                enum "1x-copper-passive" {
                  value 4;
                  description
                    "1X Copper Passive.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 0";
    
                }
              }
              config false;
              status deprecated;
              description
                "Infiniband Compliance Codes.";
            }
    
            leaf escon {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "escon-mmf" {
                  value 1;
                  description
                    "ESCON MMF, 1310nm LED.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 7";
    
                }
                enum "escon-smf" {
                  value 2;
                  description
                    "ESCON SMF, 1310nm Laser.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 6";
    
                }
              }
              config false;
              status deprecated;
              description
                "ESCON Compliance Codes.";
            }
    
            leaf sonet {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "oc-192-short-reach" {
                  value 1;
                  description
                    "OC-192, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 5";
    
                }
                enum
                  "sonet-reach-specifier-bit1" {
                  value 2;
                  description
                    "SONET reach specifier bit 1.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 4";
    
                }
                enum
                  "sonet-reach-specifier-bit2" {
                  value 3;
                  description
                    "SONET reach specifier bit 2.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 3";
    
                }
                enum "oc-48-long-reach" {
                  value 4;
                  description
                    "OC-48, long reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 2";
    
                }
                enum "oc-48-intermediate-reach" {
                  value 5;
                  description
                    "OC-48, intermediate reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 1";
    
                }
                enum "oc-48-short-reach" {
                  value 6;
                  description
                    "OC-48, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 0";
    
                }
                enum
                  "oc-12-single-mode-long-reach" {
                  value 7;
                  description
                    "OC-12, single mode, long reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 6";
    
                }
                enum
                  "oc-12-single-mode-intermediate-reach" {
                  value 8;
                  description
                    "OC-12, single mode, intermediate reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 5";
    
                }
                enum "oc-12-short-reach" {
                  value 9;
                  description
                    "OC-12, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 4";
    
                }
                enum
                  "oc-3-single-mode-long-reach" {
                  value 10;
                  description
                    "OC-3, single mode, long reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 2";
    
                }
                enum
                  "oc-3-single-mode-intermediate-reach" {
                  value 11;
                  description
                    "OC-3, single mode, intermediate reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 1";
    
                }
                enum "oc-3-short-reach" {
                  value 12;
                  description
                    "OC-3, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 0";
    
                }
              }
              config false;
              status deprecated;
              description
                "SONET Compliance Codes.";
            }
    
            leaf ethernet {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "base-px" {
                  value 1;
                  description "BASE-PX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 7";
    
                }
                enum "base-bx10" {
                  value 2;
                  description "BASE-BX10.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 6";
    
                }
                enum "100base-fx" {
                  value 3;
                  description "100BASE-FX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 5";
    
                }
                enum "100base-lx-or-lx-10" {
                  value 4;
                  description
                    "100BASE-LX/LX-10.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 4";
    
                }
                enum "1000base-t" {
                  value 5;
                  description "1000BASE-T.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 3";
    
                }
                enum "1000base-cx" {
                  value 6;
                  description "1000BASE-CX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 2";
    
                }
                enum "1000base-lx" {
                  value 7;
                  description "1000BASE-LX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 1";
    
                }
                enum "1000base-sx" {
                  value 8;
                  description "1000BASE-SX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 0";
    
                }
              }
              config false;
              status deprecated;
              description
                "Ethernet Compliance Codes.";
            }
    
            leaf fibre-channel-link-length {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "very-long-distance" {
                  value 1;
                  description
                    "Very long distance (V).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 7";
    
                }
                enum "short-distance" {
                  value 2;
                  description
                    "Short distance (S).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 6";
    
                }
                enum "intermediate-distance" {
                  value 3;
                  description
                    "Intermediate distance (I).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 5";
    
                }
                enum "long-distance" {
                  value 4;
                  description
                    "Long distance (L).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 4";
    
                }
                enum "medium-distance" {
                  value 5;
                  description
                    "Medium distance (M).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 3";
    
                }
              }
              config false;
              status deprecated;
              description
                "Fibre channel link length.";
            }
    
            leaf fibre-channel-technology {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "shortwave-laser-linear" {
                  value 1;
                  description
                    "Shortwave laser, linear (SA).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 2";
    
                }
                enum "longwave-laser-lc" {
                  value 2;
                  description
                    "Longwave laser (LC).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 1";
    
                }
                enum
                  "electrical-inter-enclosure" {
                  value 3;
                  description
                    "Electrical inter-enclosure (EL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 0";
    
                }
                enum
                  "electrical-intra-enclosure" {
                  value 4;
                  description
                    "Electrical intra-enclosure (EL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 7";
    
                }
                enum
                  "shortwave-laser-without-ofc" {
                  value 5;
                  description
                    "Shortwave laser w/o OFC (SN).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 6";
    
                }
                enum "shortwave-laser-with-ofc" {
                  value 6;
                  description
                    "Shortwave laser with OFC (SL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 5";
    
                }
                enum "longwave-laser-ll" {
                  value 7;
                  description
                    "Longwave laser (LL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 4";
    
                }
              }
              config false;
              status deprecated;
              description
                "Fibre channel technology.";
            }
    
            leaf sfp-plus-cable-technology {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "active-cable" {
                  value 1;
                  description "Active Cable.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 3";
    
                }
                enum "passive-cable" {
                  value 2;
                  description "Passive Cable.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 2";
    
                }
              }
              config false;
              status deprecated;
              description
                "SFP+ cable technology.";
            }
    
            leaf fibre-channel-transmission-media {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "twin-axial-pair" {
                  value 1;
                  description
                    "Twin Axial Pair (TW).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 7";
    
                }
                enum "twin-twisted-pair" {
                  value 2;
                  description
                    "Twin Twisted Pair (TP).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 6";
    
                }
                enum "miniature-coax" {
                  value 3;
                  description
                    "Miniature Coax (MI).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 5";
    
                }
                enum "video-coax" {
                  value 4;
                  description "Video Coax (TV).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 4";
    
                }
                enum "multimode-62.5um" {
                  value 5;
                  description
                    "Multimode, 62.5um (M6).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 3";
    
                }
                enum "multimode-50um" {
                  value 6;
                  description
                    "Multimode, 50um (M5 or M5E).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 2";
    
                }
                enum "single-mode" {
                  value 7;
                  description
                    "Single Mode (SM).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 0";
    
                }
              }
              config false;
              status deprecated;
              description
                "Fibre channel transmission media.";
            }
    
            leaf fibre-channel-speed {
              type enumeration {
                enum "not-applicable" {
                  value 0;
                  description "Not applicable.";
                }
                enum "1200-mbytes-sec" {
                  value 1;
                  description "1200 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 7";
    
                }
                enum "800-mbytes-sec" {
                  value 2;
                  description "800 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 6";
    
                }
                enum "1000-mbytes-sec" {
                  value 3;
                  status deprecated;
                  description
                    "This enum was mistakenly defined to represent the value
                   1600 MBytes/sec and is now deprecated. A new enum,
                   '1600-mbytes-sec' has been defined and should be used
                   to represent 1600 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 5";
    
                }
                enum "400-mbytes-sec" {
                  value 4;
                  description "400 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 4";
    
                }
                enum "3200-mbytes-sec" {
                  value 5;
                  description "3200 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 3";
    
                }
                enum "200-mbytes-sec" {
                  value 6;
                  description "200 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 2";
    
                }
                enum "100-mbytes-sec" {
                  value 7;
                  description "100 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 0";
    
                }
                enum "1600-mbytes-sec" {
                  value 8;
                  description "1600 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 5";
    
                }
              }
              config false;
              status deprecated;
              description "Fibre channel speed.";
            }
          }  // container compliance-codes
    
          container codes {
            description
              "Compliance codes which collectively represent the electronic
             or optical interfaces that are supported by the
             transceiver.";
            reference
              "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
              Bytes 3-10, 36, 62";
    
            leaf-list ten-gigabit-ethernet {
              type enumeration {
                enum "10g-base-er" {
                  value 0;
                  description "10G Base-ER.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 7";
    
                }
                enum "10g-base-lrm" {
                  value 1;
                  description "10G Base-LRM.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 6";
    
                }
                enum "10g-base-lr" {
                  value 2;
                  description "10G Base-LR.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 5";
    
                }
                enum "10g-base-sr" {
                  value 3;
                  description "10G Base-SR.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 4";
    
                }
              }
              config false;
              description
                "10G Ethernet Compliance Codes.";
            }
    
            leaf-list infiniband {
              type enumeration {
                enum "1x-sx" {
                  value 0;
                  description "1X SX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 3";
    
                }
                enum "1x-lx" {
                  value 1;
                  description "1X LX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 2";
    
                }
                enum "1x-copper-active" {
                  value 2;
                  description
                    "1X Copper Active.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 1";
    
                }
                enum "1x-copper-passive" {
                  value 3;
                  description
                    "1X Copper Passive.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 3, bit 0";
    
                }
              }
              config false;
              description
                "InfiniBand (IB) Compliance Codes.";
            }
    
            leaf-list escon {
              type enumeration {
                enum "escon-mmf" {
                  value 0;
                  description
                    "ESCON MMF, 1310nm LED.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 7";
    
                }
                enum "escon-smf" {
                  value 1;
                  description
                    "ESCON SMF, 1310nm Laser.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 6";
    
                }
              }
              config false;
              description
                "ESCON Compliance Codes.";
            }
    
            leaf-list sonet {
              type enumeration {
                enum "oc-192-short-reach" {
                  value 0;
                  description
                    "OC-192, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 5";
    
                }
                enum
                  "sonet-reach-specifier-bit1" {
                  value 1;
                  description
                    "SONET reach specifier bit 1.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 4";
    
                }
                enum
                  "sonet-reach-specifier-bit2" {
                  value 2;
                  description
                    "SONET reach specifier bit 2.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 3";
    
                }
                enum "oc-48-long-reach" {
                  value 3;
                  description
                    "OC-48, long reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 2";
    
                }
                enum "oc-48-intermediate-reach" {
                  value 4;
                  description
                    "OC-48, intermediate reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 1";
    
                }
                enum "oc-48-short-reach" {
                  value 5;
                  description
                    "OC-48, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 4, bit 0";
    
                }
                enum
                  "oc-12-single-mode-long-reach" {
                  value 6;
                  description
                    "OC-12, single mode, long reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 6";
    
                }
                enum
                  "oc-12-single-mode-intermediate-reach" {
                  value 7;
                  description
                    "OC-12, single mode, intermediate reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 5";
    
                }
                enum "oc-12-short-reach" {
                  value 8;
                  description
                    "OC-12, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 4";
    
                }
                enum
                  "oc-3-single-mode-long-reach" {
                  value 9;
                  description
                    "OC-3, single mode, long reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 2";
    
                }
                enum
                  "oc-3-single-mode-intermediate-reach" {
                  value 10;
                  description
                    "OC-3, single mode, intermediate reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 1";
    
                }
                enum "oc-3-short-reach" {
                  value 11;
                  description
                    "OC-3, short reach.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 5, bit 0";
    
                }
              }
              config false;
              description
                "SONET Compliance Codes.";
            }
    
            leaf-list ethernet {
              type enumeration {
                enum "base-px" {
                  value 0;
                  description "BASE-PX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 7";
    
                }
                enum "base-bx10" {
                  value 1;
                  description "BASE-BX10.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 6";
    
                }
                enum "100base-fx" {
                  value 2;
                  description "100BASE-FX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 5";
    
                }
                enum "100base-lx-or-lx-10" {
                  value 3;
                  description
                    "100BASE-LX/LX-10.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 4";
    
                }
                enum "1000base-t" {
                  value 4;
                  description "1000BASE-T.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 3";
    
                }
                enum "1000base-cx" {
                  value 5;
                  description "1000BASE-CX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 2";
    
                }
                enum "1000base-lx" {
                  value 6;
                  description "1000BASE-LX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 1";
    
                }
                enum "1000base-sx" {
                  value 7;
                  description "1000BASE-SX.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 6, bit 0";
    
                }
              }
              config false;
              description
                "Ethernet Compliance Codes.";
            }
    
            leaf-list fibre-channel-link-length {
              type enumeration {
                enum "very-long-distance" {
                  value 0;
                  description
                    "Very long distance (V).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 7";
    
                }
                enum "short-distance" {
                  value 1;
                  description
                    "Short distance (S).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 6";
    
                }
                enum "intermediate-distance" {
                  value 2;
                  description
                    "Intermediate distance (I).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 5";
    
                }
                enum "long-distance" {
                  value 3;
                  description
                    "Long distance (L).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 4";
    
                }
                enum "medium-distance" {
                  value 4;
                  description
                    "Medium distance (M).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 3";
    
                }
              }
              config false;
              description
                "Fibre channel link length.";
            }
    
            leaf-list fibre-channel-technology {
              type enumeration {
                enum "shortwave-laser-linear" {
                  value 0;
                  description
                    "Shortwave laser, linear (SA).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 2";
    
                }
                enum "longwave-laser-lc" {
                  value 1;
                  description
                    "Longwave laser (LC).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 1";
    
                }
                enum
                  "electrical-inter-enclosure" {
                  value 2;
                  description
                    "Electrical inter-enclosure (EL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 7, bit 0";
    
                }
                enum
                  "electrical-intra-enclosure" {
                  value 3;
                  description
                    "Electrical intra-enclosure (EL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 7";
    
                }
                enum
                  "shortwave-laser-without-ofc" {
                  value 4;
                  description
                    "Shortwave laser w/o OFC (SN).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 6";
    
                }
                enum "shortwave-laser-with-ofc" {
                  value 5;
                  description
                    "Shortwave laser with OFC (SL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 5";
    
                }
                enum "longwave-laser-ll" {
                  value 6;
                  description
                    "Longwave laser (LL).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 4";
    
                }
              }
              config false;
              description
                "Fibre channel technology.";
            }
    
            leaf-list sfp-plus-cable-technology {
              type enumeration {
                enum "active-cable" {
                  value 0;
                  description "Active Cable.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 3";
    
                }
                enum "passive-cable" {
                  value 1;
                  description "Passive Cable.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 8, bit 2";
    
                }
              }
              config false;
              description
                "SFP+ cable technology.";
            }
    
            leaf-list fibre-channel-transmission-media {
              type enumeration {
                enum "twin-axial-pair" {
                  value 0;
                  description
                    "Twin Axial Pair (TW).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 7";
    
                }
                enum "twin-twisted-pair" {
                  value 1;
                  description
                    "Twin Twisted Pair (TP).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 6";
    
                }
                enum "miniature-coax" {
                  value 2;
                  description
                    "Miniature Coax (MI).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 5";
    
                }
                enum "video-coax" {
                  value 3;
                  description "Video Coax (TV).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 4";
    
                }
                enum "multimode-62.5um" {
                  value 4;
                  description
                    "Multimode, 62.5um (M6).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 3";
    
                }
                enum "multimode-50um" {
                  value 5;
                  description
                    "Multimode, 50um (M5 or M5E).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 2";
    
                }
                enum "single-mode" {
                  value 6;
                  description
                    "Single Mode (SM).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 9, bit 0";
    
                }
              }
              config false;
              description
                "Fibre channel transmission media.";
            }
    
            leaf-list fibre-channel-speed {
              type enumeration {
                enum "1200-mbytes-sec" {
                  value 0;
                  description "1200 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 7";
    
                }
                enum "800-mbytes-sec" {
                  value 1;
                  description "800 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 6";
    
                }
                enum "1600-mbytes-sec" {
                  value 2;
                  description "1600 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 5";
    
                }
                enum "400-mbytes-sec" {
                  value 3;
                  description "400 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 4";
    
                }
                enum "3200-mbytes-sec" {
                  value 4;
                  description "3200 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 3";
    
                }
                enum "200-mbytes-sec" {
                  value 5;
                  description "200 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 2";
    
                }
                enum "100-mbytes-sec" {
                  value 6;
                  description "100 MBytes/sec.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-3 - Address A0h,
                    Byte 10, bit 0";
    
                }
              }
              config false;
              description
                "Fibre channel speed (FCS).";
            }
          }  // container codes
        }  // grouping transceiver-compliance-codes
    
        grouping identifiers-and-codes {
          description
            "Identifiers and codes specific to a given transceiver.";
          container identifiers-and-codes {
            description
              "Identifiers and codes specific to a given transceiver.";
            reference
              "SFF-8472 (Revision 12.4) Section 5";
    
            leaf physical-device {
              type identityref {
                base physical-device;
              }
              config false;
              description
                "The identifier value specifies the physical device
               described by two-wire interface information.";
              reference
                "SFF-8472 (Revision 12.4) Table 5-1 - Address A0h, Byte 0";
    
            }
    
            leaf physical-device-extended-identifier {
              type enumeration {
                enum "not-specified" {
                  value 0;
                  description
                    "GBIC definition is not specified or the GBIC definition
                   is not compliant with a defined MOD_DEF.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 00h";
    
                }
                enum "mod-def1" {
                  value 1;
                  description
                    "GBIC is compliant with MOD_DEF 1.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 01h";
    
                }
                enum "mod-def2" {
                  value 2;
                  description
                    "GBIC is compliant with MOD_DEF 2.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 02h";
    
                }
                enum "mod-def3" {
                  value 3;
                  description
                    "GBIC is compliant with MOD_DEF 3.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 03h";
    
                }
                enum "two-wire-interface-id" {
                  value 4;
                  description
                    "GBIC/SFP function is defined by two-wire interface ID
                   only.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 04h";
    
                }
                enum "mod-def5" {
                  value 5;
                  description
                    "GBIC is compliant with MOD_DEF 5.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 05h";
    
                }
                enum "mod-def6" {
                  value 6;
                  description
                    "GBIC is compliant with MOD_DEF 6.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 06h";
    
                }
                enum "mod-def7" {
                  value 7;
                  description
                    "GBIC is compliant with MOD_DEF 7.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h,
                    Byte 1, Value 07h";
    
                }
              }
              config false;
              description
                "The extended identifier value provides additional
               information about the transceiver. The field should be set
               to 'two-wire-interface-id' for all SFP modules indicating
               two-wire interface ID module definition. In many cases, a
               GBIC elects to use MOD_DEF 4 to make additional information
               about the GBIC available, even though the GBIC is actually
               compliant with one of the six other MOD_DEF values defined
               for GBICs. The extended identifier allows the GBIC to
               explicitly specify such compliance without requiring the
               MOD_DEF value to be inferred from the other information
               provided.";
              reference
                "SFF-8472 (Revision 12.4) Table 5-2 - Address A0h, Byte 1";
    
            }
    
            leaf connector {
              type identityref {
                base connector-type;
              }
              config false;
              description
                "Indicates the external optical or electrical cable
               connector provided as the media interface.";
              reference
                "SFF-8472 (Revision 12.4) Section 5.3 - Address A0h,
                Byte 2";
    
            }
    
            uses transceiver-compliance-codes;
    
            leaf encoding {
              type enumeration {
                enum "unspecified" {
                  value 0;
                  description
                    "Unspecified encoding.";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 - Common Value 00h";
    
                }
                enum "8b-10b" {
                  value 1;
                  description
                    "8-bit words to 10-bit symbols (8B/10B).";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 - Common Value 01h";
    
                }
                enum "4b-5b" {
                  value 2;
                  description
                    "4-bits to 5-bits (4B/5B).";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 - Common Value 02h";
    
                }
                enum "nrz" {
                  value 3;
                  description
                    "Non-return-to-zero (NRZ).";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 - Common Value 03h";
    
                }
                enum "manchester" {
                  value 4;
                  description
                    "Manchester encoding.";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 -
                    SFF-8472 Value 04h, SFF-8436/8636 Value 00h";
    
                }
                enum "sonet-scrambled" {
                  value 5;
                  description "SONET scrambled.";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 -
                    SFF-8472 Value 05h, SFF-8436/8636 Value 04h";
    
                }
                enum "64b-66b" {
                  value 6;
                  description
                    "64-bit data to 66-bit line code (64B/66B).";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 -
                    SFF-8472 Value 06h, SFF-8436/8636 Value 05h";
    
                }
                enum "256b-257b" {
                  value 7;
                  description
                    "4 66 bit line code blocks to 257-bit block
                   (256B/257B).";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 - Common Value 07h";
    
                }
                enum "pam4" {
                  value 8;
                  description
                    "4-bit Pulse Amplitude Modulation (PAM4).";
                  reference
                    "SFF-8024 (Revision 4.8a) Table 4-2 - Common Value 08h";
    
                }
              }
              config false;
              description
                "The encoding value indicates the serial encoding mechanism
               that is the nominal design target of the particular
               transceiver. The value shall be contained in the two-wire
               interface data.";
              reference
                "SFF-8472 (Revision 12.4) Section 5.5 - Address A0h,
                Byte 11";
    
            }
    
            leaf nominal-bit-rate {
              type uint8;
              units "megabaud";
              config false;
              description
                "The nominal bit (signaling) rate (BR, nominal) is specified
               in units of megabaud (MBd). The bit rate includes those
               bits necessary to encode and delimit the signal as well as
               those bits carrying data information.
    
               For bit rates < 25.0 Gbps, the value will be reported in
               units of 100 MBd to the nearest 100 MBd.
    
               For bit rates >= 25.0 Gbps, the value will be reported in
               units of 250 MBd to the nearest 250 MBd.
    
               A value of 0 indicates that the bit rate is not specified
               and must be determined from the transceiver technology. The
               actual information transfer rate will depend on the
               encoding of the data, as defined by the encoding value.";
              reference
                "SFF-8472 (Revision 12.4) Table 5-6 - Address A0h, Byte 12;
                SFF-8472 (Revision 12.4) Section 8.4 - Address A0h,
                Byte 66";
    
            }
    
            leaf maximum-bit-rate {
              type bbf-yang:percent;
              config false;
              description
                "The upper bit rate limit above the nominal bit rate at
               which the transceiver will still meet its specifications.";
              reference
                "SFF-8472 (Revision 12.4) Section 8.4 - Address A0h,
                Byte 66";
    
            }
    
            leaf minimum-bit-rate {
              type bbf-yang:percent;
              config false;
              description
                "The lower bit rate limit below the nominal bit rate at
               which the transceiver will still meet its specifications.";
              reference
                "SFF-8472 (Revision 12.4) Section 8.5 - Address A0h,
                Byte 67";
    
            }
          }  // container identifiers-and-codes
        }  // grouping identifiers-and-codes
    
        grouping link-length {
          description
            "Nodes corresponding to link length.";
          container link-length {
            description
              "Link lengths for various modes of operation.";
            reference
              "SFF-8472 (Revision 12.4) Section 6";
    
            leaf length-single-mode-km {
              type uint8;
              units "kilometers";
              config false;
              description
                "This value specifies the link length that is supported by
               the transceiver while operating in compliance with the
               applicable standards using single mode fiber. The value is
               in units of kilometers. A value of 255 means that the
               transceiver supports a link length greater than 254
               kilometer (km). A value of zero means that the transceiver
               does not support single mode fiber or that the length
               information must be determined from the transceiver
               technology.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.1 - Address A0h,
                Byte 14";
    
            }
    
            leaf length-single-mode-100m {
              type uint8;
              units "100 meters";
              config false;
              description
                "This value specifies the link length that is supported by
               the transceiver while operating in compliance with the
               applicable standards using single mode fiber. The value is
               in units of 100 meters. A value of 255 means that the
               transceiver supports a link length greater than 25.4 km. A
               value of zero means that the transceiver does not support
               single mode fiber or that the length information must be
               determined from the transceiver technology.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.2 - Address A0h,
                Byte 15";
    
            }
    
            leaf length-50um-om2 {
              type uint8;
              units "10 meters";
              config false;
              description
                "This value specifies link length that is supported by the
               transceiver while operating in compliance with applicable
               standards using 50 micron multimode OM2 [500MHz*km at
               850nm] fiber. The value is in units of 10 meters. A value
               of 255 means that the transceiver supports a link length
               greater than 2.54 km. A value of zero means that the
               transceiver does not support 50 micron multimode fiber or
               that the length information must be determined from the
               transceiver technology.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.3 - Address A0h,
                Byte 16";
    
            }
    
            leaf length-62.5um-om1 {
              type uint8;
              units "10 meters";
              config false;
              description
                "This value specifies link length that is supported by the
               transceiver while operating in compliance with applicable
               standards using 62.5 micron multimode OM1 [200 MHz*km at
               850nm, 500 MHz*km at 1310nm] fiber. The value is in units
               of 10 meters. A value of 255 means that the transceiver
               supports a link length greater than 2.54 km. A value of
               zero means that the transceiver does not support 62.5
               micron multimode fiber or that the length information must
               determined from the transceiver technology. It is common
               for a multimode transceiver to support OM1, OM2 and OM3
               fiber.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.4 - Address A0h,
                Byte 17";
    
            }
    
            leaf length-62.5um-om2 {
              type uint8;
              units "10 meters";
              config false;
              status deprecated;
              description
                "This value specifies link length that is supported by the
               transceiver while operating in compliance with applicable
               standards using 62.5 micron multimode OM1 [200 MHz*km at
               850nm, 500 MHz*km at 1310nm] fiber. The value is in units
               of 10 meters. A value of 255 means that the transceiver
               supports a link length greater than 2.54 km. A value of
               zero means that the transceiver does not support 62.5
               micron multimode fiber or that the length information must
               determined from the transceiver technology. It is common
               for a multimode transceiver to support OM1, OM2 and OM3
               fiber.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.4 - Address A0h,
                Byte 17";
    
            }
    
            leaf length-50um-om4 {
              type uint8;
              units "10 meters";
              config false;
              description
                "This value specifies link length that is
               supported by the transceiver while operating in compliance
               with applicable standards using 50 micron multimode OM4
               [4700 MHz*km] fiber. The value is in units of 10 meters. A
               value of 255 means that the transceiver supports a link
               length greater than 2.54 km. A value of zero means that the
               transceiver does not support 50 micron multimode fiber or
               that the length information must be determined from the
               transceiver codes.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.5 - Address A0h,
                Byte 18";
    
            }
    
            leaf length-active-cable-or-copper {
              type uint8;
              units "meters";
              config false;
              description
                "This value specifies minimum link length supported by the
               transceiver while operating in compliance with applicable
               standards using copper cable. For active cable, this value
               represents actual length. The value is in units of 1 meter.
               A value of 255 means the transceiver supports a link length
               greater than 254 meters. A value of zero means the
               transceiver does not support copper or active cables or the
               length information must be determined from transceiver
               technology. Further information about cable design,
               equalization, and connectors is usually required to
               guarantee meeting a particular length requirement.";
              reference
                "SFF-8472 (Revision 12.4) Section 6.5 - Address A0h,
                Byte 18";
    
            }
    
            leaf length-50um-om3 {
              type uint8;
              units "10 meters";
              config false;
              description
                "This value specifies link length that is supported by the
               transceiver while operating in compliance with applicable
               standards using 50 micron multimode OM3 [2000 MHz*km]
               fiber. The value is in units of 10 meters. A value of 255
               means that the transceiver supports a link length greater
               than 2.54 km. A value of zero means that the transceiver
               does not support 50 micron multimode fiber or that the
               length information must be determined from the transceiver
               technology.";
              reference
                "SFF-8472 (Revision 12.4) Table 6-1 - Address A0h, Byte 19";
    
            }
          }  // container link-length
        }  // grouping link-length
    
        grouping vendor-fields {
          description
            "Vendor-specific transceiver data.";
          container vendor-fields {
            description
              "Transceiver information relative to the vendor. SFF-8472
             sections 7.1 to 7.4, 8.6 and 8.7 define this data. The
             following are already defined in the base ietf-hardware
             model for each component regardless of class.
    
             7.1 Vendor Name
             The vendor name is a 16 character field that contains ASCII
             characters, left-aligned and padded on the right with ASCII
             spaces (20h). The vendor name shall be the full name of the
             corporation, a commonly accepted abbreviation of the name of
             the corporation, the SCSI company code for the corporation,
             or the stock exchange code for the corporation. At least one
             of the vendor name or the vendor OUI fields shall contain
             valid data.
    
             This is reported via 'mfg-name'.
    
             7.4 Vendor Rev
             The vendor revision number (vendor rev) is a 4-byte field
             that contains ASCII characters, left-aligned and padded on
             the right with ASCII spaces (20h), defining the Vendor's
             product revision number. An empty string indicates that the
             vendor revision is unspecified.
    
             This is reported via 'hardware-rev'.
    
             8.6 Vendor SN
             The vendor serial number (vendor SN) is a 16 character field
             that contains ASCII characters, left-aligned and padded on
             the right with ASCII spaces (20h), defining the Vendor's
             serial number for the transceiver. An empty string indicates
             that the vendor SN is unspecified.
    
             This is reported via 'serial-num'.
    
             8.7 Date Code
             The date code is an 8-byte field that contains the Vendor's
             date code in ASCII characters. The date code is mandatory.
    
             This is reported via 'mfg-date'.";
            reference
              "SFF-8472 (Revision 12.4) Section 7.1 - Address A0h,
              Bytes 20-35;
              SFF-8472 (Revision 12.4) Section 7.4 - Address A0h,
              Bytes 56-59;
              SFF-8472 (Revision 12.4) Section 8.6 - Address A0h,
              Bytes 68-83;
              SFF-8472 (Revision 12.4) Section 8.7 - Address A0h,
              Bytes 84-91;";
    
            leaf oui {
              type string {
                pattern
                  '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){2}';
              }
              config false;
              description
                "The vendor organizationally unique identifier field
               (Vendor OUI) is a 3-byte field that contains the IEEE
               Company Identifier for the vendor. A value of '00:00:00'
               indicates that the Vendor OUI is unspecified.";
              reference
                "SFF-8472 (Revision 12.4) Section 7.2 - Address A0h,
                Bytes 37-39";
    
            }
    
            leaf part-number {
              type string {
                pattern '[ -~]{0,16}';
              }
              config false;
              description
                "The vendor part number (vendor PN) is a 16-byte field that
               contains ASCII characters, left-aligned and padded on the
               right with ASCII spaces (20h), defining the vendor part
               number or product name. An empty string indicates that the
               vendor PN is unspecified.";
              reference
                "SFF-8472 (Revision 12.4) Section 7.3 - Address A0h,
                Bytes 40-55";
    
            }
    
            container eeprom {
              if-feature bbf-hw-xcvr:vendor-eeprom;
              config false;
              description
                "Data nodes reporting the contents of the vendor-specific
               EEPROM data fields.";
              reference
                "SFF-8472 (Revision 12.4) Table 4-1 - Address A0h,
                Bytes 96-127;
                SFF-8436 (Revision 4.9) Table 29 - Page 00h,
                Addresses 224-255;
                INF-8077i (Revision 4.5) Table 46 - Page 01h,
                Addresses 224-255";
    
              leaf string {
                if-feature bbf-hw-xcvr:vendor-eeprom-string;
                type string {
                  length "0..32";
                  pattern '[ -~]*';
                }
                description
                  "Contents of the vendor-specific EEPROM locations as a
                 sequence of an ASCII characters. Note that non-printable
                 characters will be ignored.
    
                 A zero length string indicates no octets are printable
                 ASCII characters
    
                 The binary representation provided by 'binary', if
                 supported, will return all octets regardless of value.";
              }
    
              leaf binary {
                if-feature bbf-hw-xcvr:vendor-eeprom-binary;
                type binary {
                  length "0..32";
                }
                description
                  "Contents of the vendor-specific EEPROM locations as a
                 sequence of octets.";
              }
            }  // container eeprom
          }  // container vendor-fields
        }  // grouping vendor-fields
    
        grouping thresholds {
          description "Transceiver thresholds.";
          container thresholds {
            description
              "Each diagnostic value has a corresponding high alarm, low
             alarm, high warning and low warning threshold. These factory
             preset values allow the user to determine when a particular
             value is outside of 'normal' limits as determined by the
             transceiver manufacturer. It is assumed that these values
             will vary with different technologies and different
             implementations. When external calibration is used, data may
             be compared to alarm and warning threshold values before or
             after calibration by the host. Comparison can be done
             directly before calibration. If comparison is to be done
             after calibration, calibration must first be applied to both
             data and threshold values.
    
             The values reported in the alarm and warning thresholds area
             (see below) may be temperature compensated or otherwise
             adjusted when setting warning and/or alarm flags. Any
             threshold compensation or adjustment is vendor-specific and
             optional.";
            reference
              "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
              Bytes 0-39";
    
            leaf temperature-high-alarm {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature above which will trigger a high temperature
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 00-01";
    
            }
    
            leaf temperature-low-alarm {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature below which will trigger a low temperature
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 02-03";
    
            }
    
            leaf temperature-high-warning {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature above which will trigger a high temperature
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 04-05";
    
            }
    
            leaf temperature-low-warning {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature below which will trigger a low temperature
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 06-07";
    
            }
    
            leaf supply-voltage-high-alarm {
              type uint16;
              units "0.1 millivolts";
              config false;
              description
                "The voltage above which will trigger a high supply voltage
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 08-09";
    
            }
    
            leaf supply-voltage-low-alarm {
              type uint16;
              units "0.1 millivolts";
              config false;
              description
                "The voltage below which will trigger a low supply voltage
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 10-11";
    
            }
    
            leaf supply-voltage-high-warning {
              type uint16;
              units "0.1 millivolts";
              config false;
              description
                "The voltage above which will trigger a high supply voltage
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 12-13";
    
            }
    
            leaf supply-voltage-low-warning {
              type uint16;
              units "0.1 millivolts";
              config false;
              description
                "The voltage below which will trigger a low supply voltage
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 14-15";
    
            }
    
            leaf tx-bias-high-alarm {
              type uint32;
              units "microamperes";
              config false;
              description
                "The bias current above which will trigger a high transmit
               bias alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 16-17";
    
            }
    
            leaf tx-bias-low-alarm {
              type uint32;
              units "microamperes";
              config false;
              description
                "The bias current below which will trigger a low transmit
               bias alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 18-19";
    
            }
    
            leaf tx-bias-high-warning {
              type uint32;
              units "microamperes";
              config false;
              description
                "The bias current above which will trigger a high transmit
               bias warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 20-21";
    
            }
    
            leaf tx-bias-low-warning {
              type uint32;
              units "microamperes";
              config false;
              description
                "The bias current below which will trigger a low transmit
               bias warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 22-23";
    
            }
    
            leaf tx-power-high-alarm {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power above which will trigger a high transmit power
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 24-25";
    
            }
    
            leaf tx-power-low-alarm {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power below which will trigger a low transmit power
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 26-27";
    
            }
    
            leaf tx-power-high-warning {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power above which will trigger a high transmit power
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 28-29";
    
            }
    
            leaf tx-power-low-warning {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power below which will trigger a low transmit power
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 30-31";
    
            }
    
            leaf rx-power-high-alarm {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power above which will trigger a high receive power
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 32-33";
    
            }
    
            leaf rx-power-low-alarm {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power below which will trigger a low receive power
               alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 34-35";
    
            }
    
            leaf rx-power-high-warning {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power above which will trigger a high receive power
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 36-37";
    
            }
    
            leaf rx-power-low-warning {
              type uint32;
              units "0.1 microwatts";
              config false;
              description
                "The power below which will trigger a low receive power
               warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 38-39";
    
            }
    
            leaf tx-power-dbm-high-alarm {
              type power-dbm;
              config false;
              description
                "The power value above which will trigger a high transmit
               power alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 24-25";
    
            }
    
            leaf tx-power-dbm-low-alarm {
              type power-dbm;
              config false;
              description
                "The power value below which will trigger a low transmit
               power alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 26-27";
    
            }
    
            leaf tx-power-dbm-high-warning {
              type power-dbm;
              config false;
              description
                "The power value above which will trigger a high transmit
               power warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 28-29";
    
            }
    
            leaf tx-power-dbm-low-warning {
              type power-dbm;
              config false;
              description
                "The power value below which will trigger a low transmit
               power warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 30-31";
    
            }
    
            leaf rx-power-dbm-high-alarm {
              type power-dbm;
              config false;
              description
                "The power value above which will trigger a high receive
               power alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 32-33";
    
            }
    
            leaf rx-power-dbm-low-alarm {
              type power-dbm;
              config false;
              description
                "The power value below which will trigger a low receive
               power alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 34-35";
    
            }
    
            leaf rx-power-dbm-high-warning {
              type power-dbm;
              config false;
              description
                "The power value above which will trigger a high receive
               power warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 36-37";
    
            }
    
            leaf rx-power-dbm-low-warning {
              type power-dbm;
              config false;
              description
                "The power value below which will trigger a low receive
               power warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 38-39";
    
            }
    
            leaf laser-temperature-high-alarm {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature above which will trigger a high laser
               temperature alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 40-41";
    
            }
    
            leaf laser-temperature-low-alarm {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature below which will trigger a low laser
               temperature alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 42-43";
    
            }
    
            leaf laser-temperature-high-warning {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature above which will trigger a high laser
               temperature warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 44-45";
    
            }
    
            leaf laser-temperature-low-warning {
              type int32;
              units "millidegrees Celsius";
              config false;
              description
                "The temperature below which will trigger a low laser
               temperature warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 46-47";
    
            }
    
            leaf tec-current-high-alarm {
              type int16;
              units "0.1 milliamperes";
              config false;
              description
                "The current above which will trigger a high Thermoelectric
               Cooler (TEC) current alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 48-49";
    
            }
    
            leaf tec-current-low-alarm {
              type int16;
              units "0.1 milliamperes";
              config false;
              description
                "The current below which will trigger a low Thermoelectric
               Cooler (TEC) current alarm.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 50-51";
    
            }
    
            leaf tec-current-high-warning {
              type int16;
              units "0.1 milliamperes";
              config false;
              description
                "The current above which will trigger a high Thermoelectric
               Cooler (TEC) current warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 52-53";
    
            }
    
            leaf tec-current-low-warning {
              type int16;
              units "0.1 milliamperes";
              config false;
              description
                "The current below which will trigger a low Thermoelectric
               Cooler (TEC) current warning.";
              reference
                "SFF-8472 (Revision 12.4) Table 9-5 - Address A2h,
                Bytes 54-55";
    
            }
          }  // container thresholds
        }  // grouping thresholds
    
        grouping extended-information {
          description
            "Data nodes related to the extended information data fields of
           the pluggable module.";
          container extended-information {
            if-feature bbf-hw-xcvr:extended-information;
            config false;
            description
              "Data nodes related to the extended information of the
             pluggable module.";
            reference
              "SFF-8472 (Revision 12.4) Section 10";
    
            container user-eeprom {
              if-feature bbf-hw-xcvr:user-eeprom;
              description
                "Data nodes reporting the contents of the user-writable
               EEPROM data fields.";
              reference
                "SFF-8472 (Revision 12.4) Table 10-4 - Address A2h,
                Page 00h/01h, Bytes 128-247;
                SFF-8436 (Revision 4.9) Section 7.6.4;
                INF-8077i (Revision 4.5) Section 5.45";
    
              leaf string {
                if-feature bbf-hw-xcvr:user-eeprom-string;
                type string {
                  length "0..128";
                  pattern '[ -~]*';
                }
                description
                  "Content of the user-writable EEPROM locations, excluding
                 the Common Language Equipment Identifier (CLEI) code, if
                 any, represented as a sequence of ASCII characters.
    
                 Note, the CLEI code, if any, is provided in the
                 hardware's component leaf 'uri'.
    
                 Note that non-printable characters will be ignored. A
                 zero length string indicates no octets are printable
                 ASCII characters.
    
                 The binary representation provided by 'binary', if
                 supported, will return all octets regardless of value.";
              }
    
              leaf binary {
                if-feature bbf-hw-xcvr:user-eeprom-binary;
                type binary {
                  length "0..128";
                }
                description
                  "Content of the user-writable EEPROM locations, excluding
                 the Common Language Equipment Identifier (CLEI) code, if
                 any, represented as a sequence of octets.
    
                 Note, the CLEI code, if any, is provided in the
                 hardware's component leaf 'uri'.";
              }
            }  // container user-eeprom
          }  // container extended-information
        }  // grouping extended-information
    
        augment /hw:hardware/hw:component {
          when
            "derived-from-or-self(hw:class,'bbf-hwt:transceiver')";
          description
            "Data nodes for hardware components of identity class
           'transceiver'.";
          container transceiver {
            description
              "Data nodes for hardware components of identity class
             'transceiver'.";
            uses identifiers-and-codes;
    
            uses link-length;
    
            uses vendor-fields;
    
            leaf diagnostics-monitoring-type {
              type bits {
                bit legacy {
                  position 0;
                  description
                    "Legacy diagnostic implementation.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-5 - Address A0h,
                    Byte 92, bit 7";
    
                }
              }
              config false;
              description
                "Describes how diagnostic monitoring is implemented in the
               particular transceiver.";
              reference
                "SFF-8472 (Revision 12.4) Section 8.8 - Address A0h,
                Byte 92";
    
            }
    
            leaf enhanced-options {
              type bits {
                bit alarm-warning-flags {
                  position 0;
                  description
                    "Optional Alarm/warning flags implemented for all
                   monitored quantities (see Table 9-12).";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 7";
    
                }
                bit soft-tx-disable {
                  position 1;
                  description
                    "Optional soft TX_DISABLE control and monitoring
                   implemented.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 6";
    
                }
                bit soft-tx-fault {
                  position 2;
                  description
                    "Optional soft TX_FAULT monitoring implemented.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 5";
    
                }
                bit soft-rx-los {
                  position 3;
                  description
                    "Optional soft RX_LOS monitoring implemented.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 4";
    
                }
                bit soft-rate-select {
                  position 4;
                  description
                    "Optional soft RATE_SELECT control and monitoring
                   implemented.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 3";
    
                }
                bit application-select {
                  position 5;
                  description
                    "Optional Application Select control implemented per
                   SFF-8079.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 2";
    
                }
                bit alarm-rate-select-sff-8431 {
                  position 6;
                  description
                    "Optional soft Rate Select control implemented per
                   SFF-8431.";
                  reference
                    "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h,
                    Byte 93, bit 1";
    
                }
              }
              config false;
              description
                "The Enhanced Options are indicators which describe the
               optional digital diagnostic features implemented in the
               transceiver. Since transceivers will not necessarily
               implement all optional features, this field allows the host
               system to determine which functions are available over the
               2 wire serial bus.";
              reference
                "SFF-8472 (Revision 12.4) Table 8-6 - Address A0h, Byte 93";
    
            }
    
            container diagnostics {
              presence
                "If present, indicates that digital diagnostics monitoring
               has been implemented in the transceiver. Supply voltage
               monitoring and temperature monitoring must both be
               implemented.";
              description
                "Diagnostic data of the transceiver.";
              reference
                "SFF-8472 (Revision 12.4) Section 8.8 - Address A0h,
                Byte 92;
                SFF-8472 (Revision 12.4) Section 9";
    
              uses transceiver-diagnostic-parameters;
    
              uses transceiver-alarm-diagnostic-parameters;
            }  // container diagnostics
    
            uses thresholds;
    
            uses extended-information;
          }  // container transceiver
        }
    
        augment /hw:hardware/hw:component {
          when
            "derived-from-or-self(hw:class,'bbf-hwt:transceiver-link')";
          description
            "Data nodes for hardware components of identity class
           'transceiver-link'.";
          container transceiver-link {
            description
              "Data nodes for hardware components of identity class
             'transceiver-link'.";
            uses link-parameters;
    
            container diagnostics {
              presence
                "If present, indicates that digital diagnostics monitoring
               has been implemented in the transceiver. Received power
               monitoring, transmit power monitoring and bias current
               monitoring must all be implemented.";
              description
                "Diagnostic data of the transceiver link.";
              reference
                "SFF-8472 (Revision 12.4) Section 8.8 - Address A0h,
                Byte 92;
                SFF-8472 (Revision 12.4) Section 9";
    
              uses link-diagnostic-parameters;
    
              uses link-alarm-diagnostic-parameters;
            }  // container diagnostics
          }  // container transceiver-link
        }
      }  // module bbf-hardware-transceivers
    

© 2023 YumaWorks, Inc. All rights reserved.