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