--- /dev/null
+module org-openroadm-service {
+ yang-version 1.1;
+ namespace "http://org/openroadm/service";
+ prefix org-openroadm-service;
+
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+ import org-openroadm-routing-constraints {
+ prefix org-openroadm-routing-constraints;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-common-types {
+ prefix org-openroadm-common-types;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-resource-types {
+ prefix org-openroadm-resource-types;
+ revision-date 2021-09-24;
+ }
+ import org-openroadm-resource {
+ prefix org-openroadm-resource;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-common-service-types {
+ prefix org-openroadm-common-service-types;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-controller-customization {
+ prefix org-openroadm-controller-customization;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-topology {
+ prefix org-openroadm-topology;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-operational-mode-catalog {
+ prefix org-openroadm-operational-mode-catalog;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-common-optical-channel-types {
+ prefix org-openroadm-common-optical-channel-types;
+ revision-date 2021-12-10;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of services.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2021-12-10 {
+ description
+ "Version 10.1";
+ }
+ revision 2021-09-24 {
+ description
+ "Version 10.0";
+ }
+ revision 2021-05-28 {
+ description
+ "Version 9.1";
+ }
+ revision 2021-03-26 {
+ description
+ "Version 9.0";
+ }
+ revision 2020-12-11 {
+ description
+ "Version 8.1";
+ }
+ revision 2020-09-25 {
+ description
+ "Version 8.0";
+ }
+ revision 2020-05-29 {
+ description
+ "Version 7.1.0";
+ }
+ revision 2020-03-27 {
+ description
+ "Version 7.0.0";
+ }
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-05-30 {
+ description
+ "Version 3.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ grouping proposed-equipment-g {
+ leaf propose-equipment {
+ type enumeration {
+ enum never {
+ value 1;
+ }
+ enum ifNeeded {
+ value 2;
+ }
+ enum always {
+ value 3;
+ }
+ }
+ default "ifNeeded";
+ description
+ "Whether or not this request can propose new equipment that could
+ be used to fulfill this request. If never, the request will just
+ use existing deployed and planned equipment. If ifNeeded, routes using existing equipment
+ will be preferred. If always, a route with proposed equipment shall be returned, if possible";
+ }
+ }
+
+ grouping service-feasibility-check-inputs {
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ uses proposed-equipment-g;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ container requesting-interface-properties {
+ when "../../connection-type = 'optical-tunnel'" {
+ description
+ "an optical-tunnel service creation request triggers a container
+ that includes the description of the characteristics of the
+ external optical transceiver handled by a 3rd party controller";
+ }
+ uses org-openroadm-common-service-types:external-interface-characteristics;
+ }
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ container requesting-interface-properties {
+ when "../../connection-type = 'optical-tunnel'" {
+ description
+ "an optical-tunnel service creation request triggers a container
+ that includes the description of the characteristics of the
+ external optical transceiver handled by a 3rd party controller";
+ }
+ uses org-openroadm-common-service-types:external-interface-characteristics;
+ }
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ uses org-openroadm-common-service-types:max-regeneration-options;
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+
+ grouping service-feasibility-check-outputs {
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ uses proposed-equipment-g;
+ uses org-openroadm-common-service-types:service-information;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ list equipment-required {
+ key "equipment-identifier";
+ description
+ "List of required equipment, including equipment type, state and
+ quantity";
+ uses org-openroadm-common-service-types:equipment-info;
+ }
+ container expected-settings-and-performances {
+ when "(../../connection-type = 'optical-tunnel' or ../../connection-type = 'infrastructure')" {
+ description
+ "Performances and settings are provided for wavelength services
+ whether they are based on end to end services or optical-tunnels";
+ }
+ uses org-openroadm-resource:common-och-otsi-attributes;
+ uses org-openroadm-resource:path-computation-outputs;
+ }
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ list equipment-required {
+ key "equipment-identifier";
+ description
+ "List of required equipment, including equipment type, state and
+ quantity";
+ uses org-openroadm-common-service-types:equipment-info;
+ }
+ container expected-settings-and-performances {
+ when "(../../connection-type = 'optical-tunnel' or ../../connection-type = 'infrastructure')" {
+ description
+ "Performances and settings are provided for wavelength services
+ whether they are based on end to end services or optical-tunnels";
+ }
+ uses org-openroadm-resource:common-och-otsi-attributes;
+ uses org-openroadm-resource:path-computation-outputs;
+ }
+ }
+ uses org-openroadm-common-service-types:intermediate-site-container;
+ container requested-service-topology {
+ description
+ "This corresponds to the topology of the service requested. Includes all the
+ containers: topology, backup topology, network topology, and
+ network backup-topology";
+ container topology {
+ description
+ "topology corresponds to working-path which is the default path. It defines the initial path
+ to which services defined as revertive may revert to when the failure condition disappear";
+ uses org-openroadm-topology:topology;
+ }
+ container backup-topology {
+ list backup-path {
+ key "backup-path-id";
+ leaf backup-path-id {
+ type uint8 {
+ range "1..255";
+ }
+ description
+ "Several backup paths may be used when backup-paths are pre-calculated.
+ Backup-path-id avoids 0 which is associated with working path in current-active-path";
+ }
+ leaf failure-case-id {
+ type string;
+ description
+ "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
+ }
+ uses org-openroadm-topology:topology;
+ }
+ }
+ container network-topology {
+ uses org-openroadm-topology:network-topology;
+ }
+ container network-backup-topology {
+ list backup-path {
+ key "backup-path-id";
+ leaf backup-path-id {
+ type uint8 {
+ range "1..255";
+ }
+ description
+ "Several backup paths may be used when backup-paths are pre-calculated.
+ Backup-path-id avoids 0 which is associated with working path in current-active-path";
+ }
+ leaf failure-case-id {
+ type string;
+ description
+ "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
+ }
+ uses org-openroadm-topology:network-topology;
+ }
+ }
+ }
+ list supporting-service-hierarchy {
+ key "service-identifier";
+ description
+ "This lists all the supporting services and their respective hierarchy, includes the
+ proposed one";
+ uses org-openroadm-common-service-types:service-hierarchy;
+ }
+ uses service-path-metrics;
+ uses org-openroadm-common-service-types:max-regeneration-options;
+ uses org-openroadm-common-service-types:regeneration-option-list;
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+
+ grouping service-path-metrics {
+ container primary-path-metrics {
+ description
+ "These service metrics are associated with primary
+ service path";
+ uses service-metrics;
+ }
+ list backup-path-metrics {
+ key "backup-path-id";
+ description
+ "These service metrics are associated with the backup
+ service path";
+ leaf backup-path-id {
+ type uint8 {
+ range "1..255";
+ }
+ description
+ "Unique identifier for the backup service path";
+ }
+ uses service-metrics;
+ }
+ }
+
+ grouping service-metrics {
+ container service-metrics {
+ description
+ "All the metrics associated with end-to-end service feasibility
+ This container will have all the metrics that have'max' contraint in
+ org-openroadm-routing-constraints";
+ leaf latency {
+ description
+ "Provides one-way end-to-end latency (in milliseconds) of a service-path;
+ It can be measured or estimated";
+ type decimal64 {
+ fraction-digits 3;
+ }
+ units "milliseconds";
+ }
+ leaf distance {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "km";
+ description
+ "Provides end-to-end distance of a service-path";
+ }
+ container hop-count {
+ description
+ "Maximum hops allowed";
+ leaf wdm-hop-count {
+ type uint8;
+ }
+ leaf otn-hop-count {
+ type uint8;
+ }
+ }
+ container TE-metric {
+ description
+ "Maximum cost allowed";
+ leaf wdm-TE-metric {
+ type uint32;
+ }
+ leaf otn-TE-metric {
+ type uint32;
+ }
+ }
+ }
+ }
+
+ rpc service-create {
+ description
+ "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+ service-rpc-result Notification shall be sent.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be created in
+ 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.";
+ }
+ leaf common-id {
+ type string;
+ description
+ "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:service-order;
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:response-parameters;
+ }
+ }
+
+ rpc service-create-bulk {
+ description
+ "Whether this request passed initial validation and was accepted for processing.
+ Once the request completes processing, a service-rpc-result Notification shall be
+ sent. This is 'all' or 'nothing' operation, which means that either all services
+ are created or none of them will be created.";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ list service-request-list {
+ key "service-name";
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be created in
+ 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.";
+ }
+ leaf common-id {
+ type string;
+ description
+ "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:service-order;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ list service-response-list {
+ key "service-name";
+ leaf service-name {
+ type string;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:response-parameters;
+ }
+ }
+ }
+
+ rpc temp-service-create-bulk {
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ list service-request-list {
+ key "common-id";
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "To be used by the ROADM controller to identify the routing constraints
+ received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:service-order;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ list service-response-list {
+ key "common-id";
+ leaf common-id {
+ type string;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:response-parameters;
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+ }
+ }
+
+ rpc service-create-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ uses service-path-metrics;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-create-complex-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-and-supporting-services;
+ uses service-path-metrics;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-delete-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-delete-complex-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-and-supporting-services;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-feasibility-check {
+ description
+ "Whether a service was possible to be created, and if so
+ the routing constraints match and the a and z end connection that have
+ to match
+ Takes a potential service and determines if it is possible in the network
+ using equipment that is installed on the network, formally planned or proposed for planning.
+ No resources are reserved, provisioned or planned as a result of this operation";
+ input {
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "To be used by the ROADM controller to identify the routing constraints
+ received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses service-feasibility-check-inputs;
+ }
+ output {
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "To be used by the ROADM controller to identify the routing constraints
+ received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:response-parameters;
+ uses service-feasibility-check-outputs;
+ }
+ }
+
+ rpc service-feasibility-check-bulk {
+ description
+ "Whether a service was possible to be created, and if so
+ the routing constraints match and the a and z end connection that have
+ to match
+
+ Takes a list of potential services and determines if they are possible in the network
+ using equipment that is installed on the network, formally planned or proposed for planning.
+ All services are treated collectively to ensure that a given resource is not used more than once.
+ No resources are reserved, provisioned or planned as a result of this operation";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ list service-request-list {
+ key "common-id";
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "To be used by the ROADM controller to identify the routing constraints
+ received from planning application (PED).";
+ }
+ uses service-feasibility-check-inputs;
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ list service-response-list {
+ key "common-id";
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "To be used by the ROADM controller to identify the routing constraints
+ received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:response-parameters;
+ uses service-feasibility-check-outputs;
+ }
+ }
+ }
+
+ rpc service-delete {
+ description
+ "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+ service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ container service-delete-req-info {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be deleted in
+ the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf due-date {
+ type yang:date-and-time;
+ description
+ "date and time service to be turned down. If missing, now.";
+ }
+ leaf tail-retention {
+ type enumeration {
+ enum yes {
+ value 1;
+ description
+ "tails are left intact ";
+ }
+ enum no {
+ value 2;
+ description
+ "tails are deleted";
+ }
+ }
+ mandatory true;
+ }
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc equipment-notification {
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ leaf equipment-id {
+ type string;
+ mandatory true;
+ }
+ leaf equipment-name {
+ type string;
+ }
+ leaf equipment-type {
+ type string;
+ mandatory true;
+ description
+ "The set of valid value is derived from the equipment-type grouping used in the device model.";
+ }
+ leaf equipment-vendor {
+ type string;
+ mandatory true;
+ }
+ leaf equipment-customer {
+ type string;
+ }
+ leaf equipment-clli {
+ type string;
+ mandatory true;
+ }
+ leaf equipment-ip {
+ type string;
+ }
+ leaf controller-id {
+ type string;
+ mandatory true;
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc temp-service-create {
+ input {
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:service-order;
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ container requesting-interface-properties {
+ when "../../connection-type = 'optical-tunnel'" {
+ description
+ "an optical-tunnel service creation request triggers a container
+ that includes the description of the characteristics of the
+ external optical transceiver handled by a 3rd party controller";
+ }
+ uses org-openroadm-common-service-types:external-interface-characteristics;
+ }
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ container requesting-interface-properties {
+ when "../../connection-type = 'optical-tunnel'" {
+ description
+ "an optical-tunnel service creation request triggers a container
+ that includes the description of the characteristics of the
+ external optical transceiver handled by a 3rd party controller";
+ }
+ uses org-openroadm-common-service-types:external-interface-characteristics;
+ }
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:response-parameters;
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+ }
+
+ rpc temp-service-delete {
+ input {
+ leaf common-id {
+ type string;
+ mandatory true;
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-roll {
+ description
+ "This rpc can be use to roll a service according to 2 possible options :
+ A new path may (no path pre-calculation) or may not be calculated according
+ to the parameters provided (which includes metrics). If path computation has been triggered
+ and is successful, a new path is provided, and the service can be rolled according to that path.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be rolled in
+ the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf due-date {
+ type yang:date-and-time;
+ description
+ "date and time service to be rolled";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses org-openroadm-common-service-types:routing-metric;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-roll-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-reconfigure {
+ description
+ "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+ service-rpc-result Notification shall be sent.";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Existing identifier for the service to be
+ reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf new-service-name {
+ type string;
+ description
+ "New identifier for the service to be
+ reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf data-reload {
+ type boolean;
+ description
+ "Indicates whether the data of existing service needs to be refreshed or
+ reloaded. No reprovisioning/reconfiguration should be done to the service,
+ only data is updated. May generate data conflict to existing service
+ after reload. If set true, the data of existing service will be refreshed";
+ }
+ leaf common-id {
+ type string;
+ description
+ "To be used by the ROADM controller to identify the routing
+ constraints received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:service-order;
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ container requesting-interface-properties {
+ when "../../connection-type = 'optical-tunnel'" {
+ description
+ "an optical-tunnel service creation request triggers a container
+ that includes the description of the characteristics of the
+ external optical transceiver handled by a 3rd party controller";
+ }
+ uses org-openroadm-common-service-types:external-interface-characteristics;
+ }
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ container requesting-interface-properties {
+ when "../../connection-type = 'optical-tunnel'" {
+ description
+ "an optical-tunnel service creation request triggers a container
+ that includes the description of the characteristics of the
+ external optical transceiver handled by a 3rd party controller";
+ }
+ uses org-openroadm-common-service-types:external-interface-characteristics;
+ }
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ }
+ output {
+ // Augment the reconfigure response with the data-reload
+ uses org-openroadm-common-service-types:configuration-response-common {
+ augment "configuration-response-common" {
+ leaf ack-data-reload-indicator {
+ type string;
+ description
+ "This optional, meaning this will be populated only when
+ the data-reload indicator is set true";
+ }
+ }
+ }
+ uses org-openroadm-common-service-types:response-parameters;
+ }
+ }
+
+ rpc service-reconfigure-bulk {
+ description
+ "Whether bulk of requests passed initial validation and was accepted for
+ processing. Once the request completes processing, a service-rpc-result
+ Notification shall be sent.";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ list service-reconfigure-list {
+ key "service-name";
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Existing identifier for the service to be
+ reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf new-service-name {
+ type string;
+ description
+ "New identifier for the service to be
+ reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf data-reload {
+ type boolean;
+ description
+ "Indicates whether the data of existing service needs to be refreshed or
+ reloaded. No reprovisioning/reconfiguration should be done to the service,
+ only data is updated. May generate data conflict to existing service
+ after reload. If set true, the data of existing service will be refreshed";
+ }
+ leaf common-id {
+ type string;
+ description
+ "To be used by the ROADM controller to identify the routing
+ constraints received from planning application (PED).";
+ }
+ uses org-openroadm-common-service-types:service-order;
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ }
+ uses org-openroadm-common-service-types:resource-status;
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ uses org-openroadm-routing-constraints:routing-constraints;
+ uses org-openroadm-common-service-types:service-information;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common {
+ augment "configuration-response-common" {
+ leaf ack-data-reload-indicator {
+ type string;
+ description
+ "This optional, meaning this will be populated only when
+ the data-reload indicator is set true";
+ }
+ }
+ }
+ list service-reconfigure-response-list {
+ key "service-name";
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Existing identifier for the service to be
+ reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ }
+ uses org-openroadm-common-service-types:response-parameters;
+ }
+ }
+
+
+
+
+ rpc service-reconfigure-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-restoration {
+ description
+ "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+ service-rpc-result Notification shall be sent.
+ This rpc can be use to reroute a service according to 2 possible options :
+ \t_Option1 : neither the backup-path-id nor the failure-case-id are provided, a new path shall be
+ calculated according to the parameters provided (which includes metrics). If path computation
+ is successful, a new path is provided, and the service is rerouted according to that path.
+ \t_Option2 : if a backup-path-id or a failure-case-id are provided, the service shall
+ be rerouted according to the corresponding path. If path computation is triggered and successful,
+ a new path is provided, and the service is rerouted according to that path.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be restored in
+ the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ leaf option {
+ type enumeration {
+ enum permanent {
+ value 1;
+ description
+ "A spare regen can be used to restore the
+ service permanently without reverting back to the
+ original regen";
+ }
+ enum temporary {
+ value 2;
+ description
+ "a spare regen can be used to restore the
+ service temporarily. The service needs to be reverted
+ back to the original regen transponder";
+ }
+ }
+ mandatory true;
+ }
+ leaf backup-path-id {
+ type uint8 {
+ range "1..255";
+ }
+ description
+ "When present, states that the service shall be rerouted according to a specific backup path";
+ }
+ leaf failure-case-id {
+ type string;
+ description
+ "When present, states that the service shall be rerouted according to a specific backup path.
+ This last corresponds to the provided failure case id";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses org-openroadm-common-service-types:routing-metric;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-restoration-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-reversion {
+ description
+ "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+ service-rpc-result Notification shall be sent.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be reverted
+ in the ROADM network, e.g., CLFI, CLCI, etc. ";
+ }
+ leaf due-date {
+ type yang:date-and-time;
+ description
+ "date and time service to be reverted";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-reversion-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-reroute {
+ description
+ "Whether this request was validated and processed correctly. If successful, it returns the proposed new route.
+ If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be re-routed in
+ the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses org-openroadm-common-service-types:routing-metric;
+ uses org-openroadm-common-service-types:service-resiliency;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-routing-constraints:routing-constraints;
+ }
+ }
+
+ rpc service-reroute-confirm {
+ description
+ "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
+ service-rpc-result Notification shall be sent.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be re-routed in
+ the ROADM network, e.g., CLFI, CLCI, etc.";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses org-openroadm-routing-constraints:routing-constraints;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-reroute-confirm-result-notification-request {
+ description
+ "This is the callback notification that the controller invokes on the carrier system.";
+ input {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ uses org-openroadm-common-service-types:service-identifiers-container;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc optical-tunnel-create {
+ description
+ "This rpc is used in a second step of service creation when the connection-type is
+ an optical-tunnel. The optical tunnel rendering implies that end terminals optical
+ interfaces such as router pluggables are tuned to the a correct wavelength and that
+ the output power is set so that control loop can operate during connection setting.
+ The rpc is invoked to confirm the optical tunnel can be established.";
+ input {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier used in the second step of the optical-tunnel service creation.
+ Identifies the service (optical tunnel between SRG PPs) to be created
+ in the ROADM network.";
+ }
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "Identifier used in the first step of optical-tunnelservice creation using
+ temp-service-create rpc. Identifies the temporary service for which resources
+ have been reserved after a successful path computation";
+ }
+ leaf set-frequency {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ mandatory true;
+ description
+ "Center Frequency in THz.";
+ }
+ leaf full-bandwidth-at-3dB {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ mandatory true;
+ description
+ "Signal full bandwidth at 3dB bellow the peak in GHz.";
+ }
+ leaf full-bandwidth-at-10dB {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ mandatory true;
+ description
+ "Signal full bandwidth at 10dB bellow the peak in GHz.";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc optical-tunnel-request-cancel {
+ description
+ "This rpc is used to abort service creation when the connection-type is
+ an optical-tunnel, if the conditions required to set-up the end to end service
+ can not be met by the end terminals optical interfaces such as router pluggables.
+ When the rpc is invoked, any resource temporary reserved for the second step of
+ service creation shall be released : this rpc cancels service path rendering between
+ SRG PPs.";
+ input {
+ leaf service-name {
+ type string;
+ description
+ "Identifier used in the first step of service creation using service create rpc.";
+ }
+ leaf common-id {
+ type string;
+ description
+ "Identifier used in the first step of optical-tunnelservice creation using
+ temp-service-create rpc. Identifies the temporary service for which resources
+ have been reserved after a successful path computation";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc network-re-optimization {
+ input {
+ leaf service-name {
+ type string;
+ description
+ "Identifier for the service in the ROADM network,
+ e.g., CLFI, CLCI, etc. whose path is to be checked by the RNC
+ for re-optimization";
+ }
+ leaf a-end {
+ type string;
+ description
+ "Services whose A-ends are terminated at the
+ specified office location are to be checked by the RNC for
+ re-optimization";
+ }
+ leaf z-end {
+ type string;
+ description
+ "Services whose Z-ends are terminated at the
+ specified office location are to be checked by the RNC for
+ re-optimization ";
+ }
+ leaf pass-through {
+ type string;
+ description
+ "Services that are pass-through (either via
+ regen or express) at the specified office location are to
+ be checked by the RNC for re-optimization";
+ }
+ leaf customer-code {
+ type string;
+ description
+ "Services that belong to the specified customer
+ are to be checked by the RNC for re-optimization ";
+ }
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ uses org-openroadm-common-service-types:routing-metric;
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ leaf optimization-candidate {
+ type string;
+ }
+ }
+ }
+
+rpc add-openroadm-operational-modes-to-catalog {
+ description
+ "This rpc is used to feed the operational mode catalog with openroadm operational modes";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ container operational-mode-info {
+ container grid-parameters {
+ description
+ "Parameters associated with global spectrum use";
+ uses org-openroadm-operational-mode-catalog:operational-mode-grid-parameters;
+ }
+ container xponders-pluggables {
+ description
+ "Parameters associated with xponders and pluggables";
+ list xponder-pluggable-openroadm-operational-mode {
+ key "openroadm-operational-mode-id";
+ description
+ "defines the openroadm operational mode pointing to an official specification ";
+ leaf openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode which points to a specific spreadsheet of optical specifications";
+ }
+ uses org-openroadm-operational-mode-catalog:operational-mode-transponder-parameters;
+ }
+ }
+ container roadms {
+ description
+ "Parameters associated with roadms";
+ uses org-openroadm-operational-mode-catalog:operational-mode-roadm-express-parameters;
+ uses org-openroadm-operational-mode-catalog:operational-mode-roadm-add-parameters;
+ uses org-openroadm-operational-mode-catalog:operational-mode-roadm-drop-parameters;
+ }
+ container amplifiers {
+ description
+ "Parameters associated with amplifiers";
+ uses org-openroadm-operational-mode-catalog:operational-mode-amplifier-parameters;
+ }
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc add-specific-operational-modes-to-catalog {
+ description
+ "This rpc is used to feed the operational mode catalog with specific operational modes for
+ \txponders or external pluggables";
+ input {
+ uses org-openroadm-common-service-types:sdnc-request-header;
+ container operational-mode-info {
+ container specific-operational-modes {
+ description
+ "All specific operational modes corresponding to bookended or alien units";
+ list specific-operational-mode {
+ key "operational-mode-id";
+ description
+ "List of all declared specific operationnal modes";
+ leaf operational-mode-id {
+ type string;
+ description
+ "unique identifier which identifies the operational mode";
+ }
+ uses org-openroadm-operational-mode-catalog:operational-mode-grid-parameters;
+ uses org-openroadm-operational-mode-catalog:operational-mode-transponder-parameters;
+ }
+ }
+ }
+ }
+ output {
+ uses org-openroadm-common-service-types:configuration-response-common;
+ }
+ }
+
+ rpc service-srlg-get {
+ input {
+ leaf service-name {
+ type string;
+ description
+ "Identifier for the service in the ROADM network,
+ e.g., CLFI, CLCI, etc. whose path or other risks must be evaluated by the RNC";
+ }
+ leaf SRLG-type {
+ type org-openroadm-common-types:SRLG-type;
+ description
+ "Type of SRLG, Site SRLG, Node SRLG, Fiber SRLG or Link SRLG. If SRLG-type is not provided
+ in input, output should include all types of SRLGs for a given service-name";
+ }
+ leaf due-date {
+ type yang:date-and-time;
+ description
+ "Due-date is required to get list of SRLGs for specific validity period. If Due-date is not
+ provited in the input, RPC should return list of current/active SRLGS";
+ }
+ }
+ output {
+ list SRLG-list {
+ key "SRLG-Id";
+ leaf SRLG-Id {
+ type uint32;
+ description
+ "unique identifier for SRLG";
+ }
+ leaf SRLG-name {
+ type string;
+ description
+ "Name of the SRLG";
+ }
+ leaf SRLG-type {
+ type org-openroadm-common-types:SRLG-type;
+ description
+ "Type of SRLG, Site SRLG, Node SRLG, Fiber SRLG or Link SRLG";
+ }
+ leaf SRLG-length {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ description
+ "Fiber length in desired distance unit of measure";
+ }
+ }
+ }
+ }
+
+ notification service-rpc-result {
+ description
+ "This Notification indicates result of service RPC";
+ leaf notification-type {
+ type org-openroadm-common-service-types:service-notification-types;
+ }
+ uses org-openroadm-common-types:rpc-response-status;
+ uses org-openroadm-common-service-types:service-notification-result;
+ container path-computation-result {
+ when "../notification-type = 'path-computation-result'" {
+ description
+ "an optical-tunnel service triggers the leaf providing
+ information on the operationnal mode selected by the pce";
+ }
+ container aToZ {
+ description
+ "Describes the settings and the performances for the A to Z path";
+ uses org-openroadm-resource:common-och-otsi-attributes;
+ uses org-openroadm-resource:path-computation-outputs;
+ }
+ container zToA {
+ description
+ "Describes the settings and the performances for the Z to A path";
+ uses org-openroadm-resource:common-och-otsi-attributes;
+ uses org-openroadm-resource:path-computation-outputs;
+ }
+ }
+ }
+
+ notification service-traffic-flow {
+ description
+ "This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service being reported on";
+ }
+ leaf version-number {
+ type uint64;
+ description
+ "Identifier for the versioned service";
+ }
+ leaf actual-date {
+ type yang:date-and-time;
+ description
+ "Actual date and time traffic started flowing";
+ }
+ }
+
+ notification service-notification {
+ description
+ "This Notification that a service has been added, modified or removed.
+ A resourceCreation notification shall contain the created service in its entirety.
+ A resourceModified notification shall contain just the modified field, plus the service identifier
+ A resourceDeleted notification shall just contain the service identifier";
+ leaf notificationType {
+ type org-openroadm-resource-types:resource-notification-type;
+ description
+ "Whether this notification indicates a service creation, service modification or service deletion.";
+ }
+ leaf version-number {
+ type uint64;
+ description
+ "Identifier for the versioned service";
+ }
+ uses org-openroadm-common-service-types:service;
+ }
+
+ notification optical-tunnel-created {
+ description
+ "This Notification is used to confirm that an optical-tunnel service has been created.
+ It shall contain the created service in its entirety";
+ leaf notificationType {
+ type org-openroadm-resource-types:resource-notification-type;
+ description
+ "Whether this notification indicates a service creation, or service-reconfigure.";
+ }
+ leaf version-number {
+ type uint64;
+ description
+ "Identifier for the versioned service";
+ }
+ leaf actual-date {
+ type yang:date-and-time;
+ description
+ "Actual date and time traffic started flowing";
+ }
+ uses org-openroadm-common-service-types:service;
+ }
+
+ notification non-rpc-related-notification {
+ description
+ "Used to notify SDN controller that :
+ _a change occured in the data tree associated with the topology or the service Datastore of the RNC
+ _the attenuation on a ROADM to ROADM link as exceeded the value that can be accepted with current design
+ _the restoration of an optical OTN/WDM service";
+ leaf notificationType {
+ type org-openroadm-controller-customization:non-rpc-related-notification-type;
+ description
+ "This notification indicates whether a change occured in the data tree
+ associated with the topology or the service Datastore, an out of limit
+ attenuation on a WDM link, or the restoration of an optical WDM/OTN service.";
+ }
+ leaf notificationId {
+ type string;
+ description
+ "Unique identifier for the notification.";
+ }
+ leaf notification-time {
+ type yang:date-and-time;
+ description
+ "Time at which notification is raised";
+ }
+ leaf service-name {
+ when "../notificationType = 'service-state-change' or ../notificationType = 'autonomous-optical-restoration-triggered'" {
+ description
+ "When Service Data store is modified, or a restoration has been triggered
+ service-name is provided";
+ }
+ type string;
+ }
+ leaf impacted-resource-type {
+ when "../notificationType = 'topology-change' or ../notificationType = 'service-state-change'" {
+ description
+ "Used to provide additional information on the type of resource impacted by the
+ change in the data-store, to target more effectively consecutive request";
+ }
+ type string;
+ }
+ leaf impacted-resource-id {
+ when "../notificationType = 'topology-change' or ../notificationType = 'service-state-change'" {
+ description
+ "Identifies the resource impacted by the change in the data-store";
+ }
+ type string;
+ }
+ leaf topology-layer {
+ when "../notificationType = 'topology-change'" {
+ description
+ "indicates the layer associated with the topological change";
+ }
+ type enumeration {
+ enum openroadm-topology {
+ value 1;
+ }
+ enum otn-topology {
+ value 2;
+ }
+ }
+ }
+ }
+
+ container service-list {
+ description
+ "List of service. Can only be created, deleted, modified, etc. using special RPCs. Will only contain one service with a given name.
+ Does not contain historical (deleted or rather those passed their end time) or draft services. If two services exist with the same
+ name (with non-lapping start-end times for example), this table will contain the current one. If only planned services exist for
+ the name, the one with the earliest start time will be present
+ ";
+ list services {
+ key "service-name";
+ uses org-openroadm-common-service-types:service;
+ }
+ }
+ container versioned-service-list {
+ description
+ "List of service, regardless of lifecycle state. Can only be created, deleted, modified, etc. using special RPCs. Can report more than one
+ version of a service, if supported by the implementation. May contain deleted services, multiple versions of the same service, as identified
+ by its name, etc.";
+ list services {
+ key "service-name version-number";
+ leaf version-number {
+ type uint64;
+ }
+ uses org-openroadm-common-service-types:service;
+ }
+ }
+ container temp-service-list {
+ description
+ "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
+ list services {
+ key "common-id";
+ uses org-openroadm-common-service-types:service {
+ refine "service-name" {
+ mandatory false;
+ }
+ augment "service-a-end" {
+ list equipment-required {
+ key "equipment-identifier";
+ description
+ "List of required equipment, including equipment type, state and
+ quantity";
+ uses org-openroadm-common-service-types:equipment-info;
+ }
+ }
+ augment "service-z-end" {
+ list equipment-required {
+ key "equipment-identifier";
+ description
+ "List of required equipment, including equipment type, state and
+ quantity";
+ uses org-openroadm-common-service-types:equipment-info;
+ }
+ }
+ }
+ uses org-openroadm-common-service-types:intermediate-site-container;
+ list supporting-service-hierarchy {
+ key "service-identifier";
+ uses org-openroadm-common-service-types:service-hierarchy;
+ description
+ "This lists all the supporting services and their respective hierarchy, includes the
+ proposed one";
+ }
+ uses org-openroadm-common-service-types:existing-service-grouping {
+ refine "existing-service-attributes/reusable-existing-resources" {
+ default "all";
+ }
+ }
+ }
+ }
+ container controller-behaviour-settings {
+ description
+ "Parameters allowing to set the controller behaviour";
+ uses org-openroadm-controller-customization:controller-parameters;
+ }
+ container operational-mode-catalog {
+ description
+ "Store parameters associated with openroadm specifications and specific operational modes";
+ uses org-openroadm-operational-mode-catalog:operational-mode-catalog;
+ }
+}