Update docs conf.yaml version to Sulfur
[transportpce.git] / ordmodels / network / src / main / yang / org-openroadm-network-types@2021-12-10.yang
1 module org-openroadm-network-types {
2   yang-version 1.1;
3   namespace "http://org/openroadm/network/types";
4   prefix nt;
5
6   import ietf-yang-types {
7     prefix yang;
8     revision-date 2013-07-15;
9   }
10   import org-openroadm-common-optical-channel-types {
11     prefix org-openroadm-common-optical-channel-types;
12     revision-date 2021-12-10;
13   }
14   import org-openroadm-port-types {
15     prefix org-openroadm-port-types;
16     revision-date 2020-12-11;
17   }
18   import org-openroadm-common-types {
19     prefix org-openroadm-common-types;
20     revision-date 2021-12-10;
21   }
22
23   organization
24     "OPEN ROADM MSA";
25   contact
26     "www.OpenROADM.org.";
27   description
28     "Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
29      All other rights reserved.
30
31      Redistribution and use in source and binary forms, with or without modification,
32      are permitted provided that the following conditions are met:
33
34      * Redistributions of source code must retain the above copyright notice, this
35        list of conditions and the following disclaimer.
36      * Redistributions in binary form must reproduce the above copyright notice,
37        this list of conditions and the following disclaimer in the documentation and/or
38        other materials provided with the distribution.
39      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
40        contributors may be used to endorse or promote products derived from this software
41        without specific prior written permission.
42
43      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
44      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
45      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
46      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
47      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
48      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
49      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
50      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
51      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
52      POSSIBILITY OF SUCH DAMAGE.";
53
54   revision 2021-12-10 {
55     description
56       "Version 10.1";
57   }
58   revision 2021-09-24 {
59     description
60       "Version 10.0";
61   }
62   revision 2021-03-26 {
63     description
64       "Version 9.0";
65   }
66   revision 2020-12-11 {
67     description
68       "Version 8.1";
69   }
70   revision 2020-05-29 {
71     description
72       "Version 7.1.0";
73   }
74   revision 2020-03-27 {
75     description
76       "Version 7.0.0";
77   }
78   revision 2019-11-29 {
79     description
80       "Version 6.1.0";
81   }
82   revision 2019-09-27 {
83     description
84       "Version 6.0.0";
85   }
86   revision 2019-05-31 {
87     description
88       "Version 5.1.0";
89   }
90   revision 2019-03-29 {
91     description
92       "Version 5.0.0";
93   }
94   revision 2018-11-30 {
95     description
96       "Version 4.1.0";
97   }
98   revision 2018-09-28 {
99     description
100       "Version 4.0.0";
101   }
102   revision 2018-05-30 {
103     description
104       "Version 3.1.0";
105   }
106   revision 2018-03-30 {
107     description
108       "Version 3.0.0";
109   }
110   revision 2017-12-15 {
111     description
112       "Version 2.2";
113   }
114   revision 2017-09-29 {
115     description
116       "Version 2.1";
117   }
118   revision 2017-07-28 {
119     description
120       "Version 2.0.1 - added revision-date to imports";
121   }
122   revision 2017-06-26 {
123     description
124       "Version 2.0";
125   }
126
127   typedef openroadm-node-type {
128     type enumeration {
129       enum ROADM {
130         value 1;
131       }
132       enum DEGREE {
133         value 11;
134       }
135       enum SRG {
136         value 12;
137       }
138       enum XPONDER {
139         value 3;
140       }
141       enum EXT-PLUGGABLE {
142         value 4;
143       }
144       enum TPDR {
145         value 13;
146       }
147       enum MUXPDR {
148         value 14;
149       }
150       enum REGEN {
151         value 15;
152       }
153       enum REGEN-UNI {
154         value 16;
155       }
156       enum SWITCH {
157         value 17;
158       }
159     }
160   }
161
162   typedef openroadm-tp-type {
163     type enumeration {
164       enum DEGREE-TX-TTP {
165         value 1;
166       }
167       enum DEGREE-RX-TTP {
168         value 2;
169       }
170       enum DEGREE-TX-CTP {
171         value 3;
172       }
173       enum DEGREE-RX-CTP {
174         value 4;
175       }
176       enum SRG-TX-CP {
177         value 5;
178       }
179       enum SRG-RX-CP {
180         value 6;
181       }
182       enum SRG-TXRX-PP {
183         value 7;
184       }
185       enum SRG-RX-PP {
186         value 8;
187       }
188       enum SRG-TX-PP {
189         value 9;
190       }
191       enum XPONDER-NETWORK {
192         value 10;
193       }
194       enum XPONDER-CLIENT {
195         value 11;
196       }
197       enum EXT-PLUGGABLE-TP {
198         value 12;
199       }
200       enum DEGREE-TXRX-TTP {
201         value 13;
202       }
203       enum SRG-TXRX-CP {
204         value 14;
205       }
206       enum XPONDER-PORT {
207         value 15;
208       }
209       enum DEGREE-TXRX-CTP {
210         value 16;
211       }
212     }
213   }
214
215   typedef openroadm-link-type {
216     type enumeration {
217       enum EXPRESS-LINK {
218         value 1;
219       }
220       enum ADD-LINK {
221         value 2;
222       }
223       enum DROP-LINK {
224         value 3;
225       }
226       enum ROADM-TO-ROADM {
227         value 4;
228       }
229       enum XPONDER-INPUT {
230         value 5;
231       }
232       enum XPONDER-OUTPUT {
233         value 6;
234       }
235       enum OTN-LINK {
236         value 7;
237       }
238     }
239   }
240
241   typedef openroadm-node-connection-status {
242     type enumeration {
243       enum CONNECTED {
244         value 1;
245       }
246       enum CONNECTING {
247         value 2;
248       }
249       enum UNABLE-TO-CONNECT {
250         value 3;
251       }
252     }
253   }
254
255   grouping available-freq-map {
256     list avail-freq-maps {
257       key "map-name";
258       description
259         "Available spectrum information";
260       leaf map-name {
261         type string;
262         description
263           "Identifier of the map. For C-band, recommend map-name = 'cband'";
264       }
265       leaf start-edge-freq {
266         type org-openroadm-common-optical-channel-types:frequency-THz;
267         description
268           "Starting edge frequency (min frequency) for the frequency map. For C-band, the recommendation is start-edge-freq = 191.325 THz";
269       }
270       leaf freq-map-granularity {
271         type org-openroadm-common-optical-channel-types:frequency-GHz;
272         description
273           "frequency granularity of each bit in the bitmap.  For C-band, the recommendation is freq-map-granularity = 6.25 GHz";
274       }
275       leaf effective-bits {
276         type uint16;
277         description
278           "Number of effective bits in the frequency bitmap.  Note the freq-map bitmap will be padded with 0 for byte alignment.";
279       }
280       leaf freq-map {
281         type binary;
282         description
283           "Frequency bitmap.  Setting the value of the binary bit to 1 indicates that the corresponding spectrum is available and
284            setting to 0 indicates the corresponding spectrum is unavailable (used or unsupported).";
285       }
286     }
287   }
288
289   grouping wavelengths {
290     leaf index {
291       type int32;
292       description
293         "Index should be related to the frequency based on the formula 193.1 + index * .00625 THz";
294     }
295     uses flex-wave;
296   }
297
298   grouping flex-wave {
299     leaf frequency {
300       type org-openroadm-common-optical-channel-types:frequency-THz;
301       config true;
302       description
303         "Center Frequency in THz";
304     }
305     leaf width {
306       type org-openroadm-common-optical-channel-types:frequency-GHz;
307       config true;
308       description
309         "Frequency width in GHz.";
310     }
311   }
312
313   grouping type-variety-grp {
314     leaf type-variety {
315       type string;
316       config true;
317       description
318         "Equipment type variety defined by the Open ROADM MSA or by the vendor for bookending applications.
319          This field is used by external path computation tools as a reference in a catalog to get additional
320          information about the equipment’s optical capabilities.";
321     }
322   }
323
324   grouping xpdr-tp-supported-interfaces {
325     list supported-interface-capability {
326       key "if-cap-type";
327       description
328         "Supported interface capability on the port.";
329       leaf if-cap-type {
330         type identityref {
331           base org-openroadm-port-types:supported-if-capability;
332         }
333         description
334           "Interface type/hierarchy/rate supported on this port";
335       }
336     }
337   }
338
339   grouping node-due-date-list {
340     list due-dates {
341       key "id";
342       leaf id {
343         type uint16;
344       }
345       leaf start-date {
346         type yang:date-and-time;
347         description
348           "date and time node will begin maintenance status or date when node is planned";
349       }
350       leaf end-date {
351         type yang:date-and-time;
352         description
353           "date and time node will end maintenance or date when node is deployed";
354       }
355     }
356   }
357
358   grouping link-concatenation {
359     list link-concatenation {
360       key "SRLG-Id";
361       leaf SRLG-Id {
362         type uint32;
363         description
364           "unique identifier for SRLG";
365       }
366       leaf SRLG-length {
367         type decimal64 {
368           fraction-digits 2;
369         }
370         description
371           "Fiber length in desired distance unit of measure";
372       }
373     }
374   }
375
376   grouping SRLG-list{
377     list SRLG-list {
378       key "SRLG-Id";
379       description 
380         "List of all SRLG-Ids. Controller will be responsible to maintain completeness of SRLG-Ids by doing union of 
381          internal and external SRLG information.";
382       leaf SRLG-Id {
383         type uint32;
384         description
385           "unique identifier for SRLG";
386       }
387       leaf SRLG-name {
388         type string;
389         description
390           "Name of the SRLG";
391       }
392       leaf SRLG-type {
393         type org-openroadm-common-types:SRLG-type;
394         description
395           "Type of SRLG, Site SRLG, Node SRLG, Fiber SRLG or Link SRLG";
396       }
397       leaf SRLG-length {
398         type decimal64 {
399           fraction-digits 2;
400         }
401         description
402           "Fiber length in desired distance unit of measure";
403       }
404     }
405   }
406
407   grouping future-SRLGs {
408     list future-SRLGs {
409       key "start-date";
410       description
411         "Start date represents end date for currently active SRLGs. Start date will represent start date for planned SRLGs";
412       leaf start-date {
413         type yang:date-and-time;
414       }
415     }
416   }
417 }