blob: c92ab90d73ce8ed577c5e65e73fc84169a3f49f9 [file] [log] [blame]
Stephane St-Laurent8adec972018-05-15 13:52:41 -07001module opendevice-channel-monitor {
2 yang-version 1;
3 namespace "http://www.opendevice.net/yang/opendeivce-channels-monitor";
4 prefix "od-chan-mon";
5 import opendevice-types {
6 prefix "od-types";
7 revision-date 2017-10-08;
8 }
9
10 organization "Infinera";
11 contact
12 "support@infinera.com";
13 description
14 "This model describes operational state data for an optical
15 channel monitor (OCM) for optical transport line system
16 elements such as wavelength routers (ROADMs) and amplifiers.
17 It represent the information obtain by an OCM and not the device itself.
18
19 An optical channel is characterized by an optical spectrum band having a lower
20 and an upper frequency. Once provisioned, this channel can have information
21 reported about it like optical power spectral density (PSD). Also, this channel is what is
22 switched at a ROADM node.
23
24 The flex-channel-monitors list and the channel-monitors are two model of optical channel monitorl,
25
26 The channel-monitor model is used for OCM where channels are pre-fixed.
27
28 The flex-channel-monitors is used for OCM products where channels
29 are dynamically provisioned. A product would support one of these lists, not
30 both.
31
32 A flex-channel-monitor can contain sub-channels (carriers) within it. The support for carriers
33 is indicated by the multi-carrier feature.
34
35 An flex-channel-monitors can also support raising of alarms when its PSD cross provisioned thresholds.
36 ";
37 revision 2018-05-15 {
38 description "cleanup comment";
39 }
40
41 revision 2017-10-08 {
42 description
43 "Use opendevice-types
44 Yang version 1";
45 }
46
47 revision 2017-09-18;
48
49 feature flex-channel-monitors {
50 description
51 "The flex-channel monitor and prefix-channel-monitors features
52 are mutually exlusive. A product would normally support one of these
53 features and not both.
54
55 A flex-channel-monitors is intended to be used in products that
56 dynamically create monitored channels.";
57 }
58
59 feature prefix-channel-monitors {
60 description
61 "The flex-channel monitor and prefix-channel-monitors features
62 are mutually exlusive. A product would normally support one of these
63 features and not both.
64
65 An prefix-channel-monitors is intended to be used in products that
66 have a fixed channel-plan and therefore do not create channels
67 dynamically.";
68 }
69
70 feature multi-carrier {
71 description
72 "The multi-carrier feature provides for specifying multiple sub-channels
73 or carriers within a channel.";
74 }
75
76 grouping media-channel-psd-state {
77 description
78 "Operational state data for the media channel PSD";
79
80 leaf lower-frequency {
81 type od-types:dwdm-frequency-ghz;
82 description
83 "Lower frequency of the specified PSD";
84 }
85
86 leaf upper-frequency {
87 type od-types:dwdm-frequency-ghz;
88 description
89 "Upper frequency of the specified PSD";
90 }
91
92 leaf psd {
93 type od-types:optical-psd;
94 units dBm/GHz;
95
96 }
97 leaf valid-data {
98 type boolean;
99 description "True if measured values are valid";
100 }
101
102 }
103
104
105 grouping media-channel-psd-top {
106 description
107 "Top-level grouping ";
108
109 container channels {
110 description
111 "Enclosing container for the list of values describing
112 the power spectral density distribution";
113
114 list channel {
115 key "lower-frequency upper-frequency";
116 config false;
117 description
118 "List of tuples describing the PSD distribution";
119
120 leaf lower-frequency {
121 type leafref {
122 path "../state/lower-frequency";
123 }
124 description
125 "Reference to the list key";
126 }
127
128 leaf upper-frequency {
129 type leafref {
130 path "../state/upper-frequency";
131 }
132 description
133 "Reference to the list key";
134 }
135
136
137 container state {
138
139 config false;
140
141 description
142 "Operational state data for PSD";
143
144 uses media-channel-psd-state;
145 }
146 }
147 }
148 }
149
150 grouping flex-media-carrier-psd-config {
151 description
152 "Configuration data for media channel carrier definitions";
153
154 leaf name {
155 type string;
156 description
157 "Identifier for the defined media channel";
158 }
159
160 leaf lower-frequency {
161 type od-types:dwdm-frequency-ghz;
162 description
163 "The lower frequency for the spectrum defined by this media
164 channel";
165 }
166
167 leaf upper-frequency {
168 type od-types:dwdm-frequency-ghz;
169 description
170 "The upper frequency for the spectrum defined by this media
171 channel";
172 }
173
174 }
175
176 grouping flex-media-carrier-psd-state {
177 description
178 "Operational state data for the media channel PSD";
179
180 leaf actual-lower-frequency {
181 type od-types:dwdm-frequency-ghz;
182 description
183 "Lower frequency of the specified PSD";
184 }
185
186 leaf actual-upper-frequency {
187 type od-types:dwdm-frequency-ghz;
188 description
189 "Upper frequency of the specified PSD";
190 }
191
192 leaf psd {
193 type od-types:optical-psd;
194 }
195 leaf valid-data {
196 type boolean;
197 description "True if measured values are valid";
198 }
199
200 }
201
202
203 grouping flex-media-carrier-psd-top {
204 description
205 "Top-level grouping ";
206
207 container carriers {
208 description
209 "Enclosing container for the list of media-carrier";
210
211 list carrier {
212 key name;
213 description
214 "List describing the PSD distribution";
215
216 leaf name {
217 type leafref {
218 path "../config/name";
219 }
220 description
221 "Reference to the list key";
222 }
223 container config {
224 uses flex-media-carrier-psd-config;
225 }
226
227
228
229 container state {
230
231 config false;
232
233 description
234 "Operational state data for PSD";
235 uses flex-media-carrier-psd-config;
236
237
238 uses flex-media-carrier-psd-state;
239 }
240 }
241 }
242 }
243
244 grouping flex-media-channel-psd-config {
245 description
246 "Configuration data for media channel definitions";
247
248 leaf name {
249 type string;
250 description
251 "Identifier for the defined media channel";
252 }
253
254 leaf lower-frequency {
255 type od-types:dwdm-frequency-ghz;
256 description
257 "The lower frequency for the spectrum defined by this media
258 channel";
259 }
260
261 leaf upper-frequency {
262 type od-types:dwdm-frequency-ghz;
263 description
264 "The upper frequency for the spectrum defined by this media
265 channel";
266 }
267
268 }
269
270 grouping flex-media-channel-psd-state {
271 description
272 "Operational state data for the media channel PSD";
273
274 leaf actual-lower-frequency {
275 type od-types:dwdm-frequency-ghz;
276 description
277 "Lower frequency of the specified PSD";
278 }
279
280 leaf actual-upper-frequency {
281 type od-types:dwdm-frequency-ghz;
282 description
283 "Upper frequency of the specified PSD";
284 }
285
286 leaf psd {
287 type od-types:optical-psd;
288 units dBm/GHz;
289 description
290 "Power spectral density expressed in nanowatts per
291 megahertz, nW/MHz. These units allow the value to often
292 be greater than 1.0. It also avoids dealing with zero values
293 for 0dBm. For example, a 40GHz wide channel
294 with 0dBm power would be:
295 0dBm = 1mW = 10^6nW
296 40GHz = 40,000MHz
297 0dBm/40GHz = 10^6nW/40,000MHz = 1000/40 = 25";
298 }
299 leaf valid-data {
300 type boolean;
301 description "True if measured values are valid";
302 }
303
304 }
305
306
307 grouping flex-media-channel-psd-top {
308 description
309 "Top-level grouping ";
310
311 container channels {
312 description
313 "Enclosing container for the list of media-channel";
314
315 list channel {
316 key name;
317 description
318 "List describing the PSD distribution";
319
320 leaf name {
321 type leafref {
322 path "../config/name";
323 }
324 description
325 "Reference to the list key";
326 }
327 container config {
328 uses flex-media-channel-psd-config;
329 }
330
331
332
333 container state {
334
335 config false;
336
337 description
338 "Operational state data for PSD";
339 uses flex-media-channel-psd-config;
340
341
342 uses flex-media-channel-psd-state;
343 }
344 uses flex-media-carrier-psd-top;
345
346 }
347 }
348 }
349
350 grouping channel-monitor-config {
351 description
352 "Configuration data for the optical channel monitor";
353
354 leaf name {
355 type string ;
356 description
357 "Reference to the optical channel monitor (OCM) name.
358 ";
359 }
360
361 leaf monitor-port {
362 type string ;
363 description
364 "Reference to the name of the port that the
365 OCM channel monitor is physically connected
366
367 ";
368 }
369 }
370
371 grouping channel-monitor-state {
372 description
373 "Operational state data ";
374 }
375
376 grouping channel-monitor-top {
377 description
378 "Top-level grouping ";
379
380 container channel-monitors {
381 description
382 "Top-level container for optical channel monitors";
383
384 list channel-monitor {
385 key "name monitor-port";
386 description
387 "List of channel monitors, keyed by channel monitor name.";
388
389 leaf name {
390 type leafref {
391 path "../config/name";
392 }
393 description
394 "References the optical channel monitor name";
395 }
396 leaf monitor-port {
397 type leafref {
398 path "../config/monitor-port";
399 }
400 }
401
402
403 container config {
404 description
405 "Configuration data ";
406
407 uses channel-monitor-config;
408 }
409
410 container state {
411
412 config false;
413
414 description
415 "Operational state data ";
416
417 uses channel-monitor-config;
418 uses channel-monitor-state;
419 }
420
421 uses media-channel-psd-top;
422 }
423 }
424 }
425
426 grouping flex-channel-monitor-top {
427 description
428 "Top-level grouping ";
429
430 container flex-channel-monitors {
431 description
432 "Top-level container for optical channel monitors";
433
434 list channel-monitor {
435 key "name monitor-port";
436 description
437 "List of channel monitors, keyed by channel monitor name.";
438
439 leaf name {
440 type leafref {
441 path "../config/name";
442 }
443 description
444 "References the optical channel monitor name";
445 }
446 leaf monitor-port {
447 type leafref {
448 path "../config/monitor-port";
449 }
450 }
451
452
453 container config {
454 description
455 "Configuration data ";
456
457 uses channel-monitor-config;
458 }
459
460 container state {
461
462 config false;
463
464 description
465 "Operational state data ";
466
467 uses channel-monitor-config;
468 uses channel-monitor-state;
469 }
470
471 uses flex-media-channel-psd-top;
472 }
473 }
474 }
475
476 uses channel-monitor-top;
477 uses flex-channel-monitor-top;
478
479
480
481}