blob: 63dfa8a3c5988827440fff0fbc702a9a924a15d2 [file] [log] [blame]
Marc De Leenheerf20c7fb2017-05-05 10:24:41 -07001module org-openroadm-service {
2 namespace "http://org/openroadm/service";
3 prefix org-openroadm-service;
4
5 import ietf-yang-types {
6 prefix yang;
7 }
8 import org-openroadm-routing-constraints {
9 prefix org-openroadm-routing-constraints;
10 }
11 import org-openroadm-common-types {
12 prefix org-openroadm-common-types;
13 }
14 import org-openroadm-resource-types {
15 prefix org-openroadm-resource-types;
16 }
17 import org-openroadm-common-service-types {
18 prefix org-openroadm-common-service-types;
19 }
20
21 organization
22 "Open ROADM MSA";
23 contact
24 "OpenROADM.org";
25 description
26 "YANG definitions of services.
27
28 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
29 AT&T Intellectual Property. 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 2016-10-14 {
55 description
56 "Version 1.2";
57 }
58
59 rpc service-create {
60 input {
61 leaf service-name {
62 type string;
63 description
64 "Identifier for the service to be created in
65 the ROADM network, e.g., CLFI, CLCI, etc. This is reported against the service, but may not get reflected in the service in the network.";
66 mandatory true;
67 }
68 leaf common-id {
69 type string;
70 description
71 "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
72 }
73 uses org-openroadm-common-service-types:sdnc-request-header;
74 leaf connection-type {
75 type org-openroadm-common-service-types:connection-type;
76 mandatory true;
77 }
78 container service-a-end {
79 uses org-openroadm-common-service-types:service-endpoint;
80 }
81 container service-z-end {
82 uses org-openroadm-common-service-types:service-endpoint;
83 }
84 uses org-openroadm-routing-constraints:routing-constraints;
85 uses org-openroadm-common-service-types:service-information;
86 }
87 output {
88 uses org-openroadm-common-service-types:configuration-response-common;
89 uses org-openroadm-common-service-types:response-parameters;
90 }
91 description
92 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
93 service-rpc-result Notification shall be sent.";
94 }
95 rpc service-feasibility-check {
96 input {
97 leaf common-id {
98 type string;
99 mandatory true;
100 description
101 "To be used by the ROADM controller to identify the routing
102 constraints received from planning application (PED).";
103 }
104 uses org-openroadm-common-service-types:sdnc-request-header;
105 leaf connection-type {
106 type org-openroadm-common-service-types:connection-type;
107 }
108 container service-a-end {
109 uses org-openroadm-common-service-types:service-endpoint;
110 }
111 container service-z-end {
112 uses org-openroadm-common-service-types:service-endpoint;
113 }
114 uses org-openroadm-routing-constraints:routing-constraints;
115 uses org-openroadm-common-service-types:service-information;
116 }
117 output {
118 uses org-openroadm-common-service-types:configuration-response-common;
119 uses org-openroadm-common-service-types:response-parameters;
120 container service-a-end {
121 uses org-openroadm-common-service-types:service-endpoint;
122 list equipment-required {
123 description
124 "List of required equipment, including equipment type and quantity";
125 key "eqipment-identifier";
126 leaf eqipment-identifier {
127 type string;
128 }
129 leaf equipment-type {
130 type string;
131 }
132 leaf equipment-quantity {
133 type uint32;
134 }
135 }
136 }
137 container service-z-end {
138 uses org-openroadm-common-service-types:service-endpoint;
139 list equipment-required {
140 description
141 "List of required equipment, including equipment type and quantity";
142 key "eqipment-identifier";
143 leaf eqipment-identifier {
144 type string;
145 }
146 leaf equipment-type {
147 type string;
148 }
149 leaf equipment-quantity {
150 type uint32;
151 }
152 }
153 }
154 list intermediate-sites {
155 key "clli";
156 uses org-openroadm-common-service-types:service-endpoint;
157 list equipment-required {
158 description
159 "List of required equipment, including equipment type and quantity";
160 key "eqipment-identifier";
161 leaf eqipment-identifier {
162 type string;
163 }
164 leaf equipment-type {
165 type string;
166 }
167 leaf equipment-quantity {
168 type uint32;
169 }
170 }
171 }
172 }
173 description
174 "Whether a service was possible to be created, and if so
175 the routing constraints match and the a and z end connection that have
176 to match";
177 }
178 rpc service-delete {
179 input {
180 uses org-openroadm-common-service-types:sdnc-request-header;
181 container service-delete-req-info {
182 leaf service-name {
183 type string;
184 description
185 "Identifier for the service to be deleted in
186 the ROADM network, e.g., CLFI, CLCI, etc.";
187 mandatory true;
188 }
189 leaf due-date {
190 type yang:date-and-time;
191 description
192 "date and time service to be turned down. If missing, now.";
193 }
194 leaf tail-retention {
195 type enumeration {
196 enum "yes" {
197 value 1;
198 description
199 "tails are left intact ";
200 }
201 enum "no" {
202 value 2;
203 description
204 "tails are deleted";
205 }
206 }
207 mandatory true;
208 }
209 }
210 }
211 output {
212 uses org-openroadm-common-service-types:configuration-response-common;
213 }
214 description
215 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
216 service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
217 }
218 rpc equipment-notification {
219 input {
220 uses org-openroadm-common-service-types:sdnc-request-header;
221 leaf equiptment-id {
222 type string;
223 mandatory true;
224 }
225 leaf equipment-name {
226 type string;
227 }
228 leaf equipemt-type {
229 type string;
230 mandatory true;
231 }
232 leaf equipment-vendor {
233 type string;
234 mandatory true;
235 }
236 leaf equipment-customer {
237 type string;
238 }
239 leaf equipment-clli {
240 type string;
241 mandatory true;
242 }
243 leaf equipment-ip {
244 type string;
245 }
246 leaf controller-id {
247 type string;
248 mandatory true;
249 }
250 }
251 output {
252 uses org-openroadm-common-service-types:configuration-response-common;
253 }
254 }
255 rpc temp-service-create {
256 input {
257 leaf common-id {
258 type string;
259 description
260 "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
261 mandatory true;
262 }
263 uses org-openroadm-common-service-types:sdnc-request-header;
264 leaf connection-type {
265 type org-openroadm-common-service-types:connection-type;
266 mandatory true;
267 }
268 container service-a-end {
269 uses org-openroadm-common-service-types:service-endpoint;
270 }
271 container service-z-end {
272 uses org-openroadm-common-service-types:service-endpoint;
273 }
274 uses org-openroadm-routing-constraints:routing-constraints;
275 uses org-openroadm-common-service-types:service-information;
276 }
277 output {
278 uses org-openroadm-common-service-types:configuration-response-common;
279 uses org-openroadm-common-service-types:response-parameters;
280 }
281 }
282 rpc temp-service-delete {
283 input {
284 leaf common-id {
285 type string;
286 mandatory true;
287 }
288 }
289 output {
290 uses org-openroadm-common-service-types:configuration-response-common;
291 }
292 }
293 rpc service-roll {
294 input {
295 leaf service-name {
296 type string;
297 mandatory true;
298 description
299 "Identifier for the service to be rolled in
300 the ROADM network, e.g., CLFI, CLCI, etc.";
301 }
302 leaf due-date {
303 type yang:date-and-time;
304 description
305 "date and time service to be rolled";
306 }
307 }
308 output {
309 uses org-openroadm-common-types:rpc-response-status;
310 }
311 }
312 rpc service-reconfigure {
313 input {
314 leaf service-name {
315 type string;
316 mandatory true;
317 description
318 "Existing identifier for the service to be
319 reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
320 }
321 leaf new-service-name {
322 type string;
323 description
324 "New identifier for the service to be
325 reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
326 }
327 leaf common-id {
328 type string;
329 description
330 "To be used by the ROADM controller to identify the routing
331 constraints received from planning application (PED).";
332 }
333 leaf connection-type {
334 type org-openroadm-common-service-types:connection-type;
335 }
336 container service-a-end {
337 uses org-openroadm-common-service-types:service-endpoint;
338 }
339 container service-z-end {
340 uses org-openroadm-common-service-types:service-endpoint;
341 }
342 uses org-openroadm-routing-constraints:routing-constraints;
343 uses org-openroadm-common-service-types:service-information;
344 }
345 output {
346 uses org-openroadm-common-types:rpc-response-status;
347 }
348 description
349 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
350 service-rpc-result Notification shall be sent.";
351 }
352 rpc service-restoration {
353 input {
354 leaf service-name {
355 type string;
356 mandatory true;
357 description
358 "Identifier for the service to be restored in
359 the ROADM network, e.g., CLFI, CLCI, etc.";
360 }
361 leaf option {
362 type enumeration {
363 enum "permanent" {
364 value 1;
365 description
366 "A spare regen can be used to restore the
367 service permanently without reverting back to the
368 original regen";
369 }
370 enum "temporary" {
371 value 2;
372 description
373 "a spare regen can be used to restore the
374 service temporarily. The service needs to be reverted
375 back to the original regen transponder";
376 }
377 }
378 mandatory true;
379 }
380 }
381 output {
382 uses org-openroadm-common-types:rpc-response-status;
383 }
384 description
385 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
386 service-rpc-result Notification shall be sent.";
387 }
388 rpc service-reversion {
389 input {
390 leaf service-name {
391 type string;
392 mandatory true;
393 description
394 "Identifier for the service to be reverted
395 in the ROADM network, e.g., CLFI, CLCI, etc. ";
396 }
397 leaf due-date {
398 type yang:date-and-time;
399 description
400 "date and time service to be reverted";
401 }
402 }
403 output {
404 uses org-openroadm-common-types:rpc-response-status;
405 }
406 description
407 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
408 service-rpc-result Notification shall be sent.";
409 }
410 rpc service-reroute {
411 input {
412 leaf service-name {
413 type string;
414 mandatory true;
415 description
416 "Identifier for the service to be re-routed in
417 the ROADM network, e.g., CLFI, CLCI, etc.";
418 }
419 }
420 output {
421 uses org-openroadm-common-types:rpc-response-status;
422 uses org-openroadm-routing-constraints:routing-constraints;
423 }
424 description
425 "Whether this request was validated and processed correct. If sucessful, it return the proposed new route.
426 If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
427 }
428 rpc service-reroute-confirm {
429 input {
430 leaf service-name {
431 type string;
432 mandatory true;
433 description
434 "Identifier for the service to be re-routed in
435 the ROADM network, e.g., CLFI, CLCI, etc.";
436 }
437 uses org-openroadm-routing-constraints:routing-constraints;
438 }
439 output {
440 uses org-openroadm-common-types:rpc-response-status;
441 }
442 description
443 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
444 service-rpc-result Notification shall be sent.";
445 }
446 rpc network-re-optimization {
447 input {
448 leaf service-name {
449 type string;
450 description
451 "Identifier for the service in the ROADM network,
452 e.g., CLFI, CLCI, etc. whose path is to be checked by the RNC
453 for re-optimization";
454 }
455 leaf a-end {
456 type string;
457 description
458 "Services whose A-ends are terminated at the
459 specified office location are to be checked by the RNC for
460 re-optimization";
461 }
462 leaf z-end {
463 type string;
464 description
465 "Services whose Z-ends are terminated at the
466 specified office location are to be checked by the RNC for
467 re-optimization ";
468 }
469 leaf pass-through {
470 type string;
471 description
472 "Services that are pass-through (either via
473 regen or express) at the specified office location are to
474 be checked by the RNC for re-optimization";
475 }
476 leaf customer-code {
477 type string;
478 description
479 "Services that belong to the specified customer
480 are to be checked by the RNC for re-optimization ";
481 }
482 }
483 output {
484 uses org-openroadm-common-types:rpc-response-status;
485 leaf optimization-candidate {
486 type string;
487 }
488 }
489 }
490 container service-list {
491 description
492 "List of service. Can only be created, deleted, modified, etc. using special RPCs.";
493 list services {
494 key "service-name";
495 uses org-openroadm-common-service-types:service;
496 }
497 }
498 container temp-service-list {
499 description
500 "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
501 list services {
502 key "common-id";
503 uses org-openroadm-common-service-types:service {
504 refine "service-name" {
505 mandatory false;
506 }
507 }
508 }
509 }
510 notification service-rpc-result {
511 description
512 "This Notification indicates result of service RPC";
513 leaf notification-type {
514 type org-openroadm-common-service-types:service-notification-types;
515 }
516 uses org-openroadm-common-types:rpc-response-status;
517 uses org-openroadm-common-service-types:service-notification-result;
518 }
519 notification service-traffic-flow {
520 description
521 "This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
522 leaf service-name {
523 type string;
524 description
525 "Identifier for the service being reported on";
526 mandatory true;
527 }
528 leaf actual-date {
529 type yang:date-and-time;
530 description
531 "Actual date and time traffic started flowing";
532 }
533 }
534 notification service-notification {
535 description
536 "This Notification that a service has been added, modified or removed.
537 A resourceCreation notification shall contain the created service in its entirety.
538 A resourceMofified notification shall contain just the modified field, plus the service identifier
539 A resourceDeleted notification shall just contain the service identifier";
540 leaf notificationType {
541 type org-openroadm-resource-types:resource-notification-type;
542 description
543 "Whether this notification indicates a service creation, service modification or service deletion.";
544 }
545 uses org-openroadm-common-service-types:service;
546 }
547}