+++ /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;
- }
-}