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-platform { prefix oc-platform; } import openconfig-transport-types { prefix oc-opt-types; } import openconfig-types { prefix oc-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.2"; 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"; } // grouping statements 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-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 }