23a18d4e276d7ebed0a87e215c2737224cb95d39
[transportpce.git] / ordmodels / network / src / main / yang / org-openroadm-xponder@2021-12-10.yang
1 module org-openroadm-xponder {
2   yang-version 1.1;
3   namespace "http://org/openroadm/xponder";
4   prefix xpdr;
5
6   import org-openroadm-network-types {
7     prefix org-openroadm-network-types;
8     revision-date 2021-12-10;
9   }
10   import org-openroadm-common-equipment-types {
11     prefix org-openroadm-common-equipment-types;
12     revision-date 2019-11-29;
13   }
14   import org-openroadm-common-state-types {
15     prefix org-openroadm-common-state-types;
16     revision-date 2019-11-29;
17   }
18   import org-openroadm-common-optical-channel-types {
19     prefix org-openroadm-common-optical-channel-types;
20     revision-date 2021-12-10;
21   }
22   import org-openroadm-otn-common-types {
23     prefix org-openroadm-otn-common-types;
24     revision-date 2021-09-24;
25   }
26   import org-openroadm-service-format {
27     prefix org-openroadm-service-format;
28     revision-date 2019-11-29;
29   }
30
31   organization
32     "OPEN ROADM MSA";
33   contact
34     "OpenROADM.org.";
35   description
36     "YANG definitions for xponder
37
38      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
39      All other rights reserved.
40
41      Redistribution and use in source and binary forms, with or without modification,
42      are permitted provided that the following conditions are met:
43
44      * Redistributions of source code must retain the above copyright notice, this
45        list of conditions and the following disclaimer.
46      * Redistributions in binary form must reproduce the above copyright notice,
47        this list of conditions and the following disclaimer in the documentation and/or
48        other materials provided with the distribution.
49      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
50        contributors may be used to endorse or promote products derived from this software
51        without specific prior written permission.
52
53      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
54      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
55      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
56      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
57      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
58      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
59      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
60      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
61      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
62      POSSIBILITY OF SUCH DAMAGE.";
63
64   revision 2021-12-10 {
65     description
66       "Version 10.1";
67   }
68   revision 2021-09-24 {
69     description
70       "Version 10.0";
71   }
72   revision 2021-03-26 {
73     description
74       "Version 9.0";
75   }
76   revision 2020-12-11 {
77     description
78       "Version 8.1";
79   }
80   revision 2020-05-29 {
81     description
82       "Version 7.1.0";
83   }
84   revision 2020-03-27 {
85     description
86       "Version 7.0.0";
87   }
88   revision 2019-11-29 {
89     description
90       "Version 6.1.0";
91   }
92   revision 2019-09-27 {
93     description
94       "Version 6.0.0";
95   }
96   revision 2019-05-31 {
97     description
98       "Version 5.1.0";
99   }
100   revision 2019-03-29 {
101     description
102       "Version 5.0.0";
103   }
104   revision 2018-11-30 {
105     description
106       "Version 4.1.0";
107   }
108   revision 2018-09-28 {
109     description
110       "Version 4.0.0";
111   }
112   revision 2018-05-30 {
113     description
114       "Version 3.1.0";
115   }
116   revision 2018-03-30 {
117     description
118       "Version 3.0.0";
119   }
120   revision 2017-12-15 {
121     description
122       "Version 2.2";
123   }
124   revision 2017-09-29 {
125     description
126       "Version 2.1";
127   }
128   revision 2017-07-28 {
129     description
130       "Version 2.0.1 - added revision-date to imports";
131   }
132   revision 2017-06-26 {
133     description
134       "Version 2.0";
135   }
136   revision 2016-10-14 {
137     description
138       "Version 1.2";
139   }
140
141   grouping xpdr-node-attributes {
142     leaf customer-code {
143       type string;
144       description
145         "Owner of the xponder";
146     }
147   }
148
149   grouping xpdr-topo-node-attributes {
150     leaf xpdr-number {
151       type uint16;
152     }
153   }
154
155   grouping xpdr-connection-attributes {
156     leaf local-lgx {
157       type string;
158     }
159     leaf rate {
160       type identityref {
161         base org-openroadm-common-optical-channel-types:optical-rate-identity;
162       }
163       description
164         "rate";
165     }
166     leaf modulation-format {
167       type org-openroadm-common-optical-channel-types:modulation-format;
168     }
169     leaf optic {
170       type org-openroadm-common-equipment-types:optic-types;
171     }
172     leaf state {
173       type org-openroadm-common-state-types:state;
174       description
175         "A xponder can be in one of the following
176                  states";
177     }
178   }
179
180   grouping xpdr-port-connection-attributes {
181     container wavelength {
182       uses org-openroadm-network-types:flex-wave;
183     }
184     leaf tail-equipment {
185       type string;
186       description
187         "Type of equipment connected to the tail
188          for example packet box";
189     }
190     leaf tail-equipment-id {
191       type string;
192       description
193         "Identifier of equipment connected to the
194          tail for example client equipement ID";
195     }
196     leaf tail-clfi {
197       type string;
198     }
199   }
200
201   grouping xpdr-otn-tp-attributes {
202     leaf rate {
203       type identityref {
204         base org-openroadm-otn-common-types:odu-rate-identity;
205       }
206       description
207         "rate identity of the ODU. 'identityref' is used
208          to allow to extend for future higher rates";
209     }
210     list odtu-tpn-pool {
211       key "odtu-type";
212       leaf odtu-type {
213         type identityref {
214           base org-openroadm-otn-common-types:odtu-type-identity;
215         }
216         description
217           "ODTU type, part of the MSI (Multiplex Structure Identifier)";
218       }
219       leaf-list tpn-pool {
220         type uint16;
221         description
222           "List of available Tributary Port Number (0-based), part of the MSI";
223       }
224     }
225     leaf-list ts-pool {
226       type uint16;
227       description
228         "List of available Tributary Slots used by port";
229     }
230     leaf-list opucn-ts-pool {
231       type org-openroadm-otn-common-types:opucn-trib-slot-def;
232       description
233         "List of available OPUCn Tributary Slots used by port";
234     }
235   }
236
237   grouping xpdr-mode-attributes {
238     container supported-operational-modes {
239       list operational-mode {
240         key "mode-id";
241         description
242           "list of supported operational modes";
243         leaf mode-id {
244           type string;
245           description
246             "Optical profile operational mode identifier";
247         }
248         leaf spectral-width {
249           type org-openroadm-common-optical-channel-types:frequency-GHz;
250           units "GHz";
251           description
252             "The required minimum signal spectral width of signal at -22 dbm.";
253         }
254       }
255     }
256     leaf operational-mode {
257       type string;
258       config true;
259       description
260         "The provisioned operational-mode of the equipment.";
261     }
262   }
263
264   grouping supported-client-services {
265     container supported-client-services {
266       list supported-client-service {
267         key "service-format";
268         description
269           "Supported Client Services";
270         leaf service-format {
271           type org-openroadm-service-format:service-format;
272           description
273             "Format of the requested service: Ethernet, OTU, etc.";
274         }
275         leaf-list service-rate {
276           type uint32;
277           description
278             "Rate of the requested service in GBps. Not used when service-format=other.";
279         }
280         leaf-list other-service-format-and-rate {
281           type string;
282           description
283             "Used when service-format is set to other in the bookend xponder use case.
284              The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
285              and intended to allow the controller to support non-Open ROADM service formats.
286              This value encodes both the service format and the rate supported.
287              This field should not be specified when service format != other.";
288         }
289       }
290     }
291     uses provisioned-client-service;
292   }
293
294   grouping provisioned-client-service {
295     leaf service-format {
296       type org-openroadm-service-format:service-format;
297       description
298         "Format of the provisioned service: Ethernet, OTU, etc.";
299     }
300     leaf service-rate {
301       type uint32;
302       description
303         "Provisioned rate of the requested service in GBps. Not used when service-format=other.";
304     }
305     leaf other-service-format-and-rate {
306       type string;
307       description
308         "Used when service-format is set to other in the bookend xponder use case.
309          The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
310          and intended to allow the controller to support non-Open ROADM service formats.
311          This value encodes the provisioned service format and the rate supported.
312          This field should not be specified when service format != other.";
313     }
314   }
315 }