Feature 639: support of floating IPs
[osm/IM.git] / models / yang / vnfd-base.yang
index 5d76290..9163e33 100644 (file)
@@ -74,6 +74,17 @@ module vnfd-base
     }
   }
 
+  typedef vnf-operational-status {
+    type enumeration {
+      enum init;
+      enum running;
+      enum upgrading;
+      enum terminate;
+      enum terminated;
+      enum failed;
+    }
+  }
+
   grouping virtual-interface {
     container virtual-interface {
       description
@@ -89,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;
@@ -160,7 +171,22 @@ module vnfd-base
         type string;
       }
 
-      uses manotypes:vca-configuration;
+      container vnf-configuration {
+        uses manotypes:vca-configuration;
+      }
+
+      leaf operational-status {
+         description
+           "The operational status of the VNF
+             init                : The VNF has just started.
+             running             : The VNF is active in VM
+             upgrading           : The VNF is being upgraded (EXPERIMENTAL)
+             terminate           : The VNF is being terminated
+             terminated          : The VNF is in the terminated state.
+             failed              : The VNF  instantiation failed.
+           ";
+         type vnf-operational-status;
+      }
 
       container mgmt-interface {
         description
@@ -190,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";
@@ -277,6 +303,10 @@ module vnfd-base
               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;
@@ -365,6 +395,29 @@ 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;
+        }
+
         choice cloud-init-input {
           description
             "Indicates how the contents of cloud-init script are provided.
@@ -434,6 +487,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 {