Update docs conf.yaml version to Sulfur
[transportpce.git] / ordmodels / device / src / main / yang / org-openroadm-port-capability@2020-05-29.yang
1 module org-openroadm-port-capability {
2   namespace "http://org/openroadm/port-capability";
3   prefix org-openroadm-port-capability;
4
5   import org-openroadm-device {
6     prefix org-openroadm-device;
7     revision-date 2020-05-29;
8   }
9   import org-openroadm-port-types {
10     prefix org-openroadm-port-types;
11     revision-date 2020-03-27;
12   }
13
14   organization
15     "Open ROADM MSA";
16   contact
17     "OpenROADM.org";
18   description
19     "YANG definitions for port capabilities.
20
21      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
22      All other rights reserved.
23
24      Redistribution and use in source and binary forms, with or without modification,
25      are permitted provided that the following conditions are met:
26
27      * Redistributions of source code must retain the above copyright notice, this
28        list of conditions and the following disclaimer.
29      * Redistributions in binary form must reproduce the above copyright notice,
30        this list of conditions and the following disclaimer in the documentation and/or
31        other materials provided with the distribution.
32      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
33        contributors may be used to endorse or promote products derived from this software
34        without specific prior written permission.
35
36      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
37      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
38      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
39      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
40      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
42      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
43      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
44      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
45      POSSIBILITY OF SUCH DAMAGE.
46
47      Also contains code components extracted from IETF Interfaces.  These code components
48      are copyrighted and licensed as follows:
49
50      Copyright (c) 2017 IETF Trust and the persons identified as the document authors.
51      All rights reserved.
52
53      This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
54      to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
55      publication of this document. Please review these documents carefully, as they
56      describe your rights and restrictions with respect to this document. Code Components
57      extracted from this document must include Simplified BSD License text as described in
58      Section 4.e of the Trust Legal Provisions and are provided without warranty as
59      described in the Simplified BSD License.";
60
61   revision 2020-05-29 {
62     description
63       "Version 7.1.0";
64   }
65   revision 2020-03-27 {
66     description
67       "Version 7.0.0";
68   }
69   revision 2019-11-29 {
70     description
71       "Version 6.1.0";
72   }
73   revision 2019-09-27 {
74     description
75       "Version 6.0.0";
76   }
77   revision 2019-05-31 {
78     description
79       "Version 5.1.0";
80   }
81   revision 2019-03-29 {
82     description
83       "Version 5.0.0";
84   }
85   revision 2018-11-30 {
86     description
87       "Version 4.1.0";
88   }
89   revision 2018-09-28 {
90     description
91       "Version 4.0.0";
92   }
93   revision 2018-05-30 {
94     description
95       "Version 3.1.0";
96   }
97   revision 2018-03-30 {
98     description
99       "Version 3.0.0";
100   }
101   revision 2017-12-15 {
102     description
103       "Version 2.2";
104   }
105   revision 2017-09-29 {
106     description
107       "Version 2.1";
108   }
109
110   grouping port-id-grp {
111     leaf circuit-pack-name {
112       type leafref {
113         path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
114       }
115       description
116         "Circuit-Pack identifier. Unique within the context of a device.";
117     }
118     leaf port-name {
119       type leafref {
120         path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports/org-openroadm-device:port-name";
121       }
122       description
123         "Port index identifier. Unique within the context of a circuit-pack.";
124     }
125   }
126
127   grouping slot-id-grp {
128     leaf circuit-pack-name {
129       type leafref {
130         path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
131       }
132       description
133         "Circuit-Pack identifier. Unique within the context of a device.";
134     }
135     leaf slot-name {
136       type leafref {
137         path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:cp-slots/org-openroadm-device:slot-name";
138       }
139       description
140         "cp-slot name. Unique within the context of a circuit-pack.";
141     }
142   }
143
144   grouping optical-operational-modes-grp-for-capability {
145     leaf-list optical-operational-mode-profile-name {
146       type leafref {
147         path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:optical-operational-mode-profile/org-openroadm-device:profile-name";
148       }
149       config false;
150       description
151         "Optical operation capabilities leaf list";
152     }
153     description
154       "Optical operational modes grouping";
155   }
156
157   grouping port-capability-grp {
158     description
159       "OpenROADM port capability parameters.";
160     container port-capabilities {
161       config false;
162       list supported-interface-capability {
163         key "if-cap-type";
164         description
165           "Supported interface capability on the port.";
166         leaf if-cap-type {
167           type identityref {
168             base org-openroadm-port-types:supported-if-capability;
169           }
170           description
171             "Interface type/hierarchy/rate supported on this port";
172         }
173         leaf-list split-lambda-profile-name {
174           type leafref {
175             path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:split-lambda-profile/org-openroadm-device:profile-name";
176           }
177           description
178             "Split lambda mode capabilities";
179         }
180         leaf-list otsigroup-capability-profile-name {
181           type leafref {
182              path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:otsigroup-capability-profile/org-openroadm-device:profile-name";
183           }
184           description
185             "OTSI group capabilities";
186         }
187         uses optical-operational-modes-grp-for-capability;
188         container otn-capability {
189           description
190             "OTN capability";
191           leaf otn-capability-profile-name {
192             type leafref {
193               path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:otn-capability-profile/org-openroadm-device:profile-name";
194             }
195           }
196           list mpdr-client-restriction {
197             description
198               "Restriction rules for how LO ODUs are multiplexed into HO ODU
199                and the relation with mapped client ports.";
200             leaf network-ho-odu-circuit-pack-name {
201               type string;
202               mandatory true;
203               description
204                 "Circuit-Pack identifier. Unique within the context of a device.";
205             }
206             leaf network-ho-odu-port-name {
207               type string;
208               mandatory true;
209               description
210                 "port identifier.";
211             }
212             leaf-list muxp-profile-name {
213               type leafref {
214                 path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:muxp-profile/org-openroadm-device:profile-name";
215               }
216             }
217           }
218           leaf otn-odu-mux-hierarchy-profile-name {
219             type leafref {
220               path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:otn-odu-mux-hierarchy-profile/org-openroadm-device:profile-name";
221             }
222             description
223               "OTN ODU Mux hierarchy capabilities";
224           }
225         }
226         container logical-port {
227           leaf circuit-pack-name {
228             type string;
229             description
230               "The circuit pack supporting the logical port";
231           }
232           leaf port-name {
233             type string;
234             description
235               "Port name for logical-port";
236           }
237           description
238             "Logical port container";
239         }
240       }
241     }
242   }
243
244   grouping port-group-restriction-grp {
245     container port-group-restriction {
246       config false;
247       list port-bandwidth-sharing {
248         key "port-sharing-id";
249         leaf port-sharing-id {
250           type uint16;
251         }
252         list port-list {
253           key "circuit-pack-name port-name";
254           uses port-id-grp;
255         }
256         list pluggable-optics-holder-list {
257           key "circuit-pack-name slot-name";
258           uses slot-id-grp;
259         }
260         leaf shared-bandwidth {
261           type uint16;
262           units "Gbps";
263         }
264         list possible-port-config {
265           key "config-id";
266           leaf config-id {
267             type uint16;
268           }
269           list port-if-type-config {
270             key "circuit-pack-name port-name";
271             uses port-id-grp;
272             leaf-list port-if-type {
273               type identityref {
274                 base org-openroadm-port-types:supported-if-capability;
275               }
276             }
277             leaf otsi-rate {
278               type uint16;
279               units "Gbps";
280               description
281                 "Optical Tributary Signal (OTSi) rate in Gbps";
282             }
283           }
284           list slot-if-type-config {
285             key "circuit-pack-name slot-name port-name";
286             uses slot-id-grp;
287             leaf port-name {
288               type string;
289             }
290             leaf-list port-if-type {
291               type identityref {
292                 base org-openroadm-port-types:supported-if-capability;
293               }
294             }
295             leaf-list port-module-type {
296               type org-openroadm-port-types:port-module-types;
297             }
298             leaf otsi-rate {
299               type uint16;
300               units "Gbps";
301               description
302                 "Optical Tributary Signal (OTSi) rate in Gbps";
303             }
304           }
305         }
306       }
307     }
308   }
309
310   grouping provisioned-port-grp {
311     container provisioned-port-grp {
312       list port-bandwidth-sharing {
313         key "port-sharing-id";
314         leaf port-sharing-id {
315           type uint16;
316         }
317         leaf provisioned-port-config {
318           type uint16;
319           default "1";
320         }
321       }
322     }
323   }
324
325   augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports" {
326     description
327       "augment for port capability";
328     uses port-capability-grp;
329   }
330
331   augment "/org-openroadm-device:org-openroadm-device" {
332     description
333       "augment for port group restriction";
334     uses port-group-restriction-grp;
335   }
336
337   augment "/org-openroadm-device:org-openroadm-device" {
338     description
339       "augment for provisioned port group";
340     uses provisioned-port-grp;
341   }
342 }