This model describes configuration and operational state data for an optical transport line system node, or ROADM (incl. CDC ROA...
Version: 2024-04-08
module openconfig-wavelength-router { yang-version 1; namespace "http://openconfig.net/yang/wavelength-router"; prefix oc-wave-router; import openconfig-extensions { prefix oc-ext; } import openconfig-platform { prefix oc-platform; } import openconfig-transport-types { prefix oc-opt-types; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This model describes configuration and operational state data for an optical transport line system node, or ROADM (incl. CDC ROADMs, WSS, Dynamic Gain Equalizer/DGE). Nodes are modeled as a configurable switching element with ingress and egress ports, as well as a number of add/drop ports that can be set up to direct portions of the optical spectrum to the appropriate degrees. In relation to configuring target spectrum powers, there are two, non-overlapping, configuration possibilities that are supported. 1. Non-noise loaded wavelength router: - The target spectrum powers are configured on each media channel. 2. Noise-loaded wavelength router: - The target spectrum power values will be configured as a target spectrum power profile over the full spectrum instead of individual media channels."; revision "2024-04-08" { description "Add attenuation-control-range to media channel config"; reference "1.2.0"; } revision "2021-07-26" { description "Add dynamic loss damped mode."; reference "1.1.0"; } revision "2020-08-28" { description "Add ase-injection-delta-threshold leaf."; reference "1.0.0"; } revision "2020-06-03" { description "Add attenutation-control-mode to media channel config"; reference "0.8.0"; } revision "2019-10-24" { description "Migrate from using power spectral densisty to using power target values"; reference "0.7.0"; } revision "2019-09-20" { description "Add ASE related state and config. Also add a super channel parent leaf"; reference "0.6.0"; } revision "2019-06-03" { description "PSD profile top-level description and port changed to a leafref."; reference "0.5.0"; } revision "2019-04-03" { description "Add port PSD profile modeling."; reference "0.4.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.3.3"; } revision "2018-07-17" { description "Correct bug so that source/dest ports are components"; reference "0.3.2"; } revision "2017-09-08" { description "Correct bug with OSC interfaces"; reference "0.3.1"; } revision "2017-07-08" { description "Support multiple OCMs, add monitor port type and refs to hw ports, "; reference "0.3.0"; } revision "2017-03-28" { description "Added min/max/avg stats, status for media channels, OCM, APS"; reference "0.2.0"; } revision "2016-03-31" { description "Initial public release"; reference "0.1.0"; } oc-ext:openconfig-version "1.2.0"; oc-ext:regexp-posix; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; identity ATTENUATION_CONTROL_MODE { description "The definition for different types of attenutation control modes on a media channel"; } identity ATTENUATION_FIXED_LOSS { base ATTENUATION_CONTROL_MODE; description "The attenuation applied across a media channel will be calculated based on the target input and output powers as well as the internal losses of the wavelength router. The target power levels are configured using port-spectrum-power-profiles of the two ports"; } identity ATTENUATION_DYNAMIC_LOSS { base ATTENUATION_CONTROL_MODE; description "The attenuation applied across a media channel is dynamically controlled by the device by attempting to meet the target output power as defined in the output port's port-spectrum-power-profile"; } identity ATTENUATION_DYNAMIC_LOSS_DAMPED { base ATTENUATION_CONTROL_MODE; description "The attenuation applied across a media channel is dynamically controlled by the device by attempting to meet the target output power as defined in the output port's port-spectrum-power-profile. In this mode, convergence to the target output power occurs gradually to minimize any power oscillations across the line system. These changes will happen within the order of minutes"; } identity ATTENUATION_CONTROL_RANGE { description "The definition for different types of modes to specify attenuation control range settings on a media channel"; } identity CONTROL_RANGE_FULL { base ATTENUATION_CONTROL_RANGE; description "Media channel power compensation range is not constrained, and is limited by available WSS dynamic range. Operator does not explicitly set the undershoot and overshoot compensation range"; } identity CONTROL_RANGE_LIMITED { base ATTENUATION_CONTROL_RANGE; description "Media channel undershoot and overshoot compensation ranges are defined by max-undershoot-compensation and max-overshoot-compensation"; } identity ASE_CONTROL_MODE { description "The definition for different types of ASE control modes on a media channel"; } identity ASE_ENABLED { base ASE_CONTROL_MODE; description "The media channel will immediately have ASE noise injected"; } identity ASE_DISABLED { base ASE_CONTROL_MODE; description "Removes any ASE noise injection that may be present on the media channel"; } identity AUTO_ASE_ON_FAILURE { base ASE_CONTROL_MODE; description "The media channel will automatically be injected with noise if the media channel target spectrum power drops below the provided threshdold. In this mode, at time of a failure, the media channel is removed from the system and would need to be reconfigured to restore traffic. In addition, unprovisioned spectrum will be injected with noise"; } identity AUTO_ASE_FAILURE_AND_RESTORE { base ASE_CONTROL_MODE; description "The media channel will automatically be injected with noise if the media channel target spectrum power drops below the provided threshold. When the original signal is restored above the threshold the ASE noise injection will be automatically removed. In addition, unprovisioned spectrum will be injected with noise"; } grouping port-spectrum-power-profile-state { description "Operational state data for a wavelength-router port spectrum profile"; } // grouping port-spectrum-power-profile-state grouping port-spectrum-power-profile-config { description "Configuration data for a wavelength-router port spectrum profile"; leaf name { type leafref { path "/oc-platform:components/oc-platform:component/" + "oc-platform:name"; } description "Reference to system-supplied name of the wavelength-router port component."; } } // grouping port-spectrum-power-profile-config grouping port-spectrum-power-profiles-top { description "Top-level grouping for the list of wavelength-router port spectrum power profiles"; container port-spectrum-power-profiles { description "Enclosing container for wavelength-router port spectrum power profiles"; list port { key "name"; description "List of ports, keyed by port name"; leaf name { type leafref { path "../config/name"; } description "References the port name"; } container config { description "Configuration data for each port"; uses port-spectrum-power-profile-config; } // container config container state { config false; description "Operational state data for each port spectrum profile."; uses port-spectrum-power-profile-config; uses port-spectrum-power-profile-state; } // container state uses spectrum-target-power-profiles-top; } // list port } // container port-spectrum-power-profiles } // grouping port-spectrum-power-profiles-top grouping media-channel-port-config { description "Configuration data for a media channel source/dest port"; leaf port-name { type leafref { path "/oc-platform:components/oc-platform:component/" + "oc-platform:name"; } description "Reference to the corresponding node port"; } } // grouping media-channel-port-config grouping media-channel-port-state { description "Operational state data for a media channel source/dest port"; } // grouping media-channel-port-state grouping media-channel-source-port-top { description "Top-level grouping for source of the media channel"; container source { description "Top-level container for media channel source"; container config { description "Configuration data for the media channel source"; uses media-channel-port-config; } // container config container state { config false; description "Operational state data for the media channel source"; uses media-channel-port-config; uses media-channel-port-state; } // container state } // container source } // grouping media-channel-source-port-top grouping media-channel-dest-port-top { description "Top-level grouping for destination of the media channel"; container dest { description "Top-level container for media channel destination"; container config { description "Configuration data for the media channel destination"; uses media-channel-port-config; } // container config container state { config false; description "Operational state data for the media channel destination"; uses media-channel-port-config; uses media-channel-port-state; } // container state } // container dest } // grouping media-channel-dest-port-top grouping spectrum-target-power-config { description "Configuration data for the media channel target power"; leaf lower-frequency { type oc-opt-types:frequency-type; description "Lower frequency of the specified target spectrum power"; } leaf upper-frequency { type oc-opt-types:frequency-type; description "Upper frequency of the specified target spectrum power"; } leaf target-power { type decimal64 { fraction-digits 2; } units "dBm"; description "Target average power to achieve within the specified spectrum"; } } // grouping spectrum-target-power-config grouping spectrum-target-power-state { description "Operational state data for the target spectrum power"; } // grouping spectrum-target-power-state grouping spectrum-target-power-profiles-top { description "Top-level grouping for target spectrum profiles"; container spectrum-power-profile { description "Enclosing container for the list of values describing the target spectrum powers"; list distribution { key "lower-frequency upper-frequency"; description "List of tuples describing the target spectrum power distribution"; leaf lower-frequency { type leafref { path "../config/lower-frequency"; } description "Reference to the list key"; } leaf upper-frequency { type leafref { path "../config/upper-frequency"; } description "Reference to the list key"; } container config { description "Configuration data for target spectrum power"; uses spectrum-target-power-config; } // container config container state { config false; description "Operational state data for target spectrum power"; uses spectrum-target-power-config; uses spectrum-target-power-state; } // container state } // list distribution } // container spectrum-power-profile } // grouping spectrum-target-power-profiles-top grouping media-channel-config { description "Configuration data for media channel definitions"; leaf index { type uint32; description "Identifier for the defined media channel"; } leaf name { type string; description "The user supplied name of the media channel"; } leaf lower-frequency { type oc-opt-types:frequency-type; description "The lower frequency for the spectrum defined by this media channel"; } leaf upper-frequency { type oc-opt-types:frequency-type; description "The upper frequency for the spectrum defined by this media channel"; } leaf admin-status { type oc-opt-types:admin-state-type; description "Sets the admin status of the media channel"; } leaf super-channel { type boolean; description "True if the media channel is a super channel which contains multiple media channels within it. The contained media channels should fall within the boundaries of the super channel. The device should raise an error if a media channel crosses a super channel boundary. When using super channels, spectrum power targets should be defined in either the: - port-spectrum-power-profiles for the port which matches the source port of the media channel representing the super channel - media channels that are contained within the super channel, but not on the super channel itself"; } leaf super-channel-parent { type leafref { path "../../../channel/config/index"; } description "If the media channel is contained within a super channel this would specify the index of the super channel parent"; } leaf ase-control-mode { type identityref { base ASE_CONTROL_MODE; } description "Sets the ASE control mode for the media channel. The control mode defines if and when ASE noise is injected on the media channel"; } leaf ase-injection-mode { type enumeration { enum "MODE_THRESHOLD" { value 0; description "When set ASE noise will be injected when a defined threshold is crossed."; } enum "MODE_DELTA" { value 1; description "When set ASE noise will be injected when a defined delta in optical power occurs."; } } description "When specified, defines the mode used to determine whether ASE noise should be injected on the media channel."; } leaf ase-injection-threshold { when "../ase-injection-mode = 'MODE_THRESHOLD'"; type decimal64 { fraction-digits 2; } units "dBm"; description "Defines the optical power threshold value below which ASE noise should be injected on the media channel. This or ase-injection-delta is required if an ase-control-mode is configured"; } leaf ase-injection-delta { when "../ase-injection-mode = 'MODE_DELTA'"; type decimal64 { fraction-digits 2; } units "dB"; description "Defines the optical power loss from the configured spectrum power profile, which would indicate that ASE noise should be injected on the media channel. This or ase-injection-threshold is required if an ase-control-mode is configured"; } leaf media-channel-injection-offset { type decimal64 { fraction-digits 2; } units "dB"; description "Defines the optical power offset value relative to the ASE injection threshold at which point ASE should be removed and the media-channel should be injected. Requires ase-injection-delta or ase-injection-threshold to be configured"; } leaf attenuation-control-mode { type identityref { base ATTENUATION_CONTROL_MODE; } description "Sets the attenuation control mode for the media channel. The control mode defines the behavior of how the attenuation across a media channel is set"; } leaf attenuation-control-range { type identityref { base ATTENUATION_CONTROL_RANGE; } description "Sets the attenuation control range for the media channel. The control range defines the amount of media channel undershoot and overshoot compensation that will be applied when performing power targeting to meet the defined output port spectrum power profile"; } leaf max-undershoot-compensation { when "../attenuation-control-range = 'CONTROL_RANGE_LIMITED'"; type decimal64 { fraction-digits 2; } units "dB"; description "Defines the maximum allowable WSS attenuation adjustment the system will use to compensate a channel with input power lower than the defined target power at the input. This value is measured relative to the baseline WSS attenuation established for an individual media-channel"; } leaf max-overshoot-compensation { when "../attenuation-control-range = 'CONTROL_RANGE_LIMITED'"; type decimal64 { fraction-digits 2; } units "dB"; description "Defines the maximum allowable WSS attenuation adjustment the system will use to compensate a channel with input power higher than the defined target power at the input. This value is measured relative to the baseline WSS attenuation established for an individual media-channel"; } } // grouping media-channel-config grouping media-channel-state { description "Operational state data for media channels "; leaf oper-status { type enumeration { enum "UP" { value 0; description "Media channel is operationally up"; } enum "DOWN" { value 1; description "Media channel is operationally down"; } } description "Operational state of the media channel"; } leaf ase-status { type enumeration { enum "PRESENT" { value 0; description "Media channel has injected ASE noise present"; } enum "NOT_PRESENT" { value 1; description "Media channel does not have injected ASE noise present"; } } description "Status of injected ASE noise on the media channel"; } } // grouping media-channel-state grouping media-channel-top { description "Top-level grouping for list of defined media channels"; container media-channels { description "Enclosing container for media channel list"; list channel { key "index"; description "List of media channels"; leaf index { type leafref { path "../config/index"; } description "Reference to index number of the media channel"; } container config { description "Configuration data "; uses media-channel-config; } // container config container state { config false; description "Operational state data "; uses media-channel-config; uses media-channel-state; } // container state uses media-channel-source-port-top; uses media-channel-dest-port-top; uses spectrum-target-power-profiles-top; } // list channel } // container media-channels } // grouping media-channel-top grouping wavelength-router-top { description "Top level grouping for the wavelength router"; container wavelength-router { description "Top-level container for wavelength router device"; uses media-channel-top; uses port-spectrum-power-profiles-top; } // container wavelength-router } // grouping wavelength-router-top uses wavelength-router-top; } // module openconfig-wavelength-router
© 2023 YumaWorks, Inc. All rights reserved.