Feature 1417: support of PDUs in a VNF
[osm/IM.git] / models / yang / vnfd-base.yang
index 2a20d90..1407016 100644 (file)
@@ -62,7 +62,7 @@ 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;
     }
   }
@@ -100,7 +100,7 @@ module vnfd-base
              E1000           : Emulate E1000 interface.
              RTL8139         : Emulate RTL8139 interface.
              PCNET           : Emulate PCNET interface.
-             OM-MGMT         : Used to specify openmano mgmt external-connection type";
+             OM-MGMT         : Deprecated! Use VIRTIO instead and set the VNF management interface at vnfd:mgmt-interface:cp";
 
         type enumeration {
           enum OM-MGMT;
@@ -216,7 +216,7 @@ module vnfd-base
 
           case cp {
             description
-                "Use the ip address associated with this connection point.";
+                "Use the ip address associated with this connection point. This cp is then considered as management.";
             leaf cp {
               type leafref {
                 path "../../connection-point/name";
@@ -298,11 +298,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 +347,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 +381,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 +419,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 +511,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 {