1 module org-openroadm-service {
2 namespace "http://org/openroadm/service";
3 prefix org-openroadm-service;
5 import ietf-yang-types {
7 revision-date 2013-07-15;
9 import org-openroadm-routing-constraints {
10 prefix org-openroadm-routing-constraints;
11 revision-date 2019-03-29;
13 import org-openroadm-common-types {
14 prefix org-openroadm-common-types;
15 revision-date 2019-05-31;
17 import org-openroadm-resource-types {
18 prefix org-openroadm-resource-types;
19 revision-date 2018-11-30;
21 import org-openroadm-common-service-types {
22 prefix org-openroadm-common-service-types;
23 revision-date 2019-05-31;
31 "YANG definitions of services.
33 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
34 All other rights reserved.
36 Redistribution and use in source and binary forms, with or without modification,
37 are permitted provided that the following conditions are met:
39 * Redistributions of source code must retain the above copyright notice, this
40 list of conditions and the following disclaimer.
41 * Redistributions in binary form must reproduce the above copyright notice,
42 this list of conditions and the following disclaimer in the documentation and/or
43 other materials provided with the distribution.
44 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
45 contributors may be used to endorse or promote products derived from this software
46 without specific prior written permission.
48 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
49 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
50 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
51 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
52 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
53 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
54 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
55 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
56 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
57 POSSIBILITY OF SUCH DAMAGE";
93 "Version 2.0.1 - added revision-date to imports";
104 grouping service-feasibility-check-inputs {
105 leaf connection-type {
106 type org-openroadm-common-service-types:connection-type;
108 container service-a-end {
109 uses org-openroadm-common-service-types:service-endpoint;
111 container service-z-end {
112 uses org-openroadm-common-service-types:service-endpoint;
114 uses org-openroadm-routing-constraints:routing-constraints;
115 uses org-openroadm-common-service-types:routing-metric;
116 uses org-openroadm-common-service-types:service-resiliency;
117 leaf propose-equipment {
131 "Whether or not this request can propose new equipment that could
132 be used to fulfill this request. If never, the request will just
133 use existing deployed and planned equipment. If ifNeeded, routes using existing equipment
134 will be preferred. If always, a route with proposed equipment shall be returned, if possible";
136 uses org-openroadm-common-service-types:service-information;
139 grouping service-feasibility-check-outputs {
140 uses org-openroadm-common-service-types:response-parameters;
141 container service-a-end {
142 uses org-openroadm-common-service-types:service-endpoint;
143 list equipment-required {
144 key "equipment-identifier";
146 "List of required equipment, including equipment type, state and
148 uses org-openroadm-common-service-types:equipment-info;
151 container service-z-end {
152 uses org-openroadm-common-service-types:service-endpoint;
153 list equipment-required {
154 key "equipment-identifier";
156 "List of required equipment, including equipment type, state and
158 uses org-openroadm-common-service-types:equipment-info;
161 list intermediate-sites {
163 uses org-openroadm-common-service-types:service-endpoint;
164 list equipment-required {
165 key "equipment-identifier";
167 "List of required equipment, including equipment type, state and
168 quantity over entire route of service";
169 uses org-openroadm-common-service-types:equipment-info;
176 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
177 service-rpc-result Notification shall be sent.";
183 "Identifier for the service to be created in
184 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.";
189 "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
191 uses org-openroadm-common-service-types:sdnc-request-header;
192 uses org-openroadm-common-service-types:routing-metric;
193 uses org-openroadm-common-service-types:service-resiliency;
194 leaf connection-type {
195 type org-openroadm-common-service-types:connection-type;
198 container service-a-end {
199 uses org-openroadm-common-service-types:service-endpoint;
201 container service-z-end {
202 uses org-openroadm-common-service-types:service-endpoint;
204 uses org-openroadm-routing-constraints:routing-constraints;
205 uses org-openroadm-common-service-types:service-information;
208 uses org-openroadm-common-service-types:configuration-response-common;
209 uses org-openroadm-common-service-types:response-parameters;
212 rpc service-create-result-notification-request {
214 "This is the callback notification that the controller invokes on the carrier system.";
216 uses org-openroadm-common-service-types:configuration-response-common;
217 uses org-openroadm-common-service-types:service-identifiers-container;
220 uses org-openroadm-common-service-types:configuration-response-common;
223 rpc service-create-complex-result-notification-request {
225 "This is the callback notification that the controller invokes on the carrier system.";
227 uses org-openroadm-common-service-types:configuration-response-common;
228 uses org-openroadm-common-service-types:service-and-supporting-services;
231 uses org-openroadm-common-service-types:configuration-response-common;
234 rpc service-delete-result-notification-request {
236 "This is the callback notification that the controller invokes on the carrier system.";
238 uses org-openroadm-common-service-types:configuration-response-common;
239 uses org-openroadm-common-service-types:service-identifiers-container;
242 uses org-openroadm-common-service-types:configuration-response-common;
245 rpc service-delete-complex-result-notification-request {
247 "This is the callback notification that the controller invokes on the carrier system.";
249 uses org-openroadm-common-service-types:configuration-response-common;
250 uses org-openroadm-common-service-types:service-and-supporting-services;
253 uses org-openroadm-common-service-types:configuration-response-common;
256 rpc service-feasibility-check {
258 "Whether a service was possible to be created, and if so
259 the routing constraints match and the a and z end connection that have
261 Takes a potential service and determines if it is possible in the network
262 using equipment that is installed on the network, formally planned or proposed for planning.
263 No resources are reserved, provisioned or planned as a result of this operation";
269 "To be used by the ROADM controller to identify the routing constraints
270 received from planning application (PED).";
272 uses org-openroadm-common-service-types:sdnc-request-header;
273 uses service-feasibility-check-inputs;
276 uses org-openroadm-common-service-types:configuration-response-common;
277 uses service-feasibility-check-outputs;
280 rpc service-feasibility-check-bulk {
282 "Whether a service was possible to be created, and if so
283 the routing constraints match and the a and z end connection that have
286 Takes a list of potential services and determines if they are possible in the network
287 using equipment that is installed on the network, formally planned or proposed for planning.
288 All services are treated collectively to ensure that a given resource is not used more than once.
289 No resources are reserved, provisioned or planned as a result of this operation";
291 uses org-openroadm-common-service-types:sdnc-request-header;
292 list service-request-list {
297 "To be used by the ROADM controller to identify the routing constraints
298 received from planning application (PED).";
300 uses service-feasibility-check-inputs;
304 uses org-openroadm-common-service-types:configuration-response-common;
305 list service-response-list {
306 uses service-feasibility-check-outputs;
312 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
313 service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
315 uses org-openroadm-common-service-types:sdnc-request-header;
316 container service-delete-req-info {
321 "Identifier for the service to be deleted in
322 the ROADM network, e.g., CLFI, CLCI, etc.";
325 type yang:date-and-time;
327 "date and time service to be turned down. If missing, now.";
329 leaf tail-retention {
334 "tails are left intact ";
347 uses org-openroadm-common-service-types:configuration-response-common;
350 rpc equipment-notification {
352 uses org-openroadm-common-service-types:sdnc-request-header;
357 leaf equipment-name {
360 leaf equipment-type {
364 "The set of valid value is derived from the equipment-type grouping used in the device model.";
366 leaf equipment-vendor {
370 leaf equipment-customer {
373 leaf equipment-clli {
386 uses org-openroadm-common-service-types:configuration-response-common;
389 rpc temp-service-create {
395 "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
397 uses org-openroadm-common-service-types:sdnc-request-header;
398 leaf connection-type {
399 type org-openroadm-common-service-types:connection-type;
402 container service-a-end {
403 uses org-openroadm-common-service-types:service-endpoint;
405 container service-z-end {
406 uses org-openroadm-common-service-types:service-endpoint;
408 uses org-openroadm-routing-constraints:routing-constraints;
409 uses org-openroadm-common-service-types:service-information;
410 uses org-openroadm-common-service-types:routing-metric;
411 uses org-openroadm-common-service-types:service-resiliency;
414 uses org-openroadm-common-service-types:configuration-response-common;
415 uses org-openroadm-common-service-types:response-parameters;
418 rpc temp-service-delete {
426 uses org-openroadm-common-service-types:configuration-response-common;
431 "This rpc can be use to roll a service according to 2 possible options :
432 A new path may (no path pre-calculation) or may not be calculated according
433 to the parameters provided (which includes metrics). If path computation has been triggered
434 and is successful, a new path is provided, and the service can be rolled according to that path.";
440 "Identifier for the service to be rolled in
441 the ROADM network, e.g., CLFI, CLCI, etc.";
444 type yang:date-and-time;
446 "date and time service to be rolled";
448 uses org-openroadm-common-service-types:routing-metric;
451 uses org-openroadm-common-types:rpc-response-status;
454 rpc service-reconfigure {
456 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
457 service-rpc-result Notification shall be sent.";
463 "Existing identifier for the service to be
464 reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
466 leaf new-service-name {
469 "New identifier for the service to be
470 reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
475 "To be used by the ROADM controller to identify the routing
476 constraints received from planning application (PED).";
478 leaf connection-type {
479 type org-openroadm-common-service-types:connection-type;
481 container service-a-end {
482 uses org-openroadm-common-service-types:service-endpoint;
484 container service-z-end {
485 uses org-openroadm-common-service-types:service-endpoint;
487 uses org-openroadm-routing-constraints:routing-constraints;
488 uses org-openroadm-common-service-types:service-information;
489 uses org-openroadm-common-service-types:routing-metric;
490 uses org-openroadm-common-service-types:service-resiliency;
493 uses org-openroadm-common-types:rpc-response-status;
496 rpc service-restoration {
498 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
499 service-rpc-result Notification shall be sent.
500 This rpc can be use to reroute a service according to 2 possible options :
501 \t_Option1 : neither the backup-path-id nor the failure-case-id are provided, a new path shall be
502 calculated according to the parameters provided (which includes metrics). If path computation
503 is successful, a new path is provided, and the service is rerouted according to that path.
504 \t_Option2 : if a backup-path-id or a failure-case-id are provided, the service shall
505 be rerouted according to the corresponding path. If path computation is triggered and successful,
506 a new path is provided, and the service is rerouted according to that path.";
512 "Identifier for the service to be restored in
513 the ROADM network, e.g., CLFI, CLCI, etc.";
520 "A spare regen can be used to restore the
521 service permanently without reverting back to the
527 "a spare regen can be used to restore the
528 service temporarily. The service needs to be reverted
529 back to the original regen transponder";
534 leaf backup-path-id {
539 "When present, states that the service shall be rerouted according to a specific backup path";
541 leaf failure-case-id {
544 "When present, states that the service shall be rerouted according to a specific backup path.
545 This last corresponds to the provided failure case id";
547 uses org-openroadm-common-service-types:routing-metric;
550 uses org-openroadm-common-types:rpc-response-status;
553 rpc service-reversion {
555 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
556 service-rpc-result Notification shall be sent.";
562 "Identifier for the service to be reverted
563 in the ROADM network, e.g., CLFI, CLCI, etc. ";
566 type yang:date-and-time;
568 "date and time service to be reverted";
572 uses org-openroadm-common-types:rpc-response-status;
575 rpc service-reroute {
577 "Whether this request was validated and processed correctly. If successful, it returns the proposed new route.
578 If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
584 "Identifier for the service to be re-routed in
585 the ROADM network, e.g., CLFI, CLCI, etc.";
587 uses org-openroadm-common-service-types:routing-metric;
588 uses org-openroadm-common-service-types:service-resiliency;
591 uses org-openroadm-common-types:rpc-response-status;
592 uses org-openroadm-routing-constraints:routing-constraints;
595 rpc service-reroute-confirm {
597 "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
598 service-rpc-result Notification shall be sent.";
604 "Identifier for the service to be re-routed in
605 the ROADM network, e.g., CLFI, CLCI, etc.";
607 uses org-openroadm-routing-constraints:routing-constraints;
610 uses org-openroadm-common-types:rpc-response-status;
613 rpc network-re-optimization {
618 "Identifier for the service in the ROADM network,
619 e.g., CLFI, CLCI, etc. whose path is to be checked by the RNC
620 for re-optimization";
625 "Services whose A-ends are terminated at the
626 specified office location are to be checked by the RNC for
632 "Services whose Z-ends are terminated at the
633 specified office location are to be checked by the RNC for
639 "Services that are pass-through (either via
640 regen or express) at the specified office location are to
641 be checked by the RNC for re-optimization";
646 "Services that belong to the specified customer
647 are to be checked by the RNC for re-optimization ";
649 uses org-openroadm-common-service-types:routing-metric;
652 uses org-openroadm-common-types:rpc-response-status;
653 leaf optimization-candidate {
658 notification service-rpc-result {
660 "This Notification indicates result of service RPC";
661 leaf notification-type {
662 type org-openroadm-common-service-types:service-notification-types;
664 uses org-openroadm-common-types:rpc-response-status;
665 uses org-openroadm-common-service-types:service-notification-result;
667 notification service-traffic-flow {
669 "This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
674 "Identifier for the service being reported on";
676 leaf version-number {
679 "Identifier for the versioned service";
682 type yang:date-and-time;
684 "Actual date and time traffic started flowing";
687 notification service-notification {
689 "This Notification that a service has been added, modified or removed.
690 A resourceCreation notification shall contain the created service in its entirety.
691 A resourceModified notification shall contain just the modified field, plus the service identifier
692 A resourceDeleted notification shall just contain the service identifier";
693 leaf notificationType {
694 type org-openroadm-resource-types:resource-notification-type;
696 "Whether this notification indicates a service creation, service modification or service deletion.";
698 leaf version-number {
701 "Identifier for the versioned service";
703 uses org-openroadm-common-service-types:service;
705 container service-list {
707 "List of service. Can only be created, deleted, modified, etc. using special RPCs. Will only contain one service with a given name.
708 Does not contain historical (deleted or rather those passed their end time) or draft services. If two services exist with the same
709 name (with non-lapping start-end times for example), this table will contain the current one. If only planned services exist for
710 the name, the one with the earliest start time will be present
714 uses org-openroadm-common-service-types:service;
717 container versioned-service-list {
719 "List of service, regardless of lifecycle state. Can only be created, deleted, modified, etc. using special RPCs. Can report more than one
720 version of a service, if supported by the implementation. May contain deleted services, multiple versions of the same service, as identified
723 key "service-name version-number";
724 leaf version-number {
727 uses org-openroadm-common-service-types:service;
730 container temp-service-list {
732 "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
735 uses org-openroadm-common-service-types:service {
736 refine "service-name" {