Remove OpenROADM and TAPI models from project
[transportpce.git] / ordmodels / service / src / main / yang / org-openroadm-controller-customization@2021-12-10.yang
diff --git a/ordmodels/service/src/main/yang/org-openroadm-controller-customization@2021-12-10.yang b/ordmodels/service/src/main/yang/org-openroadm-controller-customization@2021-12-10.yang
deleted file mode 100644 (file)
index 49b2b27..0000000
+++ /dev/null
@@ -1,795 +0,0 @@
-module org-openroadm-controller-customization {
-  yang-version 1.1;
-  namespace "http://org/openroadm/controller/customization";
-  prefix org-openroadm-controller-customization;
-
-  import org-openroadm-common-link-types {
-    prefix org-openroadm-common-link-types;
-    revision-date 2019-11-29;
-  }
-  import org-openroadm-common-node-types {
-    prefix org-openroadm-common-node-types;
-    revision-date 2021-05-28;
-  }
-  import org-openroadm-common-service-types {
-    prefix org-openroadm-common-service-types;
-    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";
-  }
-
-  typedef notification-events {
-    type enumeration {
-      enum roadm-to-roadm-link-creation {
-        value 1;
-      }
-      enum roadm-to-roadm-link-deletion {
-        value 2;
-      }
-      enum otn-link-creation {
-        value 3;
-      }
-      enum otn-link-deletion {
-        value 4;
-      }
-      enum xpdr-in-out-link-creation {
-        value 5;
-      }
-      enum xpdr-in-out-link-deletion {
-        value 6;
-      }
-      enum link-state-change {
-        value 7;
-      }
-      enum otn-link-bandwidth-usage-change {
-        value 8;
-      }
-      enum node-creation {
-        value 9;
-      }
-      enum node-deletion {
-        value 10;
-      }
-      enum node-state-change {
-        value 11;
-      }
-      enum tp-creation {
-        value 12;
-      }
-      enum tp-deletion {
-        value 13;
-      }
-      enum tp-state-change {
-        value 14;
-      }
-      enum ila-state-change {
-        value 15;
-      }
-      enum none {
-        value 16;
-      }
-      enum all {
-        value 17;
-      }
-    }
-    description
-      "Define possible notification events.";
-  }
-
-  typedef rmsa-policy {
-    type enumeration {
-      enum maximize-capacity {
-        value 1;
-      }
-      enum maximize-reach {
-        value 2;
-      }
-      enum minimize-margins {
-        value 3;
-      }
-      enum maximize-margins {
-        value 4;
-      }
-      enum customer-spectrum-partitioning {
-        value 5;
-      }
-      enum fragmentation-limiting-partitioning {
-        value 6;
-      }
-    }
-    description
-      "Defines Routing Modulation and and Spectrum Allocation policies.";
-  }
-
-  typedef non-rpc-related-notification-type {
-    type enumeration {
-      enum service-state-change {
-        value 1;
-      }
-      enum topology-change {
-        value 2;
-      }
-      enum exceeded-attenuation-crossing-warning {
-        value 3;
-      }
-      enum insufficient-margin-crossing-alarm {
-        value 4;
-      }
-      enum autonomous-optical-restoration-triggered {
-        value 5;
-      }
-    }
-    description
-      "Defines notification types for non rpc related notifications.";
-  }
-
-  typedef restriction-scope {
-    description
-      "Used to indicate the scope of global restrictions";
-    type enumeration {
-      enum service-create {
-        value 1;
-      }
-      enum service-create-bulk {
-        value 2;
-      }
-      enum temp-service-create {
-        value 3;
-      }
-      enum temp-service-create-bulk {
-        value 4;
-      }
-      enum service-feasibility-check {
-        value 5;
-      }
-      enum service-feasibility-check-bulk {
-        value 6;
-      }
-      enum service-roll {
-        value 7;
-      }
-      enum service-reconfigure {
-        value 8;
-      }
-      enum service-restoration {
-        value 9;
-      }
-      enum service-reroute {
-        value 10;
-      }
-      enum network-re-optimization {
-        value 11;
-      }
-      enum all {
-        value 12;
-      }
-    }
-  }
-
-  typedef restriction-type {
-    description
-      "Used to indicate type of restriction for site or node";
-    type enumeration {
-      enum add-drop {
-        value 1;
-        description 
-          "Add/drops are forbidden at the associated node (or site).
-          No service may add or drop at site/node";
-      }
-      enum pass-through {
-        value 2;
-        description
-          "Routing through the associated node (or site) is forbidden.
-          No service may pass-through at site/node";
-      } 
-      enum both {
-        value 3;
-        description
-          "Both adds/drops and through routing are forbidden for 
-          the associated node (or site).";
-      }
-    }
-  }
-
-  typedef regeneration-restriction-type {
-    description
-      "Used to indicate the type of restriction for the regeneration type";
-    type enumeration {
-      enum do-not-propose {
-        value 1;
-        description
-          "Proposing new regens (via a feasibility check) 
-          at the associated node (or site) is forbidden.";
-      }
-      enum do-not-use-existing {
-        value 2;
-        description
-          "Use of an existing regen at the associated node 
-          (or site) is forbidden.";
-      }
-      enum both {
-        value 3;
-        description
-          "Both use of existing regens and proposal of new regens
-           are forbidden at the associated node (or site).";
-      }
-    }
-  }
-
-  grouping spectrum-portion {
-    description
-      "Specifies a portion of the spectrum and its characteristics.";
-    leaf spectrum-portion-id {
-      type uint8;
-      description
-        "Identifies a spectrum portion with specific characteristics.";
-    }
-    leaf start-edge-frequency {
-      type org-openroadm-common-optical-channel-types:frequency-THz;
-      description
-        "If present, this parameter states the lowest frequency to start
-         filling the spectrum, or a spectrum portion if stop-bandwidth
-         is also defined.";
-    }
-    leaf stop-edge-frequency {
-      type org-openroadm-common-optical-channel-types:frequency-THz;
-      description
-        "If present and associated with a start frequency, this parameter
-         states the upper frequency broundary to fill the spectrum portion.
-         If present, in the absence of a start frequency, this parameter
-         states the highest frequency to start filling the spectrum.";
-    }
-    leaf-list dedicated-customer {
-      type string;
-      description
-        "Applies only to spectrum-portion (both start and stop edge frequencies
-         defined), when the spectrum-portion is dedicated to some customers.
-         This list shall includes customer-codes identifying specific customers.
-         No customer out of this list can share the bandwidth of this spectrum
-         portion";
-    }
-    leaf-list non-authorized-customer {
-      type string;
-      description
-        "Applies only to spectrum-portion (both start and stop edge frequencies
-         defined), when the spectrum-portion is dedicated to some customers.
-         This list shall includes customer-codes identifying specific customers,
-         that are not allowed to share the bandwidth of this spectrum portion";
-    }
-  }
-
-  grouping controller-parameters {
-    description
-      "Defines the structure of Service/controller-behaviour-settings container,
-       as well as the structure of controller-parameters-setting rpc input";
-    container non-rpc-related-notification-settings {
-      description
-        "Defines url, notification-type and type of events that shall / shall not
-         trigger notifications";
-      list non-rpc-related-notification-url-list {
-        key "non-rpc-related-notification-type";
-        description
-          "Used to record url to be used when forwarding non rpc related
-           notifications.";
-        leaf non-rpc-related-notification-type {
-          type non-rpc-related-notification-type;
-          description
-            "Type of notification will trigger specific leaves.";
-        }
-        leaf notification-url {
-          type string;
-          description
-            "Defines the url the notification is sent to.";
-        }
-        leaf-list events-disabling-notification {
-          when "../non-rpc-related-notification-type = 'topology-change'";
-          type notification-events;
-          description
-            "List of events for which notifications to SDN-Controller are
-             not desirabled. The filtering is currently activated only on topological
-             changes which could lead to large volumes of data.";
-        }
-        leaf-list events-triggering-notification {
-          when "../non-rpc-related-notification-type = 'topology-change'";
-          type notification-events;
-          description
-            "List of events for which notifications to SDN-Controller are
-             desirabled. Has the priority with regards to events-disabling-notification.
-             As an example if events-disabling-notification is set to all,
-             events set in events-triggering-notification will be the only
-             events to be notified";
-        }
-      }
-    }
-    container spectrum-filling {
-      description
-        "Spectrum may be filled according to specific rules to limit partitionning
-         or to dedicate part of the spectrum to some specific clients (customer-code)";
-      list spectrum-filling-rules {
-        key "rule-id";
-        description
-          "Defines a set of rules used to fill the spectrum";
-        leaf rule-id {
-          type uint16;
-          description
-            "defines the rule identifier";
-        }
-        leaf priority {
-          type uint8;
-          description
-            "The rules shall be applied sequentially according to their defined
-             priority (Highest:1, lowest:255). Rules with highest priority
-             will be applied first";
-        }
-        leaf RMSA-policy {
-          type rmsa-policy;
-          description
-            "Defines the Routing, Spectrum & Mode assignment policy to be applied";
-        }
-        container spectrum-range-of-appliance {
-          when "../RMSA-policy = 'customer-spectrum-partitioning' or ../RMSA-policy
-                              = 'fragmentation-limiting-partitioning'";
-          description
-            "Defines, when needed, the spectrum range to which the rule applies";
-          uses spectrum-portion;
-          leaf dedicated-signal-bandwidth-multiple {
-            when "../../RMSA-policy = 'fragmentation-limiting-partitioning'" {
-              description
-                "For fragmentation partitioning, defines which part of the spectrum
-                 will be used according to the signal spectral occupation";
-            }
-            type uint8;
-            description
-              "Used for spectrum partitioning to reduce fragmentation. Defines
-               the width of the service to be provisioned in the spectrum portion.
-               As an example a spectrum portion can be dedicated to signals with
-               a 50 GHz multiple spectral occupation, whereas another portion
-               of the spectrum is dedicated to signal with a 75 GHz multiple
-               spectral occupation";
-          }
-        }
-      }
-    }
-    container margins {
-      description
-        "defines all margins operator may want to specify";
-      leaf minimum-fiber-attenuation-bol-margin {
-        type org-openroadm-common-link-types:ratio-dB;
-        description
-          "Minimum fiber-attenuation margin to be considered for path calculation
-           at begining of life. The path calculation shall be made considering on
-           each link the engineered-spanloss (provided by an external sytem)
-           _The RNC shall raise an ALARM to the northbound Controller through
-           an insufficient-margin-crossing-alarm as soon as:
-           (span-loss-base + minimum-fiber-attenuation-bol-margin) - engineered-spanloss >
-           threshold-observed-vs-design-margin
-           _The RNC shall raise a WARNING to the northbound Controller through
-           an exceeded-attenuation-crossing-warning as soon as : (engineered-spanloss
-           - spanloss-current) < threshold-observed-vs-design-attenuation.";
-      }
-      leaf threshold-observed-vs-design-attenuation {
-        type org-openroadm-common-link-types:ratio-dB;
-        description
-          "Defines the threshold used to raise an alarm when fiber initial attenuation
-           is too close to the engineered-spanloss, meaning the value accounted for the
-           design has been underestimated and a new design shall triggered.";
-      }
-      leaf threshold-observed-vs-design-margin {
-        type org-openroadm-common-link-types:ratio-dB;
-        description
-          "Defines the threshold used to raise a warning when fiber measured attenuation
-           comes too close to the engineered-spanloss, so that remaining margin is considered
-           as too limited.";
-      }
-      list minimum-osnr-margins {
-        key "margin-id";
-        description
-          "osnr margins to be considered may differ according to the rate and the modulation format";
-        leaf margin-id {
-          type string;
-          description
-            "defines a margin for specific line-rates and modulation formats";
-        }
-        leaf minimum-osnr-margin-value {
-          type org-openroadm-common-link-types:ratio-dB;
-          description
-            "Minimum OSNR margin to be considered to keep an acceptable OSNR value
-              at end of life for the associated line-rates and modulation-formats";
-        }
-        leaf-list line-rates {
-          type uint64;
-          description
-            "Line-rates to which the osnr-margin applies";
-        }
-        leaf-list modulation-formats {
-          type org-openroadm-common-optical-channel-types:modulation-format;
-          description
-            "Modulation-formats to which the osnr-margin applies";
-        }
-      }
-    }
-    container metrics-policy {
-      description
-        "Defines how the RNC shall interpret the routing-metrics";
-      leaf composite-metric-versus-selective {
-        type boolean;
-        description
-          "Defines the way the RNC shall interpret the priorities defined
-           for the metrics: _ True corresponds to a weighted composite metric,
-           _ False corresponds to a selective priority based metric";
-      }
-    }
-    container regeneration-policy {
-      description
-        "Defines rules to place regenerators when a service-feasibility-check
-        rpc is invoked, or when a service-create rpc is invoked if spare
-        regenerators are already in place";
-      leaf global-placement {
-        type enumeration {
-          enum regenerator-banks {
-            value 1;
-          }
-          enum distributed {
-            value 2;
-          }
-        }
-        description
-          "To priviledge the positioning in specific locations";
-      }
-      leaf on-path-positioning {
-        type enumeration {
-          enum maximize-rate {
-            value 1;
-          }
-          enum latest-convenient-hop {
-            value 2;
-          }
-        }
-        description
-          "To position regenerators as far as possible on the path or optimizing
-          performances";
-      }
-      leaf path-symmetry {
-        type boolean;
-        description
-          "True corresponds to same location on A to Z and Z to A paths
-          False allows positioning regenerators in different nodes for A
-          to Z and Z to A paths";
-      }
-      leaf-list preferred-sites {
-          type string;
-          description
-            "CLLI's of the sites to be privileged when positioning regenerators
-            in specific locations";
-      }
-    }
-    container global-restriction {
-      container site-restriction {
-        leaf-list restriction-scopes {
-          description
-            "Set of the restriction scopes applicable for the site-restriction.
-            Default scope is set to all RPCs";
-          type restriction-scope;
-          default "all";
-        }
-        list site {
-          key "site-id";
-          description
-            "List of sites to be excluded from paths when routing.";
-          leaf site-id {
-            type string;
-          }
-          leaf restriction-type {
-            type restriction-type;
-            default "both";
-          }
-        }
-      }
-      container node-restriction {
-        leaf-list restriction-scopes {
-          description
-            "Set of the restriction scopes applicable for the node-restriction.
-            Default scope is set to all RPCs";
-          type restriction-scope;
-          default "all";
-        }
-        list node {
-          key "node-id";
-          description
-            "List of equipment nodes to be excluded from paths when routing.";
-          leaf node-id {
-            type org-openroadm-common-node-types:node-id-type;
-          }
-          leaf restriction-type {
-            type restriction-type;
-            default "both";
-          }
-        }
-      }
-      container regeneration-site-restriction {
-        leaf-list restriction-scopes {
-          description
-            "Set of the restriction scopes applicable for the regeneration-restriction.
-            Default scope is set to all RPCs";
-          type restriction-scope;
-          default "all";
-        }
-        list forbidden-site {
-          key "site-id";
-          description
-            "List of forbidden sites where regenerators shall not be placed";
-          leaf site-id {
-            type string;
-          }
-          leaf regeneration-restriction-type {
-            type regeneration-restriction-type;
-            default "both";
-          }
-        }
-      }
-      container regeneration-node-restriction {
-        leaf-list restriction-scopes {
-          description
-            "Set of the restriction scopes applicable for the regeneration-restriction.
-            Default scope is set to all RPCs";
-          type restriction-scope;
-          default "all";
-        }
-        list forbidden-node {
-          key "node-id";
-          description
-            "List of forbidden nodes where regenerators shall not be placed";
-          leaf node-id {
-            type org-openroadm-common-node-types:node-id-type;
-          }
-          leaf regeneration-restriction-type {
-            type regeneration-restriction-type;
-            default "both";
-          }
-        }
-      }
-      container link-restriction {
-        leaf-list restriction-scopes {
-          description
-            "Set of the resctriction scopes applicable for the link-restriction.
-            Default scope is set to all RPCs";
-          type restriction-scope;
-          default "all";
-        }
-        leaf-list link-id {
-          type string;
-          description
-            "List of links to be excluded from paths when routing.";
-        }
-      }
-      container supporting-service-restriction {
-        leaf-list restriction-scopes {
-          description
-            "Set of the resctriction scopes applicable for the supporting-services.
-            Default scope is set to all RPCs";
-          type restriction-scope;
-          default "all";
-        }
-        leaf-list supporting-services {
-          type string;
-          description
-            "List of supporting services to be excluded from paths when routing";
-        }
-      }
-    }
-    container default-behaviour {
-      description
-        "Parameters in this container are used to define default behaviour
-         in case optional parameters in rpc have not been defined";
-      leaf default-backup-path-number {
-        type uint16;
-        description
-          "0 means on the fly path calculation. Higher number corresponds
-           to backup path pre-calculation, and states the number of paths
-           to be calculated";
-      }
-      leaf reversion {
-        type boolean;
-        description
-          "Concerns reversion for service that have a resiliency defined
-           as restorable (restoration handled autonomously by the controller
-           at the WDM/OTN layer)";
-      }
-      leaf wait-to-restore {
-        type uint64;
-        units "ms";
-        description
-          "time delay to revert to initial path after conditions for reversion
-           are satisfied";
-      }
-      leaf holdoff-time {
-        type uint64;
-        units "ms";
-        description
-          "time delay to initiate a protection or restoration event";
-      }
-    }
-    container sla-definition {
-      description
-        "Definition of Service Level Agreements parameters";
-      list sla-parameters {
-        key "sla-id";
-        description
-          "Defines several SLA profiles and associated expected behaviour";
-        leaf sla-id {
-          type string;
-          description
-            "sla-id as defined by the operator";
-        }
-        leaf preemption {
-          type boolean;
-          description
-            "False : service shall never be preempted True : preemption of
-             the service is allowed";
-        }
-        leaf restoration-priority {
-          type uint8;
-          description
-            "The service shall be restored according to the defined priority
-             (First:1, latest:255). Services with highest priority will be restored first";
-        }
-      }
-    }
-    container failure-case-list {
-      description
-        "Use to provide information on failure cases associated with backup-path
-         pre-calculation: If PCE supports the calculation of multiple backup-paths,
-         these might be identified through a failure case-id corresponding
-         to a node, physical-link or logical-link failure";
-      list failure-case {
-        key "failure-case-id";
-        description
-          "Describes and identifies different failure-cases. Each of them can be
-           associated with one or several backup-paths in the context of backup-path
-           pre-calculation";
-        leaf failure-case-id {
-          type uint32;
-          description
-            "Identifies a failure case";
-        }
-        leaf failure-type {
-          type enumeration {
-            enum node-failure {
-              value 1;
-            }
-            enum logical-link-failure {
-              value 2;
-            }
-            enum physiscal-link-failure {
-              value 3;
-            }
-          }
-          description
-            "describes failure type that can be simulated in a planner or by a PCE
-             to calculate a backup path";
-        }
-        leaf-list nodes {
-          when "../failure-type = 'node-failure'" {
-            description
-              "List of nodes impacted by the failure (not only single failures
-               may be envisaged).";
-          }
-          type string;
-          description
-            "Nodes as they appear in the openroadm-topology or otn-topology
-             layer";
-        }
-        leaf-list logical-links {
-          when "../failure-type = 'logical-link-failure'" {
-            description
-              "List of logical links impacted by the failure (not only single
-               failures may be envisaged).";
-          }
-          type string;
-          description
-            "logical links as they appear in the otn-topology layer";
-        }
-        leaf-list physical-links {
-          when "../failure-type = 'physical-link-failure'" {
-            description
-              "List of physical links impacted by the failure (not only single
-               failures may be envisaged).";
-          }
-          type string;
-          description
-            "physical-links as they appear in the openroadm-topology layer";
-        }
-      }
-    }
-  }
-  
-  rpc controller-parameters-setting {
-    description
-      "Rpc used to populate controller parameters in the Data Store
-       of the RNC.";
-    input {
-      uses org-openroadm-common-service-types:sdnc-request-header;
-      uses controller-parameters;
-    }
-    output {
-      uses org-openroadm-common-service-types:configuration-response-common;
-      leaf-list unsupported-customization-options {
-        type string;
-        description
-          "Provides a list of customization parameters that are not supported by
-           the RNC controller. Leaflist items corresponds to the yang nodes of
-           controller-parameters that the RNC does not handle. It is assumed that
-           for a yang node provided in the list, all nodes/leaves at a lower level
-           in the hierarchy are also not supported by the RNC";
-      }
-    }
-  }
-}