Adding support to different ingress and egress ports (SFC)
[osm/IM.git] / models / yang / nsr.yang
index 7597a6f..48ac592 100644 (file)
@@ -23,10 +23,6 @@ module nsr
   namespace "urn:ietf:params:xml:ns:yang:nfvo:nsr";
   prefix "nsr";
 
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
   import vlr {
     prefix "vlr";
   }
@@ -76,6 +72,34 @@ module nsr
       "Derived from earlier versions of base YANG files";
   }
 
+  typedef vnffgr-operational-status {
+    type enumeration {
+      enum init;
+      enum running;
+      enum terminate;
+      enum terminated;
+      enum failed;
+    }
+  }
+
+  typedef ns-operational-status {
+    type enumeration {
+      enum init;
+      enum vl-init-phase;
+      enum vnf-init-phase;
+      enum running;
+      enum terminate;
+      enum vnf-terminate-phase;
+      enum vl-terminate-phase;
+      enum terminated;
+      enum failed;
+      enum scaling-out;
+      enum scaling-in;
+      enum vl-instantiate;
+      enum vl-terminate;
+    }
+  }
+
   typedef config-states {
     type enumeration {
       enum init;
@@ -193,6 +217,12 @@ module nsr
         key "id";
         unique "name";
 
+        leaf schema-version {
+          description "Schema version for the NSR. If unspecified, it assumes v3.0";
+          type string;
+          default "v3.0";
+        }
+
         leaf id {
           description "Identifier for the NSR.";
           type yang:uuid;
@@ -378,15 +408,7 @@ module nsr
             terminated          : The VNFFGR is in the terminated state.
             failed              : The VNFFGR instantiation failed
           ";
-
-        type enumeration {
-          rwpb:enum-type "VnffgrOperationalStatus";
-          enum init;
-          enum running;
-          enum terminate;
-          enum terminated;
-          enum failed;
-        }
+        type vnffgr-operational-status;
       }
 
       list rsp {
@@ -464,7 +486,7 @@ module nsr
           }
 
           leaf member-vnf-index-ref {
-            type uint64;
+            type string;
           }
           leaf vnfd-id-ref {
             description
@@ -485,7 +507,16 @@ module nsr
                   path "../../../../../../vnfr:vnfr-catalog/vnfr:vnfr/vnfr:name";
                 }
           }
-          leaf vnfr-connection-point-ref {
+          leaf vnfr-ingress-connection-point-ref {
+            description
+                "A reference to a vnfr connection point.";
+            type leafref {
+              path "../../../../../../vnfr:vnfr-catalog/vnfr:vnfr"
+                 + "[vnfr:id = current()/../vnfr-id-ref]"
+                 + "/vnfr:connection-point/vnfr:name";
+            }
+          }
+          leaf vnfr-egress-connection-point-ref {
             description
                 "A reference to a vnfr connection point.";
             type leafref {
@@ -507,13 +538,9 @@ module nsr
               type string;
             }
             leaf port-id {
-              rwpb:field-inline "true";
-              rwpb:field-string-max 64;
               type string;
             }
             leaf vm-id {
-              rwpb:field-inline "true";
-              rwpb:field-string-max 64;
               type string;
             }
             leaf address {
@@ -598,13 +625,9 @@ module nsr
             }
           }
           leaf port-id {
-            rwpb:field-inline "true";
-            rwpb:field-string-max 64;
             type string;
           }
           leaf vm-id {
-            rwpb:field-inline "true";
-            rwpb:field-string-max 64;
             type string;
           }
           leaf ip-address {
@@ -856,21 +879,7 @@ module nsr
             vl-terminate        : The NS is terminating a VL
           ";
 
-          type enumeration {
-            enum init;
-            enum vl-init-phase;
-            enum vnf-init-phase;
-            enum running;
-            enum terminate;
-            enum vnf-terminate-phase;
-            enum vl-terminate-phase;
-            enum terminated;
-            enum failed;
-            enum scaling-out;
-            enum scaling-in;
-            enum vl-instantiate;
-            enum vl-terminate;
-          }
+          type ns-operational-status;
         }
 
         leaf config-status {
@@ -912,7 +921,7 @@ module nsr
               leaf member-vnf-index-ref {
                 description
                    "Reference to member-vnf within constituent-vnfds";
-                type uint64;
+                type string;
               }
 
               leaf vnfd-id-ref {
@@ -960,7 +969,6 @@ module nsr
         }
 
         list initial-service-primitive {
-          rwpb:msg-new NsrInitialServicePrimitive;
           description
             "Initial set of service primitives for NSD.";
           key "seq";
@@ -969,7 +977,6 @@ module nsr
         }
 
         list terminate-service-primitive {
-          rwpb:msg-new NsrTerminateServicePrimitive;
           description
             "Set of service primitives to
              execute during termination of NSD.";
@@ -1214,7 +1221,7 @@ module nsr
         leaf member-vnf-index-ref {
           description
               "Reference to member-vnf within constituent-vnfds";
-          type uint64;
+          type string;
         }
 
         leaf vnfd-id-ref {