Model changes for VNF access point support 45/845/1
authorPhilip Joseph <philip.joseph@riftio.com>
Tue, 8 Nov 2016 04:45:12 +0000 (04:45 +0000)
committerPhilip Joseph <philip.joseph@riftio.com>
Thu, 29 Dec 2016 13:25:57 +0000 (13:25 +0000)
Merging changes by: Rajesh Velandy <rajesh.velandy@riftio.com>

Signed-off-by: Philip Joseph <philip.joseph@riftio.com>
models/plugins/yang/mano-types.yang
models/plugins/yang/nsd.yang
models/plugins/yang/vnfd.yang

index ec3d583..46cad20 100644 (file)
@@ -116,6 +116,22 @@ module mano-types
         Only applies to parameters with default values.";
       type boolean;
     }
+    leaf parameter-type {
+      description "Type of this parameter, whether this in IN or OUT";
+      type enumeration {
+       enum OUT;
+       enum IN;
+      }
+      default "IN";
+    }
+    leaf parameter-path {
+      description "A Leafref to the parameter path with the attribute selection.
+                   At present only attribute ip-address() is supported.
+                   For example, to get the ip address of VNF connection point
+                   the xpath would look something along the following lines,
+                   /vnfd-catalog/vnfd[id='x']/connection-point[name='cp']/ip-address()";
+      type string;
+    }
   }
   
 
index aa55f34..467be6d 100644 (file)
@@ -317,6 +317,46 @@ module nsd
         }
       }
 
+      list vnfap-map {
+        key "id";
+        description "A mapping of VNF application point 
+                     capability/dependency within this network service";
+        leaf id {
+          description "Identfier for VNF access point map";
+          type string;
+        }
+        container capability {
+          leaf member-vnf-index-ref {
+            description "Reference to member-vnf within constituent-vnfds";
+            type leafref {
+              path "../../../../constituent-vnfd/member-vnf-index";
+            }
+          }
+          leaf capability-ref {
+            description "Reference to the capability with the capability of the VNF
+                         with the specified member-vnf-index";
+            type leafref {
+              path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnfap/vnfd:capability/vnfd:name";
+            }
+          }
+        }
+        container dependency {
+          leaf member-vnf-index-ref {
+            description "Reference to member-vnf within constituent-vnfds";
+            type leafref {
+              path "../../../../constituent-vnfd/member-vnf-index";
+            }
+          }
+          leaf dependency-ref {
+            description "Reference to the dependency within the dependency of the VNF
+                         with the specified member-vnf-index";
+            type leafref {
+              path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vnfap/vnfd:dependency/vnfd:name";
+            }
+          }
+        }
+      }
+
       // replicate for pnfd container here
       uses manotypes:provider-network;
 
index dab7499..1538341 100644 (file)
@@ -115,6 +115,103 @@ module vnfd
     }
   }
 
+  grouping vnf-access-point {
+    list vnfap {
+      description "List of VNF access points";
+      key "name";
+      leaf name {
+        description "Name of the vnf access point";
+        type string {
+          length 128;
+        }
+      }
+      leaf description {
+        description "A description of this VNF access point";
+        type string;
+      }
+      list capability {
+        description "The List  of capabilities of this VNF access point";
+        key "name";
+        leaf name {
+          description "Name of the capability";
+          type string {
+            length 128;
+          }
+        }
+        leaf description {
+          description "A description of the capability";
+          type string;
+        }
+        choice capability-location {
+          case location-path {
+            leaf xpath {
+               description "Location of this capaibility as an xpath.
+                           This field points to an element within vnfd
+                           with the xpath notation and additionally 
+                           provides the flexibility to choose attributes
+                           within the instantiated version of this object.
+                           For example, 
+                              /vnfd-catalog/vnfd[id='xyz']/connection-point[name='cp1']/ip_address()
+                              refers to the ip address of the connection point with name 'cp1' 
+                              in VNFD with id 'xyz'.";
+              type string;
+            }
+          }
+          case location-primitive-ref {
+            leaf config-primitive-name-ref {
+               description "A leafref to configuration primitive.
+                            This field contains a link to the config primitive
+                            the output paramaters of which will satisfy this requirement.";
+               type leafref {
+                 path "/vnfd:vnfd-catalog/vnfd/vnf-configuration/service-primitive/name";
+               }
+            }
+          }
+          case user-input {
+            list user-input {
+              key "name";
+              description "User input for this capability";
+              leaf name {
+                description "Name of this input";
+                type string;
+              }
+              leaf value {
+                description "Value of this input";
+                type string;
+              }
+            }
+          }
+        }
+      }
+      list dependency {
+        description "The List of depenencies of this VNF access point";
+        key "name";
+        leaf name {
+          description "Name of this VNF access point";
+          type string {
+            length 128;
+          }
+        }
+        leaf mandatory {
+          description "Is this dependcy mandatory for this dependency";
+          type boolean;
+        }
+        leaf description {
+          description "A description of the dependency";
+          type string;
+        }
+        leaf config-primitive-name-ref {
+         description "A leafref to configuration primitive.
+                      This field contains a link to the config primitive
+                      the input paramaters of which will satisfy this requirement.";
+          type leafref {
+            path "/vnfd:vnfd-catalog/vnfd/vnf-configuration/service-primitive/name";
+          }
+        }
+      }
+    }
+  }
+
   grouping vnfd-descriptor {
       leaf id {
         description "Identifier for the VNFD.";
@@ -509,7 +606,9 @@ module vnfd
       key "id";
 
       uses vnfd-descriptor;
-     }
+
+      uses vnf-access-point;
+    }
   }
 }