diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-wavelength-router.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-wavelength-router.yang | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-wavelength-router.yang b/src/plugins/yang/openconfig/openconfig-wavelength-router.yang new file mode 100644 index 0000000..c6ad945 --- /dev/null +++ b/src/plugins/yang/openconfig/openconfig-wavelength-router.yang @@ -0,0 +1,360 @@ +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 + +} |