Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / service / src / main / yang / org-openroadm-routing-constraints@2021-12-10.yang
similarity index 50%
rename from ordmodels/service/src/main/yang/org-openroadm-routing-constraints@2019-03-29.yang
rename to ordmodels/service/src/main/yang/org-openroadm-routing-constraints@2021-12-10.yang
index 27172b5bc9b189549879846f2208671910880d19..638723237a97ede3dbad8ee01b34bc4f46cfeeff 100644 (file)
@@ -1,14 +1,14 @@
 module org-openroadm-routing-constraints {
-  namespace "http://org/openroadm/routing/constrains";
+  namespace "http://org/openroadm/routing/constraints";
   prefix org-openroadm-routing-constraints;
 
   import org-openroadm-common-node-types {
     prefix org-openroadm-common-node-types;
-    revision-date 2018-11-30;
+    revision-date 2021-05-28;
   }
   import org-openroadm-network-resource {
     prefix org-openroadm-network-resource;
-    revision-date 2018-11-30;
+    revision-date 2019-11-29;
   }
 
   organization
@@ -44,6 +44,34 @@ module org-openroadm-routing-constraints {
       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 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 2019-11-29 {
+    description
+      "Version 6.1.0";
+  }
   revision 2019-03-29 {
     description
       "Version 5.0.0";
@@ -90,78 +118,89 @@ module org-openroadm-routing-constraints {
     leaf-list customer-code {
       type string;
     }
-    choice co-routing-or-general {
-      case general {
-        container diversity {
-          uses diversity-existing-service-constraints;
-        }
-        container exclude {
-          uses common-constraints;
-          leaf-list supporting-service-name {
-            type string;
-            description
-              "Supporting service(s) to exclude from this route.";
-          }
-        }
-        container include {
-          uses common-constraints;
-          leaf-list supporting-service-name {
-            type string;
-            description
-              "Supporting service(s) to include in this route.";
-          }
-        }
-        container latency {
-          description
-            "Maximum latency allowed";
-          leaf max-latency {
-            type uint32;
-            units "ms";
-          }
+    leaf-list operational-mode {
+      type string;
+    }
+    container diversity {
+      uses diversity-existing-service-constraints;
+      uses diversity-constraints;
+      description
+        "Diversity constraints for single or bulk requests.
+        diversity-constraints provides more options for bulk requests";
+    }
+    container exclude {
+      uses common-constraints;
+      leaf-list supporting-service-name {
+        type string;
+        description
+          "Supporting service(s) to exclude from this route.";
+      }
+    }
+    container include {
+      uses common-constraints;
+      leaf-list supporting-service-name {
+        type string;
+        description
+          "Supporting service(s) to include in this route.";
+      }
+    }
+    container latency {
+      description
+        "Maximum allowed one-way latency in milliseconds";
+      leaf max-latency {
+        type decimal64 {
+          fraction-digits 3;
         }
+        units "milliseconds";
+      }
+    }
     container hop-count {
-          description
-            "Maximum hops allowed";
-          leaf max-wdm-hop-count {
-            type uint8;
-          }
+      description
+        "Maximum hops allowed";
+      leaf max-wdm-hop-count {
+        type uint8;
+      }
       leaf max-otn-hop-count {
-            type uint8;
-          }
-        }
+        type uint8;
+      }
+    }
     container TE-metric {
-          description
-            "Maximum cost allowed";
-          leaf max-wdm-TE-metric {
-            type uint32;
-          }
-          leaf max-otn-TE-metric {
-            type uint32;
-          }
-         }
+      description
+        "Maximum cost allowed";
+      leaf max-wdm-TE-metric {
+        type uint32;
+      }
+      leaf max-otn-TE-metric {
+        type uint32;
+      }
+    }
     container distance {
-          description
-            "Maximum distance allowed";
-          leaf max-distance {
-               type decimal64 {
-               fraction-digits 2;
-               }
-         units "km";
-          }
+      description
+        "Maximum distance allowed";
+      leaf max-distance {
+        type decimal64 {
+          fraction-digits 2;
         }
+        units "km";
       }
-      case co-routing {
-        container co-routing {
-          leaf-list existing-service {
-            type string;
-            description
-              "Diverse from existing services identified by facility CLFI";
-          }
+    }
+    container co-routing {
+      list service-identifier-list {
+        description
+          "Indicates that new services that are part of the bulk service request
+          should be co-routed";
+        key "service-identifier";
+        leaf service-identifier {
+          type string;
+          description
+            "This can be a service-name or a common-id";
         }
+        uses service-applicability-g;
       }
     }
   }
 
+
   grouping common-constraints {
     leaf-list fiber-bundle {
       type string;
@@ -191,12 +230,22 @@ module org-openroadm-routing-constraints {
     }
   }
 
-  grouping diversity-existing-service-constraints {
-    leaf-list existing-service {
-      type string;
+  grouping equipment{
+    container equipment {
+      leaf roadm-srg {
+        type boolean;
+        description "ROADM shared-risk-group diversity";
+      }
+      leaf xponder-srg {
+        type boolean;
+        description "xponder eqpt-srg-id diversity";
+      }
       description
-        "Diverse from existing services identified by facility CLFI";
+        "Equipment Diversity Contraints";
     }
+  }
+
+  grouping existing-service-applicability-g {
     container existing-service-applicability {
       leaf site {
         type boolean;
@@ -210,6 +259,72 @@ module org-openroadm-routing-constraints {
       leaf link {
         type boolean;
       }
+      uses equipment;
+    }
+  }
+
+  grouping service-applicability-g {
+    container service-applicability {
+      leaf site {
+        type boolean;
+      }
+      leaf node {
+        type boolean;
+      }
+      leaf srlg {
+        type boolean;
+      }
+      leaf link {
+        type boolean;
+      }
+      uses equipment;
+    }
+  }
+
+  grouping diversity-existing-service-constraints {
+    list service-identifier-list {
+        description
+          "Indicates that new services that are part of the bulk service request
+          should be co-routed";
+        key "service-indentifier";
+        leaf service-indentifier {
+          type string;
+          description
+            "This can be a service-name or a common-id";
+        }
+        uses service-applicability-g;
+    }
+    /*
+    leaf-list existing-service {
+      type string;
+      description
+        "Diverse from existing services identified by facility CLFI";
+    }
+    uses existing-service-applicability-g;
+    */
+  }
+
+  grouping diversity-constraints {
+    leaf diversity-type {
+      type enumeration {
+        enum serial {
+          value 1;
+          description
+            "Indicates that new services that are part of the bulk service request 
+            should be routed serially for diversity.";
+        }
+        enum synchronous {
+          value 2;
+          description
+            "Indicates that new services that are part of the bulk service request 
+            should be routed synchronously for diversity.";
+        }
+      }
+      description 
+        "This is only used when creating services using service-create-bulk. 
+        It is expected that 'diversity-type' should be same for all services,
+        within the group. Which means it can be either 'serial' or 'synchronous'
+        but not both.";
     }
   }
 }