Update docs conf.yaml version to Sulfur
[transportpce.git] / ordmodels / service / src / main / yang / org-openroadm-operational-mode-catalog@2021-12-10.yang
1 module org-openroadm-operational-mode-catalog {
2   namespace "http://org/openroadm/operational-mode-catalog";
3   prefix org-openroadm-operational-mode-catalog;
4
5   import org-openroadm-common-optical-channel-types {
6     prefix org-openroadm-common-optical-channel-types;
7     revision-date 2021-12-10;
8   }
9   import org-openroadm-common-link-types {
10     prefix org-openroadm-common-link-types;
11     revision-date 2019-11-29;
12   }
13   import org-openroadm-common-types {
14     prefix org-openroadm-common-types;
15     revision-date 2021-12-10;
16   }
17
18   organization
19     "Open ROADM MSA";
20   contact
21     "OpenROADM.org";
22   description
23     "YANG definitions of common attributes.
24
25       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
26       All other rights reserved.
27
28       Redistribution and use in source and binary forms, with or without modification,
29       are permitted provided that the following conditions are met:
30
31       * Redistributions of source code must retain the above copyright notice, this
32         list of conditions and the following disclaimer.
33       * Redistributions in binary form must reproduce the above copyright notice,
34         this list of conditions and the following disclaimer in the documentation and/or
35         other materials provided with the distribution.
36       * Neither the Members of the Open ROADM MSA Agreement nor the names of its
37         contributors may be used to endorse or promote products derived from this software
38         without specific prior written permission.
39
40       THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
41       AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
42       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
43       IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
44       INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45       NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
46       OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
47       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
48       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
49       POSSIBILITY OF SUCH DAMAGE";
50
51   revision 2021-12-10 {
52     description
53       "Version 10.1";
54   }
55   revision 2021-09-24 {
56     description
57       "Version 10";
58   }
59
60   typedef impairment-type {
61     type enumeration {
62       enum CD-ps/nm;
63       enum PDL-dB;
64       enum PMD-ps;
65       enum power-dBm;
66       enum cross-talk-total-power-dB;
67       enum colorless-drop-adjacent-channel-crosstalk-GHz;
68     }
69     description
70       "definition of impairment type and unit used in penaty list";
71   }
72
73   grouping operational-mode-grid-parameters {
74     description
75       "main parameters required to describe grid usage";
76     leaf min-central-frequency {
77       type org-openroadm-common-optical-channel-types:frequency-THz;
78       mandatory true;
79       description
80         "min supported frequency";
81     }
82     leaf max-central-frequency {
83       type org-openroadm-common-optical-channel-types:frequency-THz;
84       mandatory true;
85       description
86         "max supported frequency";
87     }
88     leaf central-frequency-granularity {
89       type org-openroadm-common-optical-channel-types:frequency-GHz;
90       mandatory true;
91       description
92         "granularity supported for the central frequency setting";
93     }
94     leaf min-spacing {
95       type org-openroadm-common-optical-channel-types:frequency-GHz;
96       mandatory true;
97       description
98         "minimum spacing required between 2 channels";
99     }
100   }
101
102   grouping operational-mode-roadm-base-parameters {
103     description
104       "main parameters used to qualify amplifier and ROADM (express/add/drop)";
105     leaf per-channel-Pin-min {
106       type org-openroadm-common-link-types:ratio-dB;
107       description
108         "minimum input power";
109     }
110     leaf per-channel-Pin-max {
111       type org-openroadm-common-link-types:ratio-dB;
112       description
113         "maximum output power";
114     }
115     leaf max-introduced-pdl {
116       type org-openroadm-common-link-types:ratio-dB;
117       description
118         "polarization dependent gain/loss";
119     }
120     leaf max-introduced-dgd {
121       type decimal64 {
122         fraction-digits 2;
123       }
124       units "ps/nm";
125       description
126         "Maximum diferential group delay";
127     }
128     leaf max-introduced-cd {
129       type decimal64 {
130         fraction-digits 2;
131       }
132       units "ps";
133       description
134         "Maximum introduced chromatic dispersion";
135     }
136   }
137
138   grouping polynomial-fit {
139         description
140           "polynomial fit used to model noise mask";
141     container osnr-polynomial-fit {
142         description
143           "describe the osnr contribution of amplifier/roadm
144            OSNR (dB/0.1nm) = A*Pin^3+B*Pin^2+C*Pin+D, Pin (dBm) ";
145         leaf A {
146           type decimal64 {
147             fraction-digits 8;
148           }
149           description
150             "A*Pin^3";
151         }
152         leaf B {
153           type decimal64 {
154             fraction-digits 8;
155           }
156           description
157             "B*Pin^2";
158         }
159         leaf C {
160           type decimal64 {
161             fraction-digits 8;
162           }
163           description
164             "C*Pin";
165         }
166         leaf D {
167           type decimal64 {
168             fraction-digits 8;
169           }
170           description
171             "Constant";
172         }
173       }
174   }
175   
176   grouping power-mask {
177     description
178       "describes how power shall be set according preceeding span loss";
179     list mask-power-vs-pin {
180       key "lower-boundary upper-boundary";
181       description
182         "for power range provides C and D parameter : Pout[50GHz BW] (dBm) = C*span-loss (dBm)+ D";
183       leaf lower-boundary {
184         type uint32;
185         description
186           "defines the lower Power boundary for which C & Dparameters apply";
187       }
188       leaf upper-boundary {
189         type uint32;
190         description
191           "defines the upper Power boundary for which C & Dparameters apply";
192       }
193       leaf C {
194         type decimal64 {
195           fraction-digits 8;
196         }
197         description
198           "C*span-loss";
199       }
200       leaf D {
201         type decimal64 {
202           fraction-digits 8;
203         }
204         description
205           "Constant";
206       }
207       leaf fiber-type {
208         type enumeration {
209           enum smf {
210             value 0;
211             description
212               "Single Mode Fiber";
213           }
214           enum eleaf {
215             value 1;
216             description
217               "ELEAF";
218           }
219           enum oleaf {
220             value 2;
221             description
222               "OLEAF";
223           }
224           enum dsf {
225             value 3;
226             description
227               "DSF";
228           }
229           enum truewave {
230             value 4;
231             description
232               "TRUEWAVE Reduced Slope";
233           }
234           enum truewavec {
235             value 5;
236             description
237               "TRUEWAVE Classic";
238           }
239           enum nz-dsf {
240             value 6;
241             description
242               "NZ-DSF";
243           }
244           enum ull {
245             value 7;
246             description
247               "Ultra Low Loss (ULL)";
248           }
249         }
250         description
251           "enumeration of the different existing fiber type";
252       }
253     }
254   }
255
256   grouping operational-mode-roadm-add-parameters {
257     description
258       "includes parameters to be used for specification modeling";
259     container Add {
260       description
261         "add block-specification";
262       list add-openroadm-operational-mode {
263         key "openroadm-operational-mode-id";
264         description
265           "defines the openroadm operational mode pointing to an official specification ";
266         leaf openroadm-operational-mode-id {
267           type string;
268           description
269             "openroadm operational mode which points to a specific spreadsheet of optical specifications";
270         }
271         leaf incremental-osnr {
272                 type org-openroadm-common-link-types:ratio-dB;
273                 description
274                         "incremental osnr considering noisless input at 0dBm";
275         }
276         uses operational-mode-roadm-base-parameters;
277         uses power-mask;
278       }
279     }
280   }
281
282   grouping operational-mode-common-amplifier-drop-parameters {
283     description
284       "includes parameters to be used for specification modeling";
285     list openroadm-operational-mode {
286       key "openroadm-operational-mode-id";
287       description
288         "defines the openroadm operational mode pointing to an official specification ";
289       leaf openroadm-operational-mode-id {
290         type string;
291         description
292           "openroadm operational mode which points to a specific spreadsheet of optical specifications";
293       }
294       uses operational-mode-roadm-base-parameters;
295       uses polynomial-fit;
296       leaf per-channel-Pout-min {
297         type org-openroadm-common-link-types:ratio-dB;
298         description
299           "Minimum output power";
300       }
301       leaf per-channel-Pout-max {
302         type org-openroadm-common-link-types:ratio-dB;
303         description
304           "Maximum output power";
305       }
306     }
307   }
308
309   grouping operational-mode-roadm-drop-parameters {
310     description
311       "includes parameters to be used for specification modeling";
312     container Drop {
313       description
314         "drop block-specification";
315       uses operational-mode-common-amplifier-drop-parameters;
316     }
317   }
318
319   grouping operational-mode-roadm-express-parameters {
320     description
321       "includes parameters to be used for specification modeling";
322     container Express {
323       description
324         "Express specifications";
325       list openroadm-operational-mode {
326         key "openroadm-operational-mode-id";
327         description
328           "defines the openroadm operational mode pointing to an official specification ";
329         leaf openroadm-operational-mode-id {
330           type string;
331           description
332             "openroadm operational mode which points to a specific spreadsheet of optical specifications";
333         }
334         uses operational-mode-roadm-base-parameters;
335         uses polynomial-fit;
336         uses power-mask;
337       }
338     }
339   }
340
341   grouping operational-mode-amplifier-parameters {
342     description
343       "includes parameters to be used for specification modeling";
344     container Amplifier {
345       description
346         "drop block-specification";
347       uses operational-mode-common-amplifier-drop-parameters;
348       leaf min-gain {
349           type org-openroadm-common-link-types:ratio-dB;
350           description
351                   "minimum gain of nominal gain range";
352       }
353       leaf max-gain {
354           type org-openroadm-common-link-types:ratio-dB;
355           description
356                   "maximum gain of nominal gain range";
357       }
358       leaf max-extended-gain {
359           type org-openroadm-common-link-types:ratio-dB;
360           description
361                   "maximum gain of extended gain range";
362       }
363       list mask-gain-ripple-vs-tilt {
364           key "lower-boundary upper-boundary";
365           description
366             "for gain ripple, provides C and D parameter : Max-gain-ripple (dB) = C*target-tilt (dB)+ D.
367                   Tilt applies to extended gain range";
368           leaf lower-boundary {
369             type int32;
370             description
371               "defines the lower tilt boundary for which C & Dparameters apply";
372           }
373           leaf upper-boundary {
374             type int32;
375             description
376               "defines the upper tilt boundary for which C & Dparameters apply";
377           }
378           leaf C {
379             type decimal64 {
380               fraction-digits 2;
381             }
382             description
383               "C*span-loss";
384           }
385           leaf D {
386             type decimal64 {
387               fraction-digits 2;
388             }
389             description
390               "Constant";
391           }
392       }
393     }
394   }
395
396   grouping operational-mode-transponder-parameters {
397     description
398       "describes parameters used to qualify xponders line performances";
399     leaf baud-rate {
400       type decimal64 {
401         fraction-digits 1;
402       }
403       units "Gbauds";
404       description
405         "baud-rate in Gbauds";
406     }
407     leaf line-rate {
408       type decimal64 {
409         fraction-digits 1;
410       }
411       units "Gbps";
412       mandatory true;
413       description
414         "line coding rate in Gbps";
415     }
416     leaf modulation-format {
417       type org-openroadm-common-optical-channel-types:modulation-format;
418       mandatory true;
419       description
420         "modulation format as defined in openroadm";
421     }
422     leaf min-TX-osnr {
423       type org-openroadm-common-link-types:ratio-dB;
424       mandatory true;
425       description
426         "Defined in 0.1 nm @ 193.6 Thz bandwidth";
427     }
428     list TX-OOB-osnr {
429       key "WR-openroadm-operational-mode-id";
430       description
431         "describe noise contribution associated with a specific transponder
432          according to the multiplexing architecture of the SRG it is connected to";
433       leaf WR-openroadm-operational-mode-id {
434         type string;
435         description
436           "openroadm operational mode of the multiplexor which the transponder is connected to";
437       }
438       leaf min-OOB-osnr-multi-channel-value {
439         type org-openroadm-common-link-types:ratio-dB;
440         mandatory true;
441         description
442           "Measured outside +/-150GHz BW, including SMSR, and 15 channels worst case contribution";
443       }
444       leaf min-OOB-osnr-single-channel-value {
445         type org-openroadm-common-link-types:ratio-dB;
446         mandatory true;
447         description
448           "Measured outside +/-150GHz BW, excluding SMSR, single channel";
449       }
450     }
451     list output-power-range {
452       key "WR-openroadm-operational-mode-id";
453       description
454           "describe output power range associated with a specific transponder
455            according to the multiplexing architecture of the SRG it is connected to";
456       leaf WR-openroadm-operational-mode-id {
457         type string;
458         description
459             "openroadm operational mode of the multiplexor which the transponder is connected to";
460       }
461       leaf min-output-power {
462         type org-openroadm-common-link-types:ratio-dB;
463         mandatory true;
464         description
465           "minimum supported output-power";
466       }
467       leaf max-output-power {
468         type org-openroadm-common-link-types:ratio-dB;
469         mandatory true;
470         description
471           "maximum supported output-power";
472       }
473     }
474     leaf min-RX-osnr-tolerance {
475       type org-openroadm-common-link-types:ratio-dB;
476       mandatory true;
477       description
478         "Defined in 0.1 nm @ 193.6 Thz bandwidth";
479     }
480     leaf min-input-power-at-RX-osnr {
481       type org-openroadm-common-link-types:ratio-dB;
482       mandatory true;
483       description
484         "minimum input-power for given osnr tolerance";
485     }
486     leaf max-input-power {
487       type org-openroadm-common-link-types:ratio-dB;
488       mandatory true;
489       description
490         "maximum supported intput-power causing either an overload or the damage of the receiver";
491     }
492     leaf channel-width {
493         type org-openroadm-common-optical-channel-types:frequency-GHz;
494         description
495                 "-20 dB channel width, required for target power calculation";
496     }
497     leaf fec-type {
498         type identityref {
499            base org-openroadm-common-types:fec-identity;
500         }
501         description
502           "fec type";
503     }
504     leaf min-roll-off {
505       type decimal64 {
506         fraction-digits 2;
507       }
508       units "dB/decade";
509       description
510         "Minimum Roll-off factor";
511     }
512     leaf max-roll-off {
513       type decimal64 {
514         fraction-digits 2;
515         }
516       units "dB/decade";
517       description
518         "Maximum Roll-off factor";
519     }    
520     list penalties {
521       key "parameter-and-unit up-to-boundary";
522       description
523         "Penalties includes contributions from different impairments including
524          cd, pmd, low RX Power, pdl,...";
525       leaf parameter-and-unit {
526         type impairment-type;
527         description
528           "impairment leading to the penalty";
529       }
530       leaf up-to-boundary {
531             type decimal64 {
532           fraction-digits 2;
533         }
534         description
535           "defines the upper (for positive values) and lower (for negative values)
536            limit for which the penalty value is valid";
537       }
538       leaf penalty-value {
539         type org-openroadm-common-link-types:ratio-dB;
540         description
541           "defined penalty in dB";
542       }
543     }
544   }
545
546   grouping operational-mode-catalog {
547     description
548       "this catalog is used to store data related to operational modes and related specifications
549        for OpenROADM operational modes this allows translating official specifications
550        for other Operational modes this provides the controller with the specifications
551        of bookended/alien transponders
552        The catalog shall be fed using operational-mode-setting rpc";
553     container openroadm-operational-modes {
554       description
555         "All operational modes corresponding to official OpenROAM specifications";
556       container grid-parameters {
557         description
558           "Parameters associated with global spectrum use";
559         uses operational-mode-grid-parameters;
560       }
561       container xponders-pluggables {
562           presence "Container includes mandatory nodes but may however not be present 
563                   in the rpc used to feed the catalog (merge operation)";
564           description
565               "Parameters associated with xponders and pluggables";
566         list xponder-pluggable-openroadm-operational-mode {
567           key "openroadm-operational-mode-id";
568           description
569             "defines the openroadm operational mode pointing to an official specification ";
570           leaf openroadm-operational-mode-id {
571             type string;
572             description
573               "openroadm operational mode which points to a specific spreadsheet of optical specifications";
574           }          
575           uses operational-mode-transponder-parameters;
576         }
577       }
578       container roadms {
579         description
580           "Parameters associated with roadms";
581         uses operational-mode-roadm-express-parameters;
582         uses operational-mode-roadm-add-parameters;
583         uses operational-mode-roadm-drop-parameters;
584       }
585       container amplifiers {
586         description
587           "Parameters associated with amplifiers";
588         uses operational-mode-amplifier-parameters;
589       }
590     }
591     container specific-operational-modes {
592       description
593         "All specific operational modes corresponding to bookended or alien units";
594       list specific-operational-mode {
595         key "operational-mode-id";
596         description
597           "List of all declared specific operationnal modes";
598         leaf operational-mode-id {
599           type string;
600           description
601             "unique identifier which identifies the operational mode";
602         }
603         leaf originator {
604                 type string;
605                 description
606                         "identifies the system vendor which originated associated specification";
607         }
608         leaf sponsor {
609                 type string;
610                 description
611                         "identifies the service provider which reviewed and sponsored associated specification";
612         }
613         uses operational-mode-grid-parameters;
614         uses operational-mode-transponder-parameters;
615         leaf configurable-output-power {
616                 type boolean;
617                 mandatory true;
618                 description
619                         "defines whether the output power can be set or not";
620         }
621       }
622     }
623   }
624 }