Unofficial regenerator capability support in YANG
[transportpce.git] / ordmodels / common / src / main / yang / org-openroadm-port-types@2020-03-27.yang
1 module org-openroadm-port-types {
2   namespace "http://org/openroadm/port/types";
3   prefix org-openroadm-port-types;
4
5   import org-openroadm-common-link-types {
6     prefix org-openroadm-common-link-types;
7     revision-date 2019-11-29;
8   }
9
10   organization
11     "Open ROADM MSA";
12   contact
13     "OpenROADM.org";
14   description
15     "This is a modified version of an Open ROADM MSA official YANG model.
16      It contains an unofficial and additional regen identity 'if-OTUCn-ODUCn-regen'
17      found in some non-compliant devices.
18      Though this identity should have been advertised through a YANG deviation,
19      this does not raise any compatibility problem with compliant devices.
20      This file is an ideally temporary work-around until a compliant solution is found.
21      cf https://jira.opendaylight.org/browse/TRNSPRTPCE-532
22
23      Original YANG model description below:
24      YANG definitions for port types.
25
26      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
27      All other rights reserved.
28
29      Redistribution and use in source and binary forms, with or without modification,
30      are permitted provided that the following conditions are met:
31
32      * Redistributions of source code must retain the above copyright notice, this
33        list of conditions and the following disclaimer.
34      * Redistributions in binary form must reproduce the above copyright notice,
35        this list of conditions and the following disclaimer in the documentation and/or
36        other materials provided with the distribution.
37      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
38        contributors may be used to endorse or promote products derived from this software
39        without specific prior written permission.
40
41      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
42      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
43      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
44      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
45      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
47      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
48      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50      POSSIBILITY OF SUCH DAMAGE.";
51
52   revision 2020-03-27 {
53     description
54       "Version 7.0.0";
55   }
56   revision 2019-11-29 {
57     description
58       "Version 6.1.0";
59   }
60   revision 2019-05-31 {
61     description
62       "Version 5.1.0";
63   }
64   revision 2019-03-29 {
65     description
66       "Version 5.0.0";
67   }
68   revision 2018-11-30 {
69     description
70       "Version 4.1.0";
71   }
72   revision 2018-09-28 {
73     description
74       "Version 4.0.0";
75   }
76   revision 2018-03-30 {
77     description
78       "Version 3.0.0";
79   }
80   revision 2017-12-15 {
81     description
82       "Version 2.2";
83   }
84   revision 2017-09-29 {
85     description
86       "Version 2.1";
87   }
88   revision 2017-07-28 {
89     description
90       "Version 2.0.1 - added revision-date to imports";
91   }
92   revision 2017-06-26 {
93     description
94       "Version 2.0";
95   }
96   revision 2016-10-14 {
97     description
98       "Version 1.2";
99   }
100
101   identity supported-if-capability {
102     description
103       "Base identity from which specific supported interfaces are derived";
104   }
105
106   identity if-100GE {
107     base supported-if-capability;
108   }
109
110   identity if-200GE {
111     base supported-if-capability;
112   }
113
114   identity if-400GE {
115     base supported-if-capability;
116   }
117
118   identity if-OMS {
119     base supported-if-capability;
120   }
121
122   identity if-OTS {
123     base supported-if-capability;
124   }
125
126   identity if-OTS-OMS-MC-NMC {
127     base supported-if-capability;
128   }
129
130   identity if-NMC {
131     base supported-if-capability;
132   }
133
134   identity if-OCH {
135     base supported-if-capability;
136   }
137
138   identity if-1GE {
139     base supported-if-capability;
140   }
141
142   identity if-10GE {
143     base supported-if-capability;
144   }
145
146   identity if-40GE {
147     base supported-if-capability;
148   }
149
150   identity if-OCH-OTU1-ODU1 {
151     base supported-if-capability;
152   }
153
154   identity if-OCH-OTU2-ODU2 {
155     base supported-if-capability;
156   }
157
158   identity if-OCH-OTU2E-ODU2E {
159     base supported-if-capability;
160   }
161
162   identity if-OCH-OTU3-ODU3 {
163     base supported-if-capability;
164   }
165
166   identity if-OCH-OTU4-ODU4 {
167     base supported-if-capability;
168   }
169
170   identity if-OTUCn-ODUCn {
171     base supported-if-capability;
172   }
173
174   identity if-otsi-flexo-flexogroup {
175     base supported-if-capability;
176   }
177
178   identity if-otsi-otsigroup {
179     base supported-if-capability;
180   }
181
182   identity if-n-OTU4-ODU4 {
183     base supported-if-capability;
184   }
185
186   identity if-otsi-otucn-oducn {
187     base supported-if-capability;
188     status obsolete;
189   }
190
191   identity if-OTU4-ODU4 {
192     base supported-if-capability;
193   }
194
195   identity if-OTU1-ODU1 {
196     base supported-if-capability;
197   }
198
199   identity if-OTU2-ODU2 {
200     base supported-if-capability;
201   }
202
203   identity if-OTU2e-ODU2e {
204     base supported-if-capability;
205   }
206
207   identity if-OTU3-ODU3 {
208     base supported-if-capability;
209   }
210
211   identity if-1GE-ODU0 {
212     base supported-if-capability;
213   }
214
215   identity if-10GE-ODU2 {
216     base supported-if-capability;
217   }
218
219   identity if-10GE-ODU2e {
220     base supported-if-capability;
221   }
222
223   identity if-10GE-oduflexgfp {
224     base supported-if-capability;
225   }
226
227   identity if-25GE-oduflexcbr {
228     base supported-if-capability;
229   }
230
231   identity if-40GE-ODU3 {
232     base supported-if-capability;
233   }
234
235   identity if-40GE-oduflexgfp {
236     base supported-if-capability;
237   }
238
239   identity if-100GE-ODU4 {
240     base supported-if-capability;
241   }
242
243   identity if-100GE-oduflexgfp {
244     base supported-if-capability;
245   }
246
247   identity if-200GE-oduflexcbr {
248     base supported-if-capability;
249   }
250
251   identity if-400GE-odufleximp {
252     base supported-if-capability;
253   }
254
255   identity if-400GE-oduflexcbr {
256     base supported-if-capability;
257   }
258
259   identity supported-xpdr-capability {
260     description
261       "Base identity from which specific supported xponder are derived";
262   }
263
264   identity Transponder {
265     base supported-xpdr-capability;
266   }
267
268   identity Regen {
269     base supported-xpdr-capability;
270   }
271
272   identity pluggable-identifiers-identity {
273     description
274       "Pluggable identifiers type";
275   }
276
277   identity SFP {
278     base pluggable-identifiers-identity;
279   }
280
281   identity SFP-plus {
282     base pluggable-identifiers-identity;
283   }
284
285   identity SFP28 {
286     base pluggable-identifiers-identity;
287   }
288
289   identity SFP-DD {
290     base pluggable-identifiers-identity;
291   }
292
293   identity DWDM-SFP {
294     base pluggable-identifiers-identity;
295   }
296
297   identity DWDM-SFP-plus {
298     base pluggable-identifiers-identity;
299   }
300
301   identity QSFP {
302     base pluggable-identifiers-identity;
303   }
304
305   identity QSFP-plus {
306     base pluggable-identifiers-identity;
307   }
308
309   identity QSFP28 {
310     base pluggable-identifiers-identity;
311   }
312
313   identity QSFP28-DD {
314     base pluggable-identifiers-identity;
315   }
316
317   identity QSFP-DD {
318     base pluggable-identifiers-identity;
319   }
320
321   identity micro-QSFP {
322     base pluggable-identifiers-identity;
323   }
324
325   identity OSFP {
326     base pluggable-identifiers-identity;
327   }
328
329   identity CFP {
330     base pluggable-identifiers-identity;
331   }
332
333   identity CFP2 {
334     base pluggable-identifiers-identity;
335   }
336
337   identity CFP4 {
338     base pluggable-identifiers-identity;
339   }
340
341   identity CFP8 {
342     base pluggable-identifiers-identity;
343   }
344
345   identity CFP2-ACO {
346     base pluggable-identifiers-identity;
347   }
348
349   identity CFP2-DCO {
350     base pluggable-identifiers-identity;
351   }
352
353   identity XFP {
354     base pluggable-identifiers-identity;
355   }
356
357   identity SFP56 {
358     base pluggable-identifiers-identity;
359   }
360
361   identity QSFP56 {
362     base pluggable-identifiers-identity;
363   }
364
365   identity QSFP56-DD {
366     base pluggable-identifiers-identity;
367   }
368
369   identity SFP-other {
370     base pluggable-identifiers-identity;
371   }
372
373   identity SFP-unspecified {
374     base pluggable-identifiers-identity;
375   }
376
377   identity pluggable-type-other {
378     base pluggable-identifiers-identity;
379   }
380
381   identity pluggable-type-unspecified {
382     base pluggable-identifiers-identity;
383   }
384   // The following identity is not present in the original Open ROADM MSA YANG model.
385   identity if-OTUCn-ODUCn-regen {
386     base supported-if-capability;
387   }
388
389
390   typedef port-wavelength-types {
391     type enumeration {
392       enum wavelength {
393         value 1;
394         description
395           "Port on a transponder or ROADM SRG add drop";
396       }
397       enum multi-wavelength {
398         value 2;
399         description
400           "External port connecting to other roadm.";
401       }
402     }
403     description
404       "Port types.";
405   }
406
407   typedef port-module-types {
408     type enumeration {
409       enum 100GBASE-LR4 {
410         value 1;
411       }
412       enum CWDM-4 {
413         value 2;
414       }
415     }
416     description
417       "Pluggable modue types.";
418   }
419
420   grouping common-port {
421     leaf port-power-capability-min-rx {
422       type org-openroadm-common-link-types:power-dBm;
423       config false;
424       description
425         "Based on port capabilities, the minimum power in the system spec for this port to
426          provide optimum function in rx direction";
427     }
428     leaf port-power-capability-min-tx {
429       type org-openroadm-common-link-types:power-dBm;
430       config false;
431       description
432         "Based on port capabilities, the minimum power in the system spec for this port to
433          provide optimum function in tx direction.";
434     }
435     leaf port-power-capability-max-rx {
436       type org-openroadm-common-link-types:power-dBm;
437       config false;
438       description
439         "Based on port capabilities, the maximum power in the system spec for this port to
440          provide optimum function in rx direction.";
441     }
442     leaf port-power-capability-max-tx {
443       type org-openroadm-common-link-types:power-dBm;
444       config false;
445       description
446         "Based on port capabilities, the maximum power in the system spec for this port to
447          provide optimum function in tx direction.";
448     }
449   }
450
451   grouping roadm-port {
452     uses common-port;
453   }
454 }