Upgrade to OpenROADM 7.1.0 network models
[transportpce.git] / ordmodels / network / src / main / yang / org-openroadm-xponder@2020-05-29.yang
1 module org-openroadm-xponder {
2   yang-version 1.1;
3   namespace "http://org/openroadm/xponder";
4   prefix xpndr;
5
6   import org-openroadm-network-types {
7     prefix org-openroadm-network-types;
8     revision-date 2020-05-29;
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 2020-05-29;
21   }
22   import org-openroadm-otn-common-types {
23     prefix org-openroadm-otn-common-types;
24     revision-date 2020-03-27;
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 2020-05-29 {
65     description
66       "Version 7.1.0";
67   }
68   revision 2020-03-27 {
69     description
70       "Version 7.0.0";
71   }
72   revision 2019-11-29 {
73     description
74       "Version 6.1.0";
75   }
76   revision 2019-09-27 {
77     description
78       "Version 6.0.0";
79   }
80   revision 2019-05-31 {
81     description
82       "Version 5.1.0";
83   }
84   revision 2019-03-29 {
85     description
86       "Version 5.0.0";
87   }
88   revision 2018-11-30 {
89     description
90       "Version 4.1.0";
91   }
92   revision 2018-09-28 {
93     description
94       "Version 4.0.0";
95   }
96   revision 2018-05-30 {
97     description
98       "Version 3.1.0";
99   }
100   revision 2018-03-30 {
101     description
102       "Version 3.0.0";
103   }
104   revision 2017-12-15 {
105     description
106       "Version 2.2";
107   }
108   revision 2017-09-29 {
109     description
110       "Version 2.1";
111   }
112   revision 2017-07-28 {
113     description
114       "Version 2.0.1 - added revision-date to imports";
115   }
116   revision 2017-06-26 {
117     description
118       "Version 2.0";
119   }
120   revision 2016-10-14 {
121     description
122       "Version 1.2";
123   }
124
125   grouping xpdr-node-attributes {
126     leaf customer-code {
127       type string;
128       description
129         "Owner of the xponder";
130     }
131   }
132
133   grouping xpdr-topo-node-attributes {
134     leaf xpdr-number {
135       type uint16;
136     }
137   }
138
139   grouping xpdr-connection-attributes {
140     leaf local-lgx {
141       type string;
142     }
143     leaf rate {
144       type identityref {
145         base org-openroadm-common-optical-channel-types:optical-rate-identity;
146       }
147       description
148         "rate";
149     }
150     leaf modulation-format {
151       type org-openroadm-common-optical-channel-types:modulation-format;
152     }
153     leaf optic {
154       type org-openroadm-common-equipment-types:optic-types;
155     }
156     leaf state {
157       type org-openroadm-common-state-types:state;
158       description
159         "A xponder can be in one of the following
160                  states";
161     }
162   }
163
164   grouping xpdr-port-connection-attributes {
165     container wavelength {
166       uses org-openroadm-network-types:flex-wave;
167     }
168     leaf tail-equipment {
169       type string;
170       description
171         "Type of equipment connected to the tail
172          for example packet box";
173     }
174     leaf tail-equipment-id {
175       type string;
176       description
177         "Identifier of equipment connected to the
178          tail for example client equipement ID";
179     }
180     leaf tail-clfi {
181       type string;
182     }
183   }
184
185   grouping xpdr-otn-tp-attributes {
186     leaf rate {
187       type identityref {
188         base org-openroadm-otn-common-types:odu-rate-identity;
189       }
190       description
191         "rate identity of the ODU. 'identityref' is used
192          to allow to extend for future higher rates";
193     }
194     list odtu-tpn-pool {
195       key "odtu-type";
196       leaf odtu-type {
197         type identityref {
198           base org-openroadm-otn-common-types:odtu-type-identity;
199         }
200         description
201           "ODTU type, part of the MSI (Multiplex Structure Identifier)";
202       }
203       leaf-list tpn-pool {
204         type uint16;
205         description
206           "List of available Tributary Port Number (0-based), part of the MSI";
207       }
208     }
209     leaf-list ts-pool {
210       type uint16;
211       description
212         "List of available Tributary Slots used by port";
213     }
214   }
215
216   grouping xpdr-mode-attributes {
217     container supported-operational-modes {
218       list operational-mode {
219         key "mode-id";
220         description
221           "list of supported operational modes";
222         leaf mode-id {
223           type string;
224           description
225             "Optical profile operational mode identifier";
226         }
227         leaf spectral-width {
228           type org-openroadm-common-optical-channel-types:frequency-GHz;
229           units "GHz";
230           description
231             "The required minimum signal spectral width of signal at -22 dbm.";
232         }
233       }
234     }
235     leaf operational-mode {
236       type string;
237       config true;
238       description
239         "The provisioned operational-mode of the equipment.";
240     }
241   }
242
243   grouping supported-client-services {
244     container supported-client-services {
245       list supported-client-service {
246         key "service-format";
247         description
248           "Supported Client Services";
249         leaf service-format {
250           type org-openroadm-service-format:service-format;
251           description
252             "Format of the requested service: Ethernet, OTU, etc.";
253         }
254         leaf-list service-rate {
255           type uint32;
256           description
257             "Rate of the requested service in GBps. Not used when service-format=other.";
258         }
259         leaf-list other-service-format-and-rate {
260           type string;
261           description
262             "Used when service-format is set to other in the bookend xponder use case.
263              The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
264              and intended to allow the controller to support non-Open ROADM service formats.
265              This value encodes both the service format and the rate supported.
266              This field should not be specified when service format != other.";
267         }
268       }
269     }
270     uses provisioned-client-service;
271   }
272
273   grouping provisioned-client-service {
274     leaf service-format {
275       type org-openroadm-service-format:service-format;
276       description
277         "Format of the provisioned service: Ethernet, OTU, etc.";
278     }
279     leaf service-rate {
280       type uint32;
281       description
282         "Provisioned rate of the requested service in GBps. Not used when service-format=other.";
283     }
284     leaf other-service-format-and-rate {
285       type string;
286       description
287         "Used when service-format is set to other in the bookend xponder use case.
288          The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
289          and intended to allow the controller to support non-Open ROADM service formats.
290          This value encodes the provisioned service format and the rate supported.
291          This field should not be specified when service format != other.";
292     }
293   }
294 }