aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-terminal-device.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-terminal-device.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-terminal-device.yang1370
1 files changed, 0 insertions, 1370 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-terminal-device.yang b/src/plugins/yang/openconfig/openconfig-terminal-device.yang
deleted file mode 100644
index 27de12d..0000000
--- a/src/plugins/yang/openconfig/openconfig-terminal-device.yang
+++ /dev/null
@@ -1,1370 +0,0 @@
-module openconfig-terminal-device {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/terminal-device";
-
- prefix "oc-opt-term";
-
- import openconfig-types { prefix oc-types; }
- import openconfig-transport-types { prefix oc-opt-types; }
- import openconfig-if-ethernet { prefix oc-eth; }
- import openconfig-platform { prefix oc-platform; }
- import openconfig-platform-transceiver { prefix oc-transceiver; }
- import openconfig-lldp { prefix oc-lldp; }
- import openconfig-extensions { prefix oc-ext; }
- import ietf-yang-types { prefix yang; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-yang-types { prefix oc-yang; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module describes a terminal optics device model for
- managing the terminal systems (client and line side) in a
- DWDM transport network.
-
- Elements of the model:
-
- physical port: corresponds to a physical, pluggable client
- port on the terminal device. Examples includes 10G, 40G, 100G
- (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future.
- Physical client ports will have associated operational state or
- PMs.
-
- physical channel: a physical lane or channel in the
- physical client port. Each physical client port has 1 or more
- channels. An example is 100GBASE-LR4 client physical port having
- 4x25G channels. Channels have their own optical PMs and can be
- monitored independently within a client physical port (e.g.,
- channel power). Physical client channels are defined in the
- model as part of a physical client port, and are modeled
- primarily for reading their PMs.
-
- logical channel: a logical grouping of logical grooming elements
- that may be assigned to subsequent grooming stages for
- multiplexing / de-multiplexing, or to an optical channel for
- line side transmission. The logical channels can represent, for
- example, an ODU/OTU logical packing of the client
- data onto the line side. Tributaries are similarly logical
- groupings of demand that can be represented in this structure and
- assigned to an optical channel. Note that different types of
- logical channels may be present, each with their corresponding
- PMs.
-
- optical channel: corresponds to an optical carrier and is
- assigned a wavelength/frequency. Optical channels have PMs
- such as power, BER, and operational mode.
-
- Directionality:
-
- To maintain simplicity in the model, the configuration is
- described from client-to-line direction. The assumption is that
- equivalent reverse configuration is implicit, resulting in
- the same line-to-client configuration.
-
- Physical layout:
-
- The model does not assume a particular physical layout of client
- and line ports on the terminal device (e.g., such as number of
- ports per linecard, separate linecards for client and line ports,
- etc.).";
-
- oc-ext:openconfig-version "1.4.0";
-
- revision "2018-08-28" {
- description
- "Adds terminal device related Ethernet counters";
- reference "1.4.0";
- }
-
- revision "2018-07-30" {
- description
- "Adds lldp snooping config leaf and augmented it to oc-lldp";
- reference "1.3.0";
- }
-
- revision "2018-07-26" {
- description
- "Adds OTN protocol counter stats of errored-blocks and
- fec-uncorrectable-blocks, adds ethernet-config-ext grouping
- and uses it to augment oc-eth";
- reference "1.2.0";
- }
-
- revision "2018-07-17" {
- description
- "Adds testing enum to link-state";
- reference "1.1.0";
- }
-
- revision "2017-07-08" {
- description
- "Adds test-signal";
- reference "1.0.0";
- }
-
- revision "2016-12-22" {
- description
- "Fixes and additions to terminal optics model";
- reference "0.4.0";
- }
-
-
- grouping terminal-input-optical-power {
- description
- "Reusable leaves related to input optical power";
-
- leaf input-power {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "The input optical power of this port in units of 0.01dBm.
- If the port is an aggregate of multiple physical channels,
- this attribute is the total power or sum of all channels.";
- }
- }
-
- grouping terminal-ethernet-protocol-config {
- description
- "Configuration data for logical channels with Ethernet
- framing";
-
- //TODO:currently a empty container
- }
-
- grouping terminal-ethernet-protocol-state {
- description
- "Ethernet-specific counters when logical channel
- is using Ethernet protocol framing, e.g., 10GE, 100GE";
-
- uses oc-eth:ethernet-interface-state-counters;
- uses terminal-ethernet-protocol-state-counters;
- }
-
- grouping terminal-ethernet-protocol-state-counters {
- description
- "Ethernet-specific counters for terminal devices when
- logical channel is using Ethernet protocol framing,
- e.g., 10GE, 100GE";
-
- // ingress counters
-
- leaf in-pcs-bip-errors {
- type oc-yang:counter64;
- description
- "The number of received bit interleaved parity (BIP) errors
- at the physical coding sublayer (PCS). If the interface
- consists of multiple lanes, this will be the sum of all
- errors on the lane";
- }
-
- leaf in-pcs-errored-seconds {
- type oc-yang:counter64;
- description
- "The number of seconds that physical coding sublayer (PCS)
- errors have crossed a sytem defined threshold indicating the
- link is erroring";
- }
-
- leaf in-pcs-severely-errored-seconds {
- type oc-yang:counter64;
- description
- "The number of seconds that physical coding sublayer (PCS)
- errors have crossed a system defined threshold indicating the
- link is severely erroring";
- }
-
- leaf in-pcs-unavailable-seconds {
- type oc-yang:counter64;
- description
- "The number of seconds that physical coding sublayer (PCS)
- errors have crossed a system defined threshold indicating the
- link is unavailable";
- }
-
- // egress counters
-
- leaf out-pcs-bip-errors {
- type oc-yang:counter64;
- description
- "The number of transmitted bit interleaved parity (BIP) errors
- at the physical coding sublayer (PCS). If the interface
- consists of multiple lanes, this will be the sum of all
- errors on the lane";
- }
-
- leaf out-crc-errors {
- type oc-yang:counter64;
- description
- "Number of FCS/CRC error check failures sent on the interface";
- }
-
- leaf out-block-errors {
- type oc-yang:counter64;
- description
- "The number of transmitted errored blocks. Error detection
- codes are capable of detecting whether one or more errors have
- occurred in a given sequence of bits - the block. It is
- normally not possible to determine the exact number of errored
- bits within the block";
- }
- }
-
- grouping terminal-ethernet-protocol-top {
- description
- "Top-level grouping for data related to Ethernet protocol
- framing on logical channels";
-
- container ethernet {
- description
- "Top level container for data related to Ethernet framing
- for the logical channel";
-
- container config {
- description
- "Configuration data for Ethernet protocol framing on
- logical channels";
-
- uses terminal-ethernet-protocol-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for Ethernet protocol framing
- on logical channels";
-
- uses terminal-ethernet-protocol-state;
- }
- }
- }
-
- grouping terminal-otn-protocol-config {
- description
- "OTU configuration when logical channel
- framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
- leaf tti-msg-transmit {
- type string;
- description
- "Trail trace identifier (TTI) message transmitted";
- }
-
- leaf tti-msg-expected {
- type string;
- description
- "Trail trace identifier (TTI) message expected";
- }
-
- leaf tti-msg-auto {
- type boolean;
- description
- "Trail trace identifier (TTI) transmit message automatically
- created. If true, then setting a custom transmit message
- would be invalid.";
- }
- }
-
- grouping terminal-otn-protocol-counter-stats {
- description
- "Counter based statistics containers for logical channels
- using OTN framing";
-
- leaf errored-seconds {
- type yang:counter64;
- description
- "The number of seconds that at least one errored blocks
- occurs, at least one code violation occurs, loss of sync is
- detected or loss of signal is detected";
- }
-
- leaf severely-errored-seconds {
- type yang:counter64;
- description
- "The number of seconds that loss of frame is detected OR
- the number of errored blocks, code violations, loss of sync
- or loss of signal is detected exceeds a predefined
- threshold";
- }
-
- leaf unavailable-seconds {
- type yang:counter64;
- description
- "The number of seconds during which the link is unavailable";
- }
-
- leaf code-violations {
- type yang:counter64;
- description
- "For ethernet or fiberchannel links, the number of 8b/10b
- coding violations. For SONET/SDH, the number of BIP (bit
- interleaved parity) errors";
- }
-
- leaf errored-blocks {
- type yang:counter64;
- description
- "The number of errored blocks. Error detection codes are
- capable to detect whether one or more errors have occurred
- in a given sequence of bits - the block. It is normally not
- possible to determine the exact number of errored bits within
- the block.";
- reference "ITU-T Rec. G.826";
- }
-
- leaf fec-uncorrectable-blocks {
- type yang:counter64;
- description
- "The number of blocks that were uncorrectable by the FEC";
- }
-
- leaf fec-uncorrectable-words {
- type yang:counter64;
- description
- "The number of words that were uncorrectable by the FEC";
- }
-
- leaf fec-corrected-bytes {
- type yang:counter64;
- description
- "The number of bytes that were corrected by the FEC";
- }
-
- leaf fec-corrected-bits {
- type yang:counter64;
- description
- "The number of bits that were corrected by the FEC";
- }
-
- leaf background-block-errors {
- type yang:counter64;
- description
- "The number of background block errors";
- }
- }
-
- grouping terminal-otn-protocol-multi-stats {
- description
- "Multi-value statistics containers for logical channels using
- OTN framing (e.g., max, min, avg, instant)";
-
- container pre-fec-ber {
- description
- "Bit error rate before forward error correction -- computed
- value with 18 decimal precision. Note that decimal64
- supports values as small as i x 10^-18 where i is an
- integer. Values smaller than this should be reported as 0
- to inidicate error free or near error free performance.
- 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-opt-types:avg-min-max-instant-stats-precision18-ber;
- }
-
- container post-fec-ber {
- description
- "Bit error rate after forward error correction -- computed
- value with 18 decimal precision. Note that decimal64
- supports values as small as i x 10^-18 where i is an
- integer. Values smaller than this should be reported as 0
- to inidicate error free or near error free performance.
- 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-opt-types:avg-min-max-instant-stats-precision18-ber;
- }
-
- container q-value {
- description
- "Quality value (factor) in dB of a channel with 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-dB;
- }
-
- container esnr {
- description
- "Electrical signal to noise ratio. Baud rate
- normalized signal to noise ratio based on
- error vector magnitude in dB with 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-dB;
- }
- }
-
- grouping terminal-otn-protocol-state {
- description
- "OTU operational state when logical channel
- framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-
- leaf tti-msg-recv {
- type string;
- description
- "Trail trace identifier (TTI) message received";
- }
-
- leaf rdi-msg {
- type string;
- description
- "Remote defect indication (RDI) message received";
- }
- uses terminal-otn-protocol-counter-stats;
- uses terminal-otn-protocol-multi-stats;
- }
-
- grouping terminal-otn-protocol-top {
- description
- "Top-level grouping for data related to OTN protocol framing";
-
- container otn {
- description
- "Top level container for OTU configuration when logical
- channel framing is using an OTU protocol, e.g., OTU1, OTU3,
- etc.";
-
- container config {
- description
- "Configuration data for OTN protocol framing";
-
- uses terminal-otn-protocol-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for OTN protocol PMs, statistics,
- etc.";
-
- uses terminal-otn-protocol-config;
- uses terminal-otn-protocol-state;
- }
- }
- }
-
- grouping terminal-client-port-assignment-config {
- description
- "Configuration data for assigning physical client ports to
- logical channels";
-
- leaf index {
- type uint32;
- description
- "Index of the client port assignment";
- }
-
- leaf description {
- type string;
- description
- "Descriptive name for the client port-to-logical channel
- mapping";
- }
-
- leaf logical-channel {
- type leafref {
- path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" +
- "/oc-opt-term:channel/oc-opt-term:index";
- }
- description
- "Reference to the logical channel for this
- assignment";
- }
-
- leaf allocation {
- type decimal64 {
- fraction-digits 3;
- }
- units Gbps;
- description
- "Allocation of the client physical port to the assigned
- logical channel expressed in Gbps. In most cases,
- the full client physical port rate is assigned to a single
- logical channel.";
- }
-
- }
-
- grouping terminal-client-port-assignment-state {
- description
- "Operational state data for assigning physical client ports
- to logical channels";
- }
-
- grouping terminal-client-port-assignment-top {
- description
- "Top-level grouping for the assigment of client physical ports
- to logical channels";
- //TODO: this grouping could be removed, instead reusing a common
- //grouping for logical client assignment pointers
-
- container logical-channel-assignments {
- description
- "Enclosing container for client port to logical client
- mappings";
-
- list assignment {
- key "index";
- description
- "List of assignments to logical clients";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index of this logical client
- assignment";
- }
-
- container config {
- description
- "Configuration data for the logical client assignment";
-
- uses terminal-client-port-assignment-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the logical client
- assignment";
-
- uses terminal-client-port-assignment-config;
- uses terminal-client-port-assignment-state;
- }
- }
- }
- }
-
-
- grouping terminal-logical-chan-assignment-config {
- description
- "Configuration data for assigning client logical channels
- to line-side tributaries";
-
- leaf index {
- type uint32;
- description
- "Index of the current logical client channel to tributary
- mapping";
- }
-
- leaf description {
- type string;
- description
- "Name assigned to the logical client channel";
- }
-
- leaf assignment-type {
- type enumeration {
- enum LOGICAL_CHANNEL {
- description
- "Subsequent channel is a logical channel";
- }
- enum OPTICAL_CHANNEL {
- description
- "Subsequent channel is a optical channel / carrier";
- }
- }
- description
- "Each logical channel element may be assigned to subsequent
- stages of logical elements to implement further grooming, or
- can be assigned to a line-side optical channel for
- transmission. Each assignment also has an associated
- bandwidth allocation.";
- }
-
- leaf logical-channel {
- type leafref {
- path "/oc-opt-term:terminal-device/" +
- "oc-opt-term:logical-channels/oc-opt-term:channel/" +
- "oc-opt-term:index";
- }
- must "../assignment-type = 'LOGICAL_CHANNEL'" {
- description
- "The assignment-type must be set to LOGICAL_CHANNEL for
- this leaf to be valid";
- }
- description
- "Reference to another stage of logical channel elements.";
- }
-
- leaf optical-channel {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- must "../assignment-type = 'OPTICAL_CHANNEL'" {
- description
- "The assignment-type must be set to OPTICAL_CHANNEL for
- this leaf to be valid";
- }
- description
- "Reference to the line-side optical channel that should
- carry the current logical channel element. Use this
- reference to exit the logical element stage.";
- }
-
- leaf allocation {
- type decimal64 {
- fraction-digits 3;
- }
- units Gbps;
- description
- "Allocation of the logical client channel to the tributary
- or sub-channel, expressed in Gbps";
- }
-
- }
-
- grouping terminal-logical-chan-assignment-state {
- description
- "Operational state data for the assignment of logical client
- channel to line-side tributary";
- }
-
- grouping terminal-logical-chan-assignment-top {
- description
- "Top-level grouping for the list of logical client channel-to-
- tributary assignments";
-
- container logical-channel-assignments {
- //TODO: we need a commonly understood name for this logical
- //channel structure
- description
- "Enclosing container for tributary assignments";
-
- list assignment {
- key "index";
- description
- "Logical channel elements may be assigned directly to
- optical channels for line-side transmission, or can be
- further groomed into additional stages of logical channel
- elements. The grooming can multiplex (i.e., split the
- current element into multiple elements in the subsequent
- stage) or de-multiplex (i.e., combine the current element
- with other elements into the same element in the subsequent
- stage) logical elements in each stage.
-
- Note that to support the ability to groom the logical
- elements, the list of logical channel elements should be
- populated with an entry for the logical elements at
- each stage, starting with the initial assignment from the
- respective client physical port.
-
- Each logical element assignment consists of a pointer to
- an element in the next stage, or to an optical channel,
- along with a bandwidth allocation for the corresponding
- assignment (e.g., to split or combine signal).";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index for the current tributary
- assignment";
- }
-
- container config {
- description
- "Configuration data for tributary assignments";
-
- uses terminal-logical-chan-assignment-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for tributary assignments";
-
- uses terminal-logical-chan-assignment-config;
- uses terminal-logical-chan-assignment-state;
- }
- }
- }
- }
-
- grouping terminal-logical-channel-ingress-config {
- description
- "Configuration data for ingress signal to logical channel";
-
- leaf transceiver {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the transceiver carrying the input signal
- for the logical channel. If specific physical channels
- are mapped to the logical channel (as opposed to all
- physical channels carried by the transceiver), they can be
- specified in the list of physical channel references.";
- }
-
- leaf-list physical-channel {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-transceiver:transceiver/" +
- "oc-transceiver:physical-channels/" +
- "oc-transceiver:channel/oc-transceiver:index";
- }
- description
- "This list should be populated with references
- to the client physical channels that feed this logical
- channel from the transceiver specified in the 'transceiver'
- leaf, which must be specified. If this leaf-list is empty,
- all physical channels in the transceiver are assumed to be
- mapped to the logical channel.";
- }
- }
-
- grouping terminal-logical-channel-ingress-state {
- description
- "Operational state data for ingress signal to logical channel";
- }
-
- grouping terminal-logical-channel-ingress-top {
- description
- "Top-level grouping for ingress signal to logical channel";
-
- container ingress {
- description
- "Top-level container for specifying references to the
- source of signal for the logical channel, either a
- transceiver or individual physical channels";
-
- container config {
- description
- "Configuration data for the signal source for the
- logical channel";
-
- uses terminal-logical-channel-ingress-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the signal source for the
- logical channel";
-
- uses terminal-logical-channel-ingress-config;
- uses terminal-logical-channel-ingress-state;
- }
- }
- }
-
- grouping terminal-logical-channel-config {
- description
- "Configuration data for logical channels";
-
- leaf index {
- type uint32;
- description
- "Index of the current logical channel";
- }
-
- leaf description {
- type string;
- description
- "Description of the logical channel";
- }
-
- leaf admin-state {
- type oc-opt-types:admin-state-type;
- description
- "Sets the admin state of the logical channel";
- }
-
- leaf rate-class {
- type identityref {
- base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE;
- }
- description
- "Rounded bit rate of the tributary signal. Exact bit rate
- will be refined by protocol selection.";
- }
-
- leaf trib-protocol {
- type identityref {
- base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE;
- }
- description
- "Protocol framing of the tributary signal. If this
- LogicalChannel is directly connected to a Client-Port or
- Optical-Channel, this is the protocol of the associated port.
- If the LogicalChannel is connected to other LogicalChannels,
- the TributaryProtocol of the LogicalChannels will define a
- specific mapping/demapping or multiplexing/demultiplexing
- function.
-
- Not all protocols are valid, depending on the value
- of trib-rate-class. The expectation is that the NMS
- will validate that a correct combination of rate class
- and protocol are specfied. Basic combinations are:
-
- rate class: 1G
- protocols: 1GE
-
- rate class: 2.5G
- protocols: OC48, STM16
-
- rate class: 10G
- protocols: 10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e,
- OTU1e, ODU2, ODU2e, ODU1e
-
- rate class: 40G
- protocols: 40GE, OC768, STM256, OTU3, ODU3
-
- rate class: 100G
- protocols: 100GE, 100G MLG, OTU4, OTUCn, ODU4";
- }
-
- leaf logical-channel-type {
- type identityref {
- base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE;
- }
- description
- "The type / stage of the logical element determines the
- configuration and operational state parameters (PMs)
- available for the logical element";
- }
-
- leaf loopback-mode {
- type oc-opt-types:loopback-mode-type;
- description
- "Sets the loopback type on the logical channel. Setting the
- mode to something besides NONE activates the loopback in
- the specified mode.";
- }
-
- leaf test-signal {
- type boolean;
- description
- "When enabled the logical channel's DSP will generate a pseudo
- randmon bit stream (PRBS) which can be used during testing.";
- }
- }
-
-
- grouping terminal-logical-channel-state {
- description
- "Operational state data for logical client channels";
-
- leaf link-state {
- type enumeration {
- enum UP {
- description
- "Logical channel is operationally up";
- }
- enum DOWN {
- description
- "Logical channel is operationally down";
- }
- enum TESTING {
- description
- "Logical channel is under test as a result of
- enabling test-signal";
- }
- }
- description
- "Link-state of the Ethernet protocol on the logical channel,
- SONET / SDH framed signal, etc.";
- }
-
- }
-
- grouping terminal-logical-channel-top {
- description
- "Top-level grouping for logical channels";
-
- container logical-channels {
- description
- "Enclosing container the list of logical channels";
-
- list channel {
- key "index";
- description
- "List of logical channels";
- //TODO: naming for this list of logical elements should be
- //revisited.
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index of the logical channel";
- }
-
- container config {
- description
- "Configuration data for logical channels";
-
- uses terminal-logical-channel-config;
-
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for logical channels";
-
- uses terminal-logical-channel-config;
- uses terminal-logical-channel-state;
- }
-
- uses terminal-otn-protocol-top {
- when "config/logical-channel-type = 'PROT_OTN'" {
- description
- "Include the OTN protocol data only when the
- channel is using OTN framing.";
- }
- }
- uses terminal-ethernet-protocol-top {
- when "config/logical-channel-type = 'PROT_ETHERNET'" {
- description
- "Include the Ethernet protocol statistics only when the
- protocol used by the link is Ethernet.";
- }
- }
- uses terminal-logical-channel-ingress-top;
- uses terminal-logical-chan-assignment-top;
- }
- }
- }
-
-
- grouping terminal-optical-channel-config {
- description
- "Configuration data for describing optical channels";
-
- leaf frequency {
- type oc-opt-types:frequency-type;
- description
- "Frequency of the optical channel, expressed in MHz";
- }
-
- 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)";
- }
-
- leaf operational-mode {
- type uint16;
- description
- "Vendor-specific mode identifier -- sets the operational
- mode for the channel. The specified operational mode must
- exist in the list of supported operational modes supplied
- by the device";
- //
- // Ideally, this leaf should be a leafref to the supported
- // operational modes, but YANG 1.0 does not allow a r/w
- // leaf to be a leafref to a r/o leaf.
- }
-
-
- leaf line-port {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the line-side physical port that carries
- this optical channel. The target port should be
- a component in the physical inventory data model.";
- }
- }
-
- grouping terminal-optical-channel-state {
- description
- "Operational state data for optical channels";
-
- leaf group-id {
- type uint32;
- description
- "If the device places constraints on which optical
- channels must be managed together (e.g., transmitted on the
- same line port), it can indicate that by setting the group-id
- to the same value across related optical channels.";
- }
-
- uses oc-transceiver:optical-power-state;
-
- container chromatic-dispersion {
- description
- "Chromatic Dispersion of an optical channel in
- picoseconds / nanometer (ps/nm) as reported by receiver
- with 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-opt-types:avg-min-max-instant-stats-precision2-ps-nm;
- }
-
- container polarization-mode-dispersion {
- description
- "Polarization Mode Dispersion of an optical channel
- in picosends (ps) as reported by receiver with 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-opt-types:avg-min-max-instant-stats-precision2-ps;
- }
-
- container second-order-polarization-mode-dispersion {
- description
- "Second Order Polarization Mode Dispersion of an optical
- channel in picoseconds squared (ps^2) as reported by
- receiver with 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-opt-types:avg-min-max-instant-stats-precision2-ps2;
- }
-
- container polarization-dependent-loss {
- description
- "Polarization Dependent Loss of an optical channel
- in dB as reported by receiver with 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-dB;
- }
- }
-
- grouping terminal-optical-channel-top {
- description
- "Top-level grouping for optical channel data";
-
- container optical-channel {
- description
- "Enclosing container for the list of optical channels";
-
- container config {
- description
- "Configuration data for optical channels";
-
- uses terminal-optical-channel-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for optical channels";
-
- uses terminal-optical-channel-config;
- uses terminal-optical-channel-state;
- }
- }
- }
-
- grouping terminal-operational-mode-config {
- description
- "Configuration data for vendor-supported operational modes";
- }
-
- grouping terminal-operational-mode-state {
- description
- "Operational state data for vendor-supported operational
- modes";
-
- leaf mode-id {
- type uint16;
- description
- "Two-octet encoding of the vendor-defined operational
- mode";
- }
-
- leaf description {
- type string;
- description
- "Vendor-supplied textual description of the characteristics
- of this operational mode to enable operators to select the
- appropriate mode for the application.";
- }
-
- //TODO: examples of the kind of info that would be useful to
- //report in the operational mode:
- //Symbol rate (32G, 40G, 43G, 64G, etc.)
- //Modulation (QPSK, 8-QAM, 16-QAM, etc.)
- //Differential encoding (on, off/pilot symbol, etc)
- //State of polarization tracking mode (default, med.
- //high-speed, etc.)
- //Pulse shaping (RRC, RC, roll-off factor)
- //FEC mode (SD, HD, % OH)
-
- leaf vendor-id {
- type string;
- description
- "Identifier to represent the vendor / supplier of the
- platform and the associated operational mode information";
- }
- }
-
- grouping terminal-operational-mode-top {
- description
- "Top-level grouping for vendor-supported operational modes";
-
- container operational-modes {
- description
- "Enclosing container for list of operational modes";
-
- list mode {
- key "mode-id";
- config false;
- description
- "List of operational modes supported by the platform.
- The operational mode provides a platform-defined summary
- of information such as symbol rate, modulation, pulse
- shaping, etc.";
-
- leaf mode-id {
- type leafref {
- path "../state/mode-id";
- }
- description
- "Reference to mode-id";
- }
-
- container config {
- description
- "Configuration data for operational mode";
-
- uses terminal-operational-mode-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the platform-defined
- operational mode";
-
- uses terminal-operational-mode-config;
- uses terminal-operational-mode-state;
- }
- }
- }
- }
-
- grouping ethernet-config-ext {
- description
- "Extended ethernet config data on terminal device";
-
- leaf client-fec {
- type enumeration {
- enum ENABLED {
- description
- "FEC is enabled";
- }
-
- enum DISABLED {
- description
- "FEC is disabled";
- }
-
- enum AUTO {
- description
- "System will automatically enable or disable FEC
- according to the Ethernet compliance codes (PMD)
- supported by transceivers";
- }
- }
- default AUTO;
- description
- "Configure whether FEC will be manually or automatically
- enabled or disabled on the client port";
- }
-
- leaf client-als {
- type enumeration {
- enum NONE {
- description
- "The client port will do nothing when a failure is
- detected on the line port or the remote client port";
- }
- enum LASER_SHUTDOWN {
- description
- "The client port will shut down the laser to notify the
- subtending Ethernet equipment of the failure detected on
- the line port or the remote client port.";
- }
- enum ETHERNET {
- description
- "The client port will propagate the local fault or remote
- fault signal to the subtending Ethernet equipment.";
- }
- }
- default ETHERNET;
- description
- "Sets the client port behavior that defines if the actions
- of automatic laser shutdown (als), ethernet fault
- propagation, or nothing will be done upon the detection
- of a failure on the line port or the upstream remote
- client port.";
- }
-
- leaf als-delay {
- type uint32;
- units milliseconds;
- default 0;
- description
- "The timer to delay the client-als actions on the client
- port when a local or remote fault is detected on the line
- port. The delay will only be valid when the client-als is
- set to LASER_SHUTDOWN";
- }
- }
-
- grouping terminal-device-config {
- description
- "Configuration data for transport terminal devices at a
- device-wide level";
- }
-
- grouping terminal-device-state {
- description
- "Operational state data for transport terminal devices at a
- device-wide level";
- }
-
- grouping terminal-device-top {
- description
- "Top-level grouping for data for terminal devices";
-
- container terminal-device {
- description
- "Top-level container for the terminal device";
-
- container config {
- description
- "Configuration data for global terminal-device";
-
- uses terminal-device-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for global terminal device";
-
- uses terminal-device-config;
- uses terminal-device-state;
- }
-
- uses terminal-logical-channel-top;
- uses terminal-operational-mode-top;
-
- }
- }
-
-
- grouping lldp-interface-config {
- description
- "Extension to the configuration data for LLDP on each
- optical terminal interface";
-
- leaf snooping {
- type boolean;
- default "false";
- description
- "If true, LLDP PDUs are only received and processed on
- the interface, but are not originated by the local agent.
- The PDUs are not dropped by the interface after processing,
- but relayed to the downstream link layer neighbors.
- If false, LLDP PDUs are both received and originated on the
- interface. The snooping mode is valid only when LLDP is
- enabled on the interface. The snooping mode is useful
- when an interface does not want its link layer neighbors to
- discover itself since, for example, it is a lower-layer
- interface";
- }
- }
-
- // data definition statements
-
- uses terminal-device-top;
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component" {
- when "/oc-platform:components/oc-platform:component/" +
- "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" {
- description
- "Augment is active when component is of type
- OPTICAL_CHANNEL";
- }
- description
- "Adding optical channel data to physical inventory";
-
- uses terminal-optical-channel-top {
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet" +
- "/oc-eth:config" {
- description
- "Adds configuration data for client interfaces using Ethernet
- framing";
-
- uses ethernet-config-ext;
- }
-
- augment "/oc-lldp:lldp/oc-lldp:interfaces/oc-lldp:interface/" +
- "oc-lldp:config" {
- description
- "Augment the lldp config data to support the snooping mode
- for each optical terminal interface";
-
- uses lldp-interface-config;
- }
-}