blob: e7568b14d6397ddf74ef40a4d67944ba0e576423 [file] [log] [blame]
Marc De Leenheerf20c7fb2017-05-05 10:24:41 -07001module org-openroadm-common-service-types {
2 namespace "http://org/openroadm/common/service/types";
3 prefix org-openroadm-common-service-types;
4
5 import ietf-yang-types {
6 prefix yang;
7 }
8 import ietf-inet-types {
9 prefix inet;
10 }
11 import org-openroadm-routing-constraints {
12 prefix org-openroadm-routing-constraints;
13 }
14 import org-openroadm-topology {
15 prefix org-openroadm-topology;
16 }
17 import org-openroadm-common-types {
18 prefix org-openroadm-common-types;
19 }
20 import org-openroadm-resource-types {
21 prefix org-openroadm-resource-types;
22 }
23
24 organization
25 "Open ROADM MSA";
26 contact
27 "OpenROADM.org";
28 description
29 "YANG definitions of common service types.
30
31 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
32 AT&T Intellectual Property. All other rights reserved.
33
34 Redistribution and use in source and binary forms, with or without modification,
35 are permitted provided that the following conditions are met:
36
37 * Redistributions of source code must retain the above copyright notice, this
38 list of conditions and the following disclaimer.
39 * Redistributions in binary form must reproduce the above copyright notice,
40 this list of conditions and the following disclaimer in the documentation and/or
41 other materials provided with the distribution.
42 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
43 contributors may be used to endorse or promote products derived from this software
44 without specific prior written permission.
45
46 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
47 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
48 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
49 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
50 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
51 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
52 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
53 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
54 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
55 POSSIBILITY OF SUCH DAMAGE";
56
57 revision 2016-10-14 {
58 description
59 "Version 1.2";
60 }
61
62 grouping configuration-response-common {
63 container configuration-response-common {
64 leaf request-id {
65 type string;
66 mandatory true;
67 }
68 leaf response-code {
69 type string;
70 mandatory true;
71 }
72 leaf response-message {
73 type string;
74 }
75 leaf ack-final-indicator {
76 type string;
77 mandatory true;
78 }
79 }
80 }
81
82 grouping response-parameters {
83 container response-parameters {
84 uses org-openroadm-routing-constraints:routing-constraints;
85 }
86 }
87
88 grouping service-endpoint {
89 leaf service-format {
90 type service-format;
91 mandatory true;
92 description
93 "Format of the requested service: Ethernet, OTU, etc.";
94 }
95 leaf service-rate {
96 when "../service-format!='OMS'"{
97 description "service rate not applicable when service
98 format is roadmline";
99 }
100 type uint32;
101 mandatory true;
102 description
103 "Rate of the requested service in GBps";
104 }
105 leaf clli {
106 type string;
107 mandatory true;
108 description
109 "CLLI";
110 }
111 uses org-openroadm-resource-types:device-id;
112 container site;
113 container tx-direction {
114 uses service-port;
115 uses service-lgx;
116 uses service-tail;
117 }
118 container rx-direction {
119 uses service-port;
120 uses service-lgx;
121 uses service-tail;
122 }
123 leaf optic-type {
124 type org-openroadm-common-types:optic-types;
125 }
126 container router {
127 description
128 "Needed for communication with DWDM pluggable";
129 leaf node-id {
130 type string;
131 description
132 "Node id. This is reported against the service, but may not get reflected in the service in the network.";
133 }
134 leaf ip-address {
135 type inet:ip-address;
136 description
137 "Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
138 }
139 leaf url {
140 type string;
141 description
142 "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
143 }
144 }
145 leaf user-label {
146 type string;
147 mandatory false;
148 description
149 "Label for service endpoint, defined by the user";
150 }
151 }
152
153 typedef rpc-actions {
154 description "rpc-actions include all the rpc methods";
155 type enumeration {
156 enum service-create {
157 value "1";
158 }
159 enum service-feasibility-check {
160 value "2";
161 }
162 enum service-delete {
163 value "3";
164 }
165 enum equipment-notification {
166 value "4";
167 }
168 enum temp-service-create {
169 value "5";
170 }
171 enum temp-service-delete {
172 value "6";
173 }
174 enum service-roll {
175 value "7";
176 }
177 enum service-reconfigure {
178 value "8";
179 }
180 enum service-restoration {
181 value "9";
182 }
183 enum service-reversion {
184 value "10";
185 }
186 enum service-reroute {
187 value "11";
188 }
189 enum service-reroute-confirm {
190 value "12";
191 }
192 enum network-re-optimization {
193 value "13";
194 }
195 }
196 }
197
198 grouping sdnc-request-header {
199 container sdnc-request-header {
200 leaf request-id {
201 type string;
202 }
203 leaf rpc-action {
204 type rpc-actions;
205 }
206 leaf notification-url {
207 type string;
208 }
209 leaf request-system-id{
210 type string;
211 }
212 }
213 }
214
215 grouping service-port {
216 container port {
217 leaf port-device-name {
218 type string;
219 }
220 leaf port-type {
221 type string;
222 }
223 leaf port-name {
224 type string;
225 }
226 leaf port-rack {
227 type string;
228 }
229 leaf port-shelf {
230 type string;
231 }
232 leaf port-slot {
233 type string;
234 }
235 leaf port-sub-slot {
236 type string;
237 }
238 }
239 }
240
241 grouping service-lgx {
242 container lgx {
243 leaf lgx-device-name {
244 type string;
245 }
246 leaf lgx-port-name {
247 type string;
248 }
249 leaf lgx-port-rack {
250 type string;
251 }
252 leaf lgx-port-shelf {
253 type string;
254 }
255 }
256 }
257
258 grouping service-tail {
259 container tail {
260 container tail-roadm {
261 description
262 "ROADM on which the transponder is connected to (TID, IP Address,
263 or FQDN)";
264 uses org-openroadm-resource-types:device-id;
265 }
266 container xponder-port {
267 description
268 "Muxponder port used in tail, that will get used as a service endpoint.";
269 leaf circuit-pack-name {
270 type string;
271 }
272 leaf port-name {
273 type string;
274 }
275 }
276 leaf tail-roadm-port-aid {
277 type string;
278 description
279 "This will provide the transponder port needed to inter-city ROADM
280 connection";
281 }
282 leaf tail-roadm-port-rack-location {
283 type string;
284 description
285 "Transponder's location";
286 }
287 }
288 }
289
290 grouping service-information {
291 leaf due-date {
292 type yang:date-and-time;
293 description
294 "Date and time service to be turn up. If time is not specified for a given date, default to midnight. Service turned up immediately if no due date is specified";
295 }
296 leaf end-date {
297 type yang:date-and-time;
298 description
299 "Date and time service to be removed";
300 mandatory false;
301 }
302 leaf nc-code {
303 type string;
304 description
305 "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
306 }
307 leaf nci-code {
308 type string;
309 description
310 "NCI code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
311 }
312 leaf secondary-nci-code {
313 type string;
314 description
315 "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
316 }
317 leaf customer {
318 type string;
319 description
320 "To be included in ticket information.This is reported against the service, but may not get reflected in the service in the network.";
321 }
322 leaf customer-contact {
323 type string;
324 description
325 "Customer contact information To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
326 }
327 leaf operator-contact {
328 type string;
329 description
330 "Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
331 }
332 }
333
334 grouping service {
335 leaf service-name {
336 type string;
337 description
338 "Identifier for the service to be created in
339 the ROADM network, e.g., CLFI, CLCI, etc.";
340 mandatory true;
341 }
342 leaf common-id {
343 type string;
344 description
345 "To be used by the ROADM controller to identify the routing
346 constraints received from planning application (PED).";
347 }
348 uses sdnc-request-header;
349 leaf connection-type {
350 type connection-type;
351 mandatory true;
352 description
353 "Connection type";
354 }
355 leaf lifecycle-state {
356 type org-openroadm-common-types:lifecycle-state;
357 description
358 "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
359 }
360 leaf administrative-state {
361 type org-openroadm-common-types:state;
362 description
363 "Administrative State: Intended state of service";
364 }
365 leaf operational-state {
366 type org-openroadm-common-types:state;
367 config false;
368 description
369 "Operational State: Actual state of service";
370 }
371 leaf condition {
372 type service-condition;
373 description
374 "Service Condition: Additional information about the state of the service. Only sent when applicable.";
375 }
376 container service-a-end {
377 uses service-endpoint;
378 }
379 container service-z-end {
380 uses service-endpoint;
381 }
382 uses org-openroadm-routing-constraints:routing-constraints;
383 uses service-information;
384 leaf latency {
385 type uint32;
386 description
387 "Latency on service";
388 }
389 leaf-list fiber-span-srlgs {
390 type string;
391 description
392 "Shared risk link group identifiers";
393 }
394 list equipment-srgs {
395 key "srg-number";
396 uses org-openroadm-resource-types:srg-number;
397 }
398 leaf-list supporting-service-name {
399 description
400 "The service name that this runs over top. If connection-type is service, then this is the related
401 connection-type = infrastructure service, for example.";
402 type string;
403 }
404 container topology {
405 uses org-openroadm-topology:topology;
406 }
407 }
408
409 grouping service-notification-result {
410 leaf service-name {
411 type string;
412 description
413 "Identifier for the service e.g., CLFI, CLCI, etc.";
414 mandatory true;
415 }
416 leaf actual-date {
417 type yang:date-and-time;
418 description
419 "Actual date and time (if successful)";
420 }
421 }
422
423 typedef service-format {
424 type enumeration {
425 enum "Ethernet" {
426 value 1;
427 }
428 enum "OTU" {
429 value 2;
430 }
431 enum "OC" {
432 value 3;
433 }
434 enum "STM" {
435 value 4;
436 }
437 enum "OMS" {
438 value 5;
439 }
440 enum "ODU" {
441 value 6;
442 }
443 enum "OTM" {
444 value 7;
445 }
446 }
447 }
448
449 typedef service-notification-types {
450 type enumeration {
451 enum "service-create-result" {
452 value 1;
453 }
454 enum "service-reconfigure-result" {
455 value 2;
456 }
457 enum "service-delete-result" {
458 value 3;
459 }
460 enum "service-roll-result" {
461 value 4;
462 }
463 enum "service-revert-result" {
464 value 5;
465 }
466 enum "service-reroute-result" {
467 value 6;
468 }
469 enum "service-restoration-result" {
470 value 7;
471 }
472 }
473 }
474
475 typedef connection-type {
476 type enumeration {
477 enum "service" {
478 value 1;
479 }
480 enum "infrastructure" {
481 value 2;
482 }
483 enum "roadm-line" {
484 value 3;
485 }
486 }
487 }
488
489 typedef service-condition {
490 type enumeration {
491 enum "restored-temporarily" {
492 value 1;
493 }
494 enum "re-routed-temporarily" {
495 value 2;
496 }
497 enum "activated-for-service" {
498 value 3;
499 }
500 enum "activated-for-further-check" {
501 value 4;
502 }
503 enum "activated-for-troubleshooting-failure" {
504 value 5;
505 }
506 }
507 }
508}