blob: 1141aabe765afb70fcf28a382ea0c119f952a3d8 [file] [log] [blame]
module openconfig-wavelength-router {
yang-version "1";
// namespace
namespace "http://openconfig.net/yang/wavelength-router";
prefix "oc-wave-router";
// import some basic types
import openconfig-extensions { prefix oc-ext; }
import openconfig-types { prefix oc-types; }
import openconfig-interfaces { prefix oc-if; }
import openconfig-transport-types { prefix oc-opt-types; }
// meta
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.";
oc-ext:openconfig-version "0.3.0";
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";
}
// grouping statements
grouping media-channel-port-config {
description
"Configuration data for a media channel source/dest port";
leaf port-name {
type oc-if:base-interface-ref;
description
"Reference to the corresponding node interface";
}
}
grouping media-channel-port-state {
description
"Operational state data for a media channel source/dest port";
}
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 state {
config false;
description
"Operational state data for the media channel source";
uses media-channel-port-config;
uses media-channel-port-state;
}
}
}
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 state {
config false;
description
"Operational state data for the media channel destination";
uses media-channel-port-config;
uses media-channel-port-state;
}
}
}
grouping media-channel-psd-config {
description
"Configuration data for the media channel PSD";
leaf lower-frequency {
type oc-opt-types:frequency-type;
description
"Lower frequency of the specified PSD";
}
leaf upper-frequency {
type oc-opt-types:frequency-type;
description
"Upper frequency of the specified PSD";
}
leaf psd {
type oc-types:ieeefloat32;
units "nW/MHz";
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";
}
}
grouping media-channel-psd-state {
description
"Operational state data for the media channel PSD";
}
grouping media-channel-psd-top {
description
"Top-level grouping ";
container psd-distribution {
description
"Enclosing container for the list of values describing
the power spectral density distribution";
list psd-value {
key "lower-frequency upper-frequency";
description
"List of tuples describing the PSD 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 PSD";
uses media-channel-psd-config;
}
container state {
config false;
description
"Operational state data for PSD";
uses media-channel-psd-config;
uses media-channel-psd-state;
}
}
}
}
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";
}
}
grouping media-channel-state {
description
"Operational state data for media channels ";
leaf oper-status {
type enumeration {
enum UP {
description
"Media channel is operationally up";
}
enum DOWN {
description
"Media channel is operationally down";
}
}
description
"Operational state of the media channel";
}
}
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 state {
config false;
description
"Operational state data ";
uses media-channel-config;
uses media-channel-state;
}
uses media-channel-source-port-top;
uses media-channel-dest-port-top;
uses media-channel-psd-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;
}
}
// data definition statements
uses wavelength-router-top;
// augment statements
// rpc statements
// notification statements
}