| 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 |
| |
| } |