Upgrade to Service Path 1.7
[transportpce.git] / api / src / main / yang / service_path / transportpce-common-types@2020-01-28.yang
similarity index 67%
rename from api/src/main/yang/service_path/transportpce-common-types@2017-09-07.yang
rename to api/src/main/yang/service_path/transportpce-common-types@2020-01-28.yang
index 17ad0a46017fc48266e491ccd75b620a94252e0d..c8879914361758ed0609b6815f72843f708c3ce5 100644 (file)
@@ -10,111 +10,236 @@ module transportpce-common-types {
         prefix org-openroadm-pm-types;
         revision-date 2016-10-14;
     }
+    import org-openroadm-otn-common-types {
+        prefix org-openroadm-otn-common-types;
+        revision-date 2018-11-30;
+    }
+
+    revision "2020-01-28" {
+        description "Add necessary parameters to consolidate OTN and address ONAP
+            MDONS use case, including grouping otn-renderer-input";
+    }
+    revision "2019-12-12" {
+        description "Add grouping otn-renderer-input";
+    }
 
     revision "2017-09-07" {
         description "Initial revision of TransportPCE common-types";
     }
 
     grouping olm-renderer-input {
-        leaf service-name {
-            type string;
+      leaf service-name {
+          type string;
+      }
+      leaf wave-number {
+          type uint32;
+      }
+      list nodes {
+          ordered-by user;
+          key "node-id";
+          leaf node-id {
+              type string;
+              description "Gloabally unique identifier for the node";
+          }
+          leaf src-tp {
+              type string;
+              description "Source termination point ";
+              mandatory true;
+          }
+          leaf dest-tp {
+              type string;
+              description "Destination termination point ";
+              mandatory true;
+          }
+      }
+      description
+          "Type to be used by OLM and Renderer RPCs";
+      list node-interface {
+        key node-id;
+        leaf node-id {
+          type string;
         }
-        leaf wave-number {
-            type uint32;
+        leaf-list och-interface-id {
+          type string;
         }
-        list nodes {
-            ordered-by user;
-            key "node-id";
-            leaf node-id {
-                type string;
-                description "Gloabally unique identifier
-                    for the node";
-            }
-            leaf src-tp {
-                type string;
-                description "Source termination point ";
-                mandatory true;
-            }
-            leaf dest-tp {
-                type string;
-                description "Destination termination point ";
-                mandatory true;
-            }
+        leaf-list otu-interface-id {
+          type string;
         }
-        description
-            "Type to be used by OLM and Renderer RPCs";
+        leaf-list odu-interface-id {
+          type string;
+        }
+        leaf-list eth-interface-id {
+          type string;
+        }
+        leaf-list connection-id {
+          type string;
+        }
+      }
+
     }
 
-    grouping olm-get-pm-input {
+    grouping otn-renderer-input {
+      leaf service-name {
+          type string;
+      }
+      list nodes {
+        ordered-by user;
+        key "node-id";
         leaf node-id {
             type string;
-            description "Gloabally unique identifier
-                for the node";
-            mandatory true;
+            description "Globally unique identifier for the node";
         }
-        leaf resource-type {
-            type org-openroadm-resource-types:resource-type-enum;
-            description "Type of the PM resource";
-            mandatory true;
+        leaf network-tp {
+            type string;
+            description "Source termination point ";
+        }
+        leaf client-tp {
+          type string;
+          description "Destination termination point for end nodes";
+          //mandatory true;
         }
-        container resource-identifier {
-            leaf resource-name {
-                type string;
-                description "Identifier of particular resource of given type";
-                mandatory true;
-            }
-            leaf circuit-pack-name {
-                when "../../resource-type = 'port'";
-                type string;
-                description "In case resource type is port, then particular resource is identified by port-name
-                    (resource-name) and circuit-pack-name (this leaf).";
-                mandatory true;
+        leaf network2-tp {
+          type string;
+          description "Destination termination point for intermediate switch";
+        }
+      }
+      description "Type to be used by OLM and Renderer RPCs for OTN";
+     }
 
-            }
+    grouping olm-get-pm-input {
+      leaf node-id {
+          type string;
+          description "Gloabally unique identifier
+              for the node";
+          mandatory true;
+      }
+      leaf resource-type {
+          type org-openroadm-resource-types:resource-type-enum;
+          description "Type of the PM resource";
+          mandatory true;
+      }
+      container resource-identifier {
+          leaf resource-name {
+              type string;
+              description "Identifier of particular resource of given type";
+              mandatory true;
+          }
+          leaf circuit-pack-name {
+              when "../../resource-type = 'port'";
+              type string;
+              description "In case resource type is port, then particular resource is identified by port-name
+                  (resource-name) and circuit-pack-name (this leaf).";
+              mandatory true;
+
+          }
+      }
+      leaf granularity {
+          type org-openroadm-pm-types:pm-granularity;
+          description "Granularity of PM bin can be
+              notApplicable,15min,24Hour";
+          mandatory true;
+      }
+      leaf pm-name-type {
+          type pm-names-enum;
+      }
+      leaf pm-extension {
+          type string;
+      }
+      leaf location {
+          type location;
+      }
+      leaf direction {
+          type direction;
+      }
+    }
+
+    grouping node-interfaces {
+      list node-interface {
+        key node-id;
+        leaf node-id {
+            type string;
         }
-        leaf granularity {
-            type org-openroadm-pm-types:pm-granularity;
-            description "Granularity of PM bin can be
-                notApplicable,15min,24Hour";
-            mandatory true;
+        leaf-list och-interface-id {
+            type string;
         }
-        leaf pm-name-type {
-            type pm-names-enum;
+        leaf-list otu-interface-id {
+            type string;
         }
-        leaf pm-extension {
+        leaf-list odu-interface-id {
             type string;
         }
-        leaf location {
-            type location;
+        leaf-list eth-interface-id {
+            type string;
         }
-        leaf direction {
-            type direction;
+        leaf-list connection-id {
+          type string;
         }
+      }
     }
 
-    grouping node-interfaces {
-        list node-interface {
-            key node-id;
-            leaf node-id {
-                type string;
-            }
-            leaf-list och-interface-id {
-                type string;
-            }
-            leaf-list otu-interface-id {
-                type string;
-            }
-            leaf-list odu-interface-id {
-                type string;
-            }
-            leaf-list eth-interface-id {
-                type string;
-            }
-            leaf-list connection-id {
-                type string;
-            }
+    grouping otn-constraint {
+      container otn-constraints {
+        leaf trib-port-number {
+          type uint16;
+          description
+                  "defines a trib-port that must be used at A or Z end";
+        }
+        leaf-list opu-trib-slots {
+          type uint16;
+          description
+                  "defines a list of trib-slots that must be used at A or Z end";
+        }
+        leaf-list opucn-trib-slots {
+          type string;
+          description
+                  "defines a list of opucn-trib-slots that must be used at A or
+                  Z end";
         }
-   }
+        container imposed-api {
+          description "defines constraints on access point identifier to be used by
+                  local device when one end point of the path (service) is located
+                  in a remote domain not handled by the controller. These parameters
+                  are passed to the local controller (transportpce) for interoperability
+                  purposes.
+                  SAPI : The source api (local domain) to be used by A
+                  or Z end as expected by remote controller.
+                  DAPI: defines the destination api (remote domain) to be used by A
+                  or Z end as exposed in the remote domain. Used when the end of the path
+                  is in an external domain, handled by a remote controller.
+                  EXPECTED-SAPI : The api of the remote end of the path (in an external
+                  domain) as expected to be received by A or Z end.
+                  EXPECTED-DAPI : defines the destination api to be used by remote end
+                  as exposed in the local domain. Used when the end of the path is in an
+                  external domain, handled by a remote controller";
+          uses api-info;
+        }
+      }
+    }
+
+    grouping api-info {
+      leaf sapi {
+        type string;
+        description
+          "The source api used by the node";
+      }
+      leaf dapi {
+        type string;
+        description
+          "the destination api of the other end of the path";
+      }
+      leaf expected-sapi {
+        type string;
+        description
+              "The api of the remote end of the path as expected to be received
+              by the node";
+      }
+      leaf expected-dapi {
+        type string;
+        description
+              "api of the node itself, supposed to be used by remote end as
+              the destination";
+      }
+    }
 
        typedef pm-names-enum {
            type enumeration {
@@ -461,7 +586,6 @@ module transportpce-common-types {
            }
          }
 
-
       typedef location {
         type enumeration {
           enum "notApplicable" {
@@ -492,5 +616,4 @@ module transportpce-common-types {
         }
       }
 
-
 }