summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-platform-transceiver.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-transceiver.yang492
1 files changed, 0 insertions, 492 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang b/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang
deleted file mode 100644
index 66b9071..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang
+++ /dev/null
@@ -1,492 +0,0 @@
-module openconfig-platform-transceiver {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/transceiver";
-
- prefix "oc-transceiver";
-
- // import some basic types
- import openconfig-platform { prefix oc-platform; }
- import openconfig-platform-port { prefix oc-port; }
- 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; }
-
-
- // meta
- 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.";
-
- oc-ext:openconfig-version "0.5.0";
-
- revision "2018-05-15" {
- description
- "Remove internal-temp state leaf, since we prefer
- the generic /components/component/state/temperature
- container for temperature information.";
- reference "0.5.0";
- }
-
- revision "2018-01-22" {
- description
- "Fixed physical-channel path reference";
- reference "0.4.1";
- }
-
- 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";
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- 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 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 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;
- }
- }
-
- 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 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-state {
- description
- "Operational state data for client channels.";
-
- uses output-optical-frequency;
- uses optical-power-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 state {
-
- config false;
-
- description
- "Operational state data for channels";
-
- uses physical-channel-config;
- uses physical-channel-state;
- }
- }
- }
- }
-
-
- 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-state {
- description
- "Operational state data for client port transceivers";
-
- leaf present {
- type enumeration {
- enum PRESENT {
- description
- "Transceiver is present on the port";
- }
- enum NOT_PRESENT {
- 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 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)";
- }
-
- //TODO: these compliance code leaves should be active based on
- //the type of port
- 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-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 state {
-
- config false;
-
- description
- "Operational state data for client port transceivers";
-
- uses port-transceiver-config;
- uses port-transceiver-state;
- }
- // physical channels are associated with a transceiver
- // component
- uses physical-channel-top;
- }
- }
-
- // data definition statements
-
- // augment statements
-
- 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" {
- //TODO: add 'when' or other condition to make sure this
- //leafref points to a component of type TRANSCEIVER.
- 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-port: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.";
- }
- }
-
- // rpc statements
-
- // notification statements
-
-}