Merge "Feature 1417: support of PDUs in a VNF"
[osm/IM.git] / models / yang / vnfd-base.yang
index 607a76c..cd2061b 100644 (file)
@@ -62,8 +62,9 @@ module vnfd-base
     }
 
     leaf port-security-enabled {
-      description "Enables the port security for the port";
+      description "Enables the port security for the port.";
       type boolean;
+      default true;
     }
   }
 
@@ -298,11 +299,16 @@ module vnfd-base
           key "id-ref";
           description "List of internal connection points in this VLD";
           leaf id-ref {
-            description "reference to the internal connection point id";
+            description "Reference to the internal connection point id";
             type leafref {
               path "../../../vdu/internal-connection-point/id";
             }
           }
+
+          leaf ip-address {
+            description "IP address of the internal connection point";
+            type inet:ip-address;
+          }
         }
 
         uses manotypes:provider-network;
@@ -342,6 +348,19 @@ module vnfd-base
           at the network service level to construct network services.";
 
         uses common-connection-point;
+
+        leaf internal-vld-ref {
+          description
+            "Reference to an internal VLD of the VNF. This field is
+            optional. It allows exposing an internal VLD through a
+            connection point. When building a NS, this VNF CP might be
+            connected to a NS VLD, then both VLDs (the i-VLD of the VNF and the
+            VLD of the NS) will become the same network and the IP profile will
+            be the one configured at NS level.";
+          type leafref {
+            path "../../internal-vld/id";
+          }
+        }
       }
 
       list vdu {
@@ -363,6 +382,16 @@ module vnfd-base
             type string;
         }
 
+        leaf pdu-type {
+          description
+            "Type of PDU. If this field exists, the deployment unit must be
+            understood as a PDU, not as a VDU. This field is used to identify
+            the category of PDU instances to be used at instantiation time. For
+            the instantiation to be successful, there must be available
+            PDU instances of this type in the selected datacenter.";
+          type string;
+        }
+
         leaf count {
           description "Number of instances of VDU";
           type uint64;
@@ -391,6 +420,25 @@ module vnfd-base
 
         uses manotypes:image-properties;
 
+        list alternative-images {
+          key "vim-type";
+          description
+            "List of alternative images per VIM type.
+            Different images can be used for specific types of VIMs instead
+            of the default image. This allows deployments in sites where the
+            image identifier in the VIM is given by the VIM provider and
+            cannot be modified.
+            If an alternative image is specified for a VIM type, it will prevail
+            over the default image";
+
+          leaf vim-type {
+            description "VIM type: openvim, openstack, vmware, aws, etc.";
+            type string;
+          }
+
+          uses manotypes:image-properties;
+        }
+
         container vdu-configuration {
           uses manotypes:vca-configuration;
         }
@@ -464,6 +512,17 @@ module vnfd-base
             default "EXTERNAL";
           }
 
+          leaf mac-address {
+            description
+                "MAC address of the interface.
+                Some VNFs require a specific MAC address to be configured
+                in the interface. While this is not recommended at all in
+                NFV environments, this parameter exists to allow those
+                scenarios.
+                This parameter will be likely deprecated in the future.";
+            type string;
+          }
+
           choice connection-point-type {
             case internal {
               leaf internal-connection-point-ref {