netconfcentral logo

openconfig-platform-transceiver

HTML

openconfig-platform-transceiver@2017-09-18



  module openconfig-platform-transceiver {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/platform/transceiver";

    prefix oc-transceiver;

    import openconfig-platform {
      prefix oc-platform;
    }
    import openconfig-interfaces {
      prefix oc-if;
    }
    import openconfig-transport-types {
      prefix oc-opt-types;
    }
    import openconfig-types {
      prefix oc-types;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-yang-types {
      prefix oc-yang;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This module defines configuration and operational state data
    for transceivers (i.e., pluggable optics).  The module should be
    used in conjunction with the platform model where other
    physical entity data are represented.

    In the platform model, a component of type=TRANSCEIVER is
    expected to be a subcomponent of a PORT component.  This
    module defines a concrete schema for the associated data for
    components with type=TRANSCEIVER.";

    revision "2017-09-18" {
      description
        "Use openconfig-yang-types module";
      reference
        "0.4.0";

    }

    revision "2017-07-08" {
      description
        "Adds clarification on aggregate power measurement data";
      reference
        "0.3.0";

    }

    revision "2016-12-22" {
      description
        "Adds preconfiguration data and clarified units";
      reference
        "0.2.0";

    }

    oc-ext:openconfig-version "0.4.0";

    grouping optical-power-state {
      description
        "Reusable leaves related to optical power state -- these
      are read-only state values. If avg/min/max statistics are
      not supported, the target is expected to just supply the
      instant value";
      container output-power {
        description
          "The output optical power of a physical channel in units
        of 0.01dBm, which may be associated with individual
        physical channels, or an aggregate of multiple physical
        channels (i.e., for the overall transceiver). For an
        aggregate, this may be a measurement from a photodetector
        or a a calculation performed on the device by summing up
        all of the related individual physical channels.
        Values include the instantaneous, average, minimum, and
        maximum statistics. If avg/min/max statistics are not
        supported, the target is expected to just supply the
        instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-dBm;
      }  // container output-power

      container input-power {
        description
          "The input optical power of a physical channel in units
        of 0.01dBm, which may be associated with individual
        physical channels, or an aggregate of multiple physical
        channels (i.e., for the overall transceiver). For an
        aggregate, this may be a measurement from a photodetector
        or a a calculation performed on the device by summing up
        all of the related individual physical channels.
        Values include the instantaneous, average, minimum, and
        maximum statistics. If avg/min/max statistics are not
        supported, the target is expected to just supply the
        instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-dBm;
      }  // container input-power

      container laser-bias-current {
        description
          "The current applied by the system to the transmit laser to
        achieve the output power. The current is expressed in mA
        with up to two decimal precision. Values include the
        instantaneous, average, minimum, and maximum statistics.
        If avg/min/max statistics are not supported, the target is
        expected to just supply the instant value";
        uses oc-types:avg-min-max-instant-stats-precision2-mA;
      }  // container laser-bias-current
    }  // grouping optical-power-state

    grouping output-optical-frequency {
      description
        "Reusable leaves related to optical output power -- this is
      typically configurable on line side and read-only on the
      client-side";
      leaf output-frequency {
        type oc-opt-types:frequency-type;
        description
          "The frequency in MHz of the individual physical channel
        (e.g. ITU C50 - 195.0THz and would be reported as
        195,000,000 MHz in this model). This attribute is not
        configurable on most client ports.";
      }
    }  // grouping output-optical-frequency

    grouping physical-channel-config {
      description
        "Configuration data for physical client channels";
      leaf index {
        type uint16 {
          range "0..max";
        }
        description
          "Index of the physical channnel or lane within a physical
        client port";
      }

      leaf description {
        type string;
        description
          "Text description for the client physical channel";
      }

      leaf tx-laser {
        type boolean;
        description
          "Enable (true) or disable (false) the transmit label for the
        channel";
      }

      leaf target-output-power {
        type decimal64 {
          fraction-digits 2;
        }
        units "dBm";
        description
          "Target output optical power level of the optical channel,
        expressed in increments of 0.01 dBm (decibel-milliwats)";
      }
    }  // grouping physical-channel-config

    grouping physical-channel-state {
      description
        "Operational state data for client channels.";
      uses output-optical-frequency;

      uses optical-power-state;
    }  // grouping physical-channel-state

    grouping physical-channel-top {
      description
        "Top-level grouping for physical client channels";
      container physical-channels {
        description
          "Enclosing container for client channels";
        list channel {
          key "index";
          description
            "List of client channels, keyed by index within a physical
          client port.  A physical port with a single channel would
          have a single zero-indexed element";
          leaf index {
            type leafref {
              path "../config/index";
            }
            description
              "Reference to the index number of the channel";
          }

          container config {
            description
              "Configuration data for physical channels";
            uses physical-channel-config;
          }  // container config

          container state {
            config false;
            description
              "Operational state data for channels";
            uses physical-channel-config;

            uses physical-channel-state;
          }  // container state
        }  // list channel
      }  // container physical-channels
    }  // grouping physical-channel-top

    grouping port-transceiver-config {
      description
        "Configuration data for client port transceivers";
      leaf enabled {
        type boolean;
        description
          "Turns power on / off to the transceiver -- provides a means
        to power on/off the transceiver (in the case of SFP, SFP+,
        QSFP,...) or enable high-power mode (in the case of CFP,
        CFP2, CFP4) and is optionally supported (device can choose to
        always enable).  True = power on / high power, False =
        powered off";
      }

      leaf form-factor-preconf {
        type identityref {
          base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
        }
        description
          "Indicates the type of optical transceiver used on this
        port.  If the client port is built into the device and not
        pluggable, then non-pluggable is the corresponding state. If
        a device port supports multiple form factors (e.g. QSFP28
        and QSFP+, then the value of the transceiver installed shall
        be reported. If no transceiver is present, then the value of
        the highest rate form factor shall be reported
        (QSFP28, for example).

        The form factor is included in configuration data to allow
        pre-configuring a device with the expected type of
        transceiver ahead of deployment.  The corresponding state
        leaf should reflect the actual transceiver type plugged into
        the system.";
      }

      leaf ethernet-pmd-preconf {
        type identityref {
          base oc-opt-types:ETHERNET_PMD_TYPE;
        }
        description
          "The Ethernet PMD is a property of the optical transceiver
        used on the port, indicating the type of physical connection.
        It is included in configuration data to allow pre-configuring
        a port/transceiver with the expected PMD.  The actual PMD is
        indicated by the ethernet-pmd state leaf.";
      }
    }  // grouping port-transceiver-config

    grouping port-transceiver-state {
      description
        "Operational state data for client port transceivers";
      leaf present {
        type enumeration {
          enum "PRESENT" {
            value 0;
            description
              "Transceiver is present on the port";
          }
          enum "NOT_PRESENT" {
            value 1;
            description
              "Transceiver is not present on the port";
          }
        }
        description
          "Indicates whether a transceiver is present in
        the specified client port.";
      }

      leaf form-factor {
        type identityref {
          base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
        }
        description
          "Indicates the type of optical transceiver used on this
        port.  If the client port is built into the device and not
        pluggable, then non-pluggable is the corresponding state. If
        a device port supports multiple form factors (e.g. QSFP28
        and QSFP+, then the value of the transceiver installed shall
        be reported. If no transceiver is present, then the value of
        the highest rate form factor shall be reported
        (QSFP28, for example).";
      }

      leaf connector-type {
        type identityref {
          base oc-opt-types:FIBER_CONNECTOR_TYPE;
        }
        description
          "Connector type used on this port";
      }

      leaf internal-temp {
        type int16 {
          range "-40..125";
        }
        description
          "Internally measured temperature in degrees Celsius. MSA
        valid range is between -40 and +125C. Accuracy shall be
        better than +/- 3 degC over the whole temperature range.";
      }

      leaf vendor {
        type string {
          length "1..16";
        }
        description
          "Full name of transceiver vendor. 16-octet field that
        contains ASCII characters, left-aligned and padded on the
        right with ASCII spaces (20h)";
      }

      leaf vendor-part {
        type string {
          length "1..16";
        }
        description
          "Transceiver vendor's part number. 16-octet field that
        contains ASCII characters, left-aligned and padded on the
        right with ASCII spaces (20h). If part number is undefined,
        all 16 octets = 0h";
      }

      leaf vendor-rev {
        type string {
          length "1..2";
        }
        description
          "Transceiver vendor's revision number. 2-octet field that
        contains ASCII characters, left-aligned and padded on the
        right with ASCII spaces (20h)";
      }

      leaf ethernet-pmd {
        type identityref {
          base oc-opt-types:ETHERNET_PMD_TYPE;
        }
        description
          "Ethernet PMD (physical medium dependent sublayer) that the
        transceiver supports. The SFF/QSFP MSAs have registers for
        this and CFP MSA has similar.";
      }

      leaf sonet-sdh-compliance-code {
        type identityref {
          base oc-opt-types:SONET_APPLICATION_CODE;
        }
        description
          "SONET/SDH application code supported by the port";
      }

      leaf otn-compliance-code {
        type identityref {
          base oc-opt-types:OTN_APPLICATION_CODE;
        }
        description
          "OTN application code supported by the port";
      }

      leaf serial-no {
        type string {
          length "1..16";
        }
        description
          "Transceiver serial number. 16-octet field that contains
        ASCII characters, left-aligned and padded on the right with
        ASCII spaces (20h). If part serial number is undefined, all
        16 octets = 0h";
      }

      leaf date-code {
        type oc-yang:date-and-time;
        description
          "Representation of the transceiver date code, typically
        stored as YYMMDD.  The time portion of the value is
        undefined and not intended to be read.";
      }

      leaf fault-condition {
        type boolean;
        description
          "Indicates if a fault condition exists in the transceiver";
      }

      uses optical-power-state;
    }  // grouping port-transceiver-state

    grouping port-transceiver-top {
      description
        "Top-level grouping for client port transceiver data";
      container transceiver {
        description
          "Top-level container for client port transceiver data";
        container config {
          description
            "Configuration data for client port transceivers";
          uses port-transceiver-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data for client port transceivers";
          uses port-transceiver-config;

          uses port-transceiver-state;
        }  // container state

        uses physical-channel-top;
      }  // container transceiver
    }  // grouping port-transceiver-top

    augment /oc-platform:components/oc-platform:component {
      description
        "Adding transceiver data to physical inventory";
      uses port-transceiver-top {
        when
          "current()/oc-platform:state/"
            + "oc-platform:type = 'TRANSCEIVER'" {
          description
            "Augment is active when component is of type TRANSCEIVER";
        }
      }
    }

    augment /oc-if:interfaces/oc-if:interface/oc-if:state {
      description
        "Adds a reference from the base interface to its corresponding
      physical channels.";
      leaf-list physical-channel {
        type leafref {
          path "/oc-platform:components/oc-platform:component[oc-platform:name=current()/../oc-platform:hardware-port]/oc-transceiver:transceiver/oc-transceiver:physical-channels/oc-transceiver:channel/oc-transceiver:index";
        }
        description
          "For a channelized interface, list of references to the
        physical channels (lanes) corresponding to the interface.";
      }
    }
  }  // module openconfig-platform-transceiver

Summary

  
  
Organization OpenConfig working group
  
Module openconfig-platform-transceiver
Version 2017-09-18
File openconfig-platform-transceiver.yang
  
Prefix oc-transceiver
Namespace http://openconfig.net/yang/platform/transceiver
  
Cooked /cookedmodules/openconfig-platform-transceiver/2017-09-18
YANG /src/openconfig-platform-transceiver@2017-09-18.yang
XSD /xsd/openconfig-platform-transceiver@2017-09-18.xsd
  
Abstract This module defines configuration and operational state data for transceivers (i.e., pluggable optics). The module should be us...
  
Contact
OpenConfig working group
www.openconfig.net

Description

 
This module defines configuration and operational state data
for transceivers (i.e., pluggable optics).  The module should be
used in conjunction with the platform model where other
physical entity data are represented.

In the platform model, a component of type=TRANSCEIVER is
expected to be a subcomponent of a PORT component.  This
module defines a concrete schema for the associated data for
components with type=TRANSCEIVER.

Groupings

Grouping Objects Abstract
optical-power-state output-power input-power laser-bias-current Reusable leaves related to optical power state -- these are read-only state values. If avg/min/max statistics are not supported, the target is expected to just supply the instant value
output-optical-frequency output-frequency Reusable leaves related to optical output power -- this is typically configurable on line side and read-only on the client-side
physical-channel-config index description tx-laser target-output-power Configuration data for physical client channels
physical-channel-state output-frequencyoutput-power input-power laser-bias-current Operational state data for client channels.
physical-channel-top physical-channels Top-level grouping for physical client channels
port-transceiver-config enabled form-factor-preconf ethernet-pmd-preconf Configuration data for client port transceivers
port-transceiver-state present form-factor connector-type internal-temp vendor vendor-part vendor-rev ethernet-pmd sonet-sdh-compliance-code otn-compliance-code serial-no date-code fault-condition output-power input-power laser-bias-current Operational state data for client port transceivers
port-transceiver-top transceiver Top-level grouping for client port transceiver data