+++ /dev/null
-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-extensions { prefix oc-ext; }
- import ietf-yang-types { prefix 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.0.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;
- }
-
- 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 fec-uncorrectable-words {
- type yang:counter64;
- description
- "The number 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";
- }
- }
- 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 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;
-
- }
- }
-
- // 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 {
- }
- }
-
-}