diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-terminal-device.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-terminal-device.yang | 1370 |
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; - } -} |