blob: c92ab90d73ce8ed577c5e65e73fc84169a3f49f9 [file] [log] [blame]
module opendevice-channel-monitor {
yang-version 1;
namespace "http://www.opendevice.net/yang/opendeivce-channels-monitor";
prefix "od-chan-mon";
import opendevice-types {
prefix "od-types";
revision-date 2017-10-08;
}
organization "Infinera";
contact
"support@infinera.com";
description
"This model describes operational state data for an optical
channel monitor (OCM) for optical transport line system
elements such as wavelength routers (ROADMs) and amplifiers.
It represent the information obtain by an OCM and not the device itself.
An optical channel is characterized by an optical spectrum band having a lower
and an upper frequency. Once provisioned, this channel can have information
reported about it like optical power spectral density (PSD). Also, this channel is what is
switched at a ROADM node.
The flex-channel-monitors list and the channel-monitors are two model of optical channel monitorl,
The channel-monitor model is used for OCM where channels are pre-fixed.
The flex-channel-monitors is used for OCM products where channels
are dynamically provisioned. A product would support one of these lists, not
both.
A flex-channel-monitor can contain sub-channels (carriers) within it. The support for carriers
is indicated by the multi-carrier feature.
An flex-channel-monitors can also support raising of alarms when its PSD cross provisioned thresholds.
";
revision 2018-05-15 {
description "cleanup comment";
}
revision 2017-10-08 {
description
"Use opendevice-types
Yang version 1";
}
revision 2017-09-18;
feature flex-channel-monitors {
description
"The flex-channel monitor and prefix-channel-monitors features
are mutually exlusive. A product would normally support one of these
features and not both.
A flex-channel-monitors is intended to be used in products that
dynamically create monitored channels.";
}
feature prefix-channel-monitors {
description
"The flex-channel monitor and prefix-channel-monitors features
are mutually exlusive. A product would normally support one of these
features and not both.
An prefix-channel-monitors is intended to be used in products that
have a fixed channel-plan and therefore do not create channels
dynamically.";
}
feature multi-carrier {
description
"The multi-carrier feature provides for specifying multiple sub-channels
or carriers within a channel.";
}
grouping media-channel-psd-state {
description
"Operational state data for the media channel PSD";
leaf lower-frequency {
type od-types:dwdm-frequency-ghz;
description
"Lower frequency of the specified PSD";
}
leaf upper-frequency {
type od-types:dwdm-frequency-ghz;
description
"Upper frequency of the specified PSD";
}
leaf psd {
type od-types:optical-psd;
units dBm/GHz;
}
leaf valid-data {
type boolean;
description "True if measured values are valid";
}
}
grouping media-channel-psd-top {
description
"Top-level grouping ";
container channels {
description
"Enclosing container for the list of values describing
the power spectral density distribution";
list channel {
key "lower-frequency upper-frequency";
config false;
description
"List of tuples describing the PSD distribution";
leaf lower-frequency {
type leafref {
path "../state/lower-frequency";
}
description
"Reference to the list key";
}
leaf upper-frequency {
type leafref {
path "../state/upper-frequency";
}
description
"Reference to the list key";
}
container state {
config false;
description
"Operational state data for PSD";
uses media-channel-psd-state;
}
}
}
}
grouping flex-media-carrier-psd-config {
description
"Configuration data for media channel carrier definitions";
leaf name {
type string;
description
"Identifier for the defined media channel";
}
leaf lower-frequency {
type od-types:dwdm-frequency-ghz;
description
"The lower frequency for the spectrum defined by this media
channel";
}
leaf upper-frequency {
type od-types:dwdm-frequency-ghz;
description
"The upper frequency for the spectrum defined by this media
channel";
}
}
grouping flex-media-carrier-psd-state {
description
"Operational state data for the media channel PSD";
leaf actual-lower-frequency {
type od-types:dwdm-frequency-ghz;
description
"Lower frequency of the specified PSD";
}
leaf actual-upper-frequency {
type od-types:dwdm-frequency-ghz;
description
"Upper frequency of the specified PSD";
}
leaf psd {
type od-types:optical-psd;
}
leaf valid-data {
type boolean;
description "True if measured values are valid";
}
}
grouping flex-media-carrier-psd-top {
description
"Top-level grouping ";
container carriers {
description
"Enclosing container for the list of media-carrier";
list carrier {
key name;
description
"List describing the PSD distribution";
leaf name {
type leafref {
path "../config/name";
}
description
"Reference to the list key";
}
container config {
uses flex-media-carrier-psd-config;
}
container state {
config false;
description
"Operational state data for PSD";
uses flex-media-carrier-psd-config;
uses flex-media-carrier-psd-state;
}
}
}
}
grouping flex-media-channel-psd-config {
description
"Configuration data for media channel definitions";
leaf name {
type string;
description
"Identifier for the defined media channel";
}
leaf lower-frequency {
type od-types:dwdm-frequency-ghz;
description
"The lower frequency for the spectrum defined by this media
channel";
}
leaf upper-frequency {
type od-types:dwdm-frequency-ghz;
description
"The upper frequency for the spectrum defined by this media
channel";
}
}
grouping flex-media-channel-psd-state {
description
"Operational state data for the media channel PSD";
leaf actual-lower-frequency {
type od-types:dwdm-frequency-ghz;
description
"Lower frequency of the specified PSD";
}
leaf actual-upper-frequency {
type od-types:dwdm-frequency-ghz;
description
"Upper frequency of the specified PSD";
}
leaf psd {
type od-types:optical-psd;
units dBm/GHz;
description
"Power spectral density expressed in nanowatts per
megahertz, nW/MHz. These units allow the value to often
be greater than 1.0. It also avoids dealing with zero values
for 0dBm. For example, a 40GHz wide channel
with 0dBm power would be:
0dBm = 1mW = 10^6nW
40GHz = 40,000MHz
0dBm/40GHz = 10^6nW/40,000MHz = 1000/40 = 25";
}
leaf valid-data {
type boolean;
description "True if measured values are valid";
}
}
grouping flex-media-channel-psd-top {
description
"Top-level grouping ";
container channels {
description
"Enclosing container for the list of media-channel";
list channel {
key name;
description
"List describing the PSD distribution";
leaf name {
type leafref {
path "../config/name";
}
description
"Reference to the list key";
}
container config {
uses flex-media-channel-psd-config;
}
container state {
config false;
description
"Operational state data for PSD";
uses flex-media-channel-psd-config;
uses flex-media-channel-psd-state;
}
uses flex-media-carrier-psd-top;
}
}
}
grouping channel-monitor-config {
description
"Configuration data for the optical channel monitor";
leaf name {
type string ;
description
"Reference to the optical channel monitor (OCM) name.
";
}
leaf monitor-port {
type string ;
description
"Reference to the name of the port that the
OCM channel monitor is physically connected
";
}
}
grouping channel-monitor-state {
description
"Operational state data ";
}
grouping channel-monitor-top {
description
"Top-level grouping ";
container channel-monitors {
description
"Top-level container for optical channel monitors";
list channel-monitor {
key "name monitor-port";
description
"List of channel monitors, keyed by channel monitor name.";
leaf name {
type leafref {
path "../config/name";
}
description
"References the optical channel monitor name";
}
leaf monitor-port {
type leafref {
path "../config/monitor-port";
}
}
container config {
description
"Configuration data ";
uses channel-monitor-config;
}
container state {
config false;
description
"Operational state data ";
uses channel-monitor-config;
uses channel-monitor-state;
}
uses media-channel-psd-top;
}
}
}
grouping flex-channel-monitor-top {
description
"Top-level grouping ";
container flex-channel-monitors {
description
"Top-level container for optical channel monitors";
list channel-monitor {
key "name monitor-port";
description
"List of channel monitors, keyed by channel monitor name.";
leaf name {
type leafref {
path "../config/name";
}
description
"References the optical channel monitor name";
}
leaf monitor-port {
type leafref {
path "../config/monitor-port";
}
}
container config {
description
"Configuration data ";
uses channel-monitor-config;
}
container state {
config false;
description
"Operational state data ";
uses channel-monitor-config;
uses channel-monitor-state;
}
uses flex-media-channel-psd-top;
}
}
}
uses channel-monitor-top;
uses flex-channel-monitor-top;
}