This page shows the extensions and changes made in R3 clean version VNFD model compared with ETSI IFA011 v2.5.1.
The analysis is based on Comparison of Current R3 Clean Version with IFA011 v2.5.1.
BOLD BLUE text indicates those enhancements ONAP has made and would like to propose back to the ETSI community. And BOLD PURPLE text represents candidates for deprecation in support of HPA.
Class: Vnfd
A VNFD is a deployment template which describes a VNF in terms of deployment and operational behaviour requirements. It also contains connectivity, interface and virtualised resource requirements.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
vnfmInfo | String | 0..* (IFA has 1..*) | Identifies VNFM(s) compatible with the VNF described in this version of the VNFD. Using the name of micro-service of the vnfm drive. For vendor specific VNFM, the value composes of "vendorname" and "vnfmdriver", e.g. "mycompanyvnfmdriver"; for generic VNFM, the value is "gvnfmdriver". | OpenModelAttribute
| attribute | value specified cardinality change | Value is specified according to the usage in VFC project. Lower cardinality is changed to 0 because not all VNFs in ONAP need to be managed by VNFMs, SO/APPC could also serve the similar functionality. |
localizationLanguage | String | 0..* | Information about localization languages of the VNF (includes e.g. strings in the VNFD). NOTE: This allows to provide one or more localization languages to support selecting a specific localization language at VNF instantiation time. The value refer to ISO936 https://www.iso.org/iso-639-language-codes.html . | OpenModelAttribute
| attribute | type and value specified | Value is specified according to the usage in VFC project. |
defaultLocalizationLanguage | String | 0..1 | Default localization language that is instantiated if no information about selected localization language is available. The value refer to ISO936 https://www.iso.org/iso-639-language-codes.html . | OpenModelAttribute
| attribute | type and value specified | Value is specified according to the usage in VFC project. |
vnfReservedCpd | VduCpd | 0..* | Reserved IP Address for VNF which is not bounded to any specific VNFC, but assigned manually from outside and potentially shared as a floating IP among VNFCs. | OpenModelAttribute
| association | new attribute | |
modifiableAttributes | VnfInfoModifiableAttributes | 1 (IFA has 0..1) | Describes the modifiable attributes of the VNF. | OpenModelAttribute
| attribute | cardinality change | |
logo | String | 0..1 | File path of the vendor specified logo. | OpenModelAttribute
| attribute | new attribute | |
guide | String | 0..1 | UUID of the vendor guide/documentation which is attached to VNF and can be downloaded from the model. | OpenModelAttribute
| attribute | new attribute |
Class: Vdu
The Virtualisation Deployment Unit (VDU) is a construct supporting the description of the deployment and operational behaviour of a VNFC.
A VNFC instance created based on the VDU maps to a single virtualisation container (e.g.; a VM).
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
nfviConstraint | KeyValuePair | 0..* | Describes constraints on the NFVI for the VNFC instance(s) created from this Vdu. For example, aspects of a secure hosting environment for the VNFC instance that involve additional entities or processes. NOTE: These are constraints other than stipulating that a VNFC instance has access to a certain resource, as a prerequisite to instantiation. The attributes virtualComputeDesc and virtualStorageDesc define the resources required for instantiation of the VNFC instance. The "key/name" includes "AvailabilityZone" and "HostAggregates". | OpenModelAttribute
| attribute | type specified | Openstack has the concepts "availability zone" and "host aggregates" by which the operator could specify (or constrain) the deployment location of the VM (VNFC instance). It's proposed to have these two attributes defined in the VNFD as input parameters (with default values defined if necessary). |
injectFiles | String | 0..* | Describes the information (e.g. URL) about the scripts, config drive metadata, etc. which can be used during Vdu booting process. | OpenModelAttribute
| attribute | new attribute | There are two ways to inject data into VM instance during instantiation process: 1) using config drive to provide such information (covered by the bootData attribute in the VNFD); 2) using an injection file. It's proposed to also support this way of providing additional data to the VM instance. Note: file injection is deprecated in OpenStack Queen version |
Class: SwImageDesc
This information element describes the software image for a particular VDU or a virtual storage resource.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
version | String | 1 | The version of this software image. | OpenModelAttribute
| attribute | question | "vnfSoftwareVersion" and "vnfdVersion" attributes have type "Version", while this attribute has type "String", should they be aligned? i.e., change "String" into "Version"? |
Class: VirtualComputeDesc
The VirtualComputeDesc class supports the specification of requirements related to virtual compute resources.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
requestAdditionalCapabilities | RequestedAdditionalCapabilityData | 0..* | Specifies requirements for additional capabilities. These may be for a range of purposes. One example is acceleration related capabilities. | OpenModelAttribute
| attribute | deprecate | |
computeRequirements | KeyValuePair | 0..* | Specifies compute requirements. | OpenModelAttribute
| attribute | type specified | Type and value are defined per HPA proposal. |
Datatype: VirtualCpuData
The VirtualCpuData information element supports the specification of requirements related to virtual CPU(s) of a virtual compute resource.
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
virtualCpuOversubscriptionPolicy | 0..1 | The CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads. The cardinality can be 0 during the allocation request, if no particular value is requested. | OpenModelAttribute
| deprecate | ||
vduCpuRequirements | KeyValuePair | 0..* | Array of key-value pair requirements on the Compute (CPU) for the VDU. | OpenModelAttribute
| type specified | Type and value are defined per HPA proposal. |
virtualCpuPinning | VirtualCpuPinningData | 0..1 | The virtual CPU pinning configuration for the virtualised compute resource. | OpenModelAttribute
| deprecate | Covered by vduCpuRequirements attribute per HPA proposal. |
Datatype: VirtualMemoryData
The VirtualMemoryData information element supports the specification of requirements related to virtual memory of a virtual compute resource.
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
virtualMemOversubscriptionPolicy | 0..1 | The memory core oversubscription policy in terms of virtual memory to physical memory on the platform. The cardinality can be 0 during the allocation request, if no particular value is requested. | OpenModelAttribute
| deprecate | ||
vduMemRequirements | KeyValuePair | 0..* | Array of key-value pair requirements on the memory for the VDU. | OpenModelAttribute
| type specified | Type and value are defined per HPA proposal. |
numaEnabled | Boolean | 0..1 | It specifies the memory allocation to be cognizant of the relevant process/core allocation. The cardinality can be 0 during the allocation request, if no particular value is requested. | OpenModelAttribute
| deprecate |
Class: VirtualStorageDesc
The VirtualStorageDesc information element supports the specifications of requirements related to persistent virtual storage resources. Ephemeral virtual storage is specified in VirtualComputeDesc information element.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
vduStorageRequirements NOTE: This attribute is moved to BlockStorageData in IFA011 v2.5.1 | KeyValuePair | 0..* | An array of key-value pairs that articulate the storage deployment requirements. | OpenModelAttribute
| attribute | type specified | Type and value are defined per HPA proposal. |
rdmaEnabled NOTE: This attribute is moved to BlockStorageData in IFA011 v2.5.1 | Boolean | 0..1 | Indicate if the storage support RDMA. | OpenModelAttribute
| attribute | deprecate |
Class: LogicalNodeData
NOTE: In IFA011 v2.5.1 this is changed to class LogicalNodeRequirements
This information element describes compute, memory and I/O requirements that are to be associated with the logical node of infrastructure. The logical node requirements are a sub-component of the VDU level requirements. As an example for illustration purposes, a logical node correlates to the concept of a NUMA cell in libvirt terminology.
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
logicalNodeRequirementDetail | KeyValuePair | 1..* | The logical node-level compute, memory and I/O requirements. An array of key-value pairs that articulate the deployment requirements. This could include the number of CPU cores on this logical node, a memory configuration specific to a logical node (e.g. such as available in the Linux kernel via the libnuma library) or a requirement related to the association of an I/O device with the logical node. | OpenModelAttribute
| type specified | Type and value are defined per HPA proposal. |
Class: Cpd
The Cpd class specifies the characteristics of connection points attached to NFs and NSs. This is an abstract class used as parent for the various Cpd classes.
Note 1: the description of this class is different in ETSI GS NFV IFA 011 and ETSI GS NFV IFA 014. The present definition uses the definition in ETSI GS NFV IFA 014 as it is the more general.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
allowedAddressData Note: Ongoing discussion is proposing to move this out of Cpd (into VNFD) as it is specified to VNFD. | AddressData | 0..N | For specifying floating IP(s) to be shared among Cpds, which are reserved for vnfReservedCpd described in the VNFD. | OpenModelAttribute
| attribute | new attribute |
Class: VduCpd
Describes network connectivity between a VNFC instance (based on this VDU) and an internal Virtual Link.
Parent class: Cpd
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
vnicName | String | 0..1 | Describes the name of the vNIC this CP attaches to, e.g. eth0. It will be configured during the Vdu booting process. | OpenModelAttribute
| attribute | new attribute | An optional attribute used when creating a port resource in Openstack. |
Class: VduProfile
The VduProfile describes additional instantiation data for a given VDU used in a DF.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
watchdog | String | 0..1 | Watchdog action to be triggered by the VIM for the VNF in case the heart beat fails, e.g. reset or hard shutdown, etc. | OpenModelAttribute
| Attribute | new attribute | |
vmBootUpTimeOut | Integer | 0..1 | Timeout value for the VNFM to wait before the successful booting up of the VDU. | OpenModelAttribute
| Attribute | new attribute | To specify the maximum time VNFM should wait before a VNF instance is successfully boot up. If timeout, the instantiation would be considered as failed. |
Class: VirtualNetworkInterfaceRequirements
This class specifies requirements on a virtual network interface.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
networkInterfaceRequirements | KeyValuePair | 0..* | The network interface requirements. An element from an array of key-value pairs that articulate the network interface deployment requirements. | OpenModelAttribute
| Attribute | type specified |
Class: VnfVirtualLinkDesc
Represents the type of network connectivity mandated by the VNF vendor between two or more Connection Points which includes at least one Internal Connection Point.
Parent class: VirtualLinkDesc
NOTE: Ongoing discussion is proposing to define root classes for ONAP IM, may suggest ETSI to have a similar design. For example, define a "VirtualLinkDesc" as the root class for "VnfVirtualLinkDesc" and "NsVirtualLinkDesc". Please note that IFA015 has already defined "VirtualLinkDesc" but not in IFA011/014.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
virtualLinkDescId | Identifier | 1 | Unique identifier of this internal VLD in VNFD. Model definition: Uniquely identifies a VLD in the parent descriptor. (this is because you can have VnfVirtualLinkDesc and NsVirtualLinkDesc) | Note: Inherited from Class VirtualLinkDesc OpenModelAttribute
| Attribute | put this attribute in the root class "VirtualLinkDesc" | |
connectivityType | ConnectivityType | 1 | Specifies the protocol exposed by a VL and the flow pattern supported by the VL. | Note: Inherited from Class VirtualLinkDesc OpenModelAttribute
| Attribute | complement the description | to align with IFA015 |
testAccess | String | 0..* | Specifies test access facilities expected on the VL (e.g. none, passive monitoring, or active (intrusive) loopbacks at endpoints). | Note: Inherited from Class VirtualLinkDesc OpenModelAttribute
| Attribute | put this attribute in the root class "VirtualLinkDesc" | |
description | String | 0..1 | Provides human-readable information on the purpose of the VL (e.g. control plane traffic). | Note: Inherited from Class VirtualLinkDesc OpenModelAttribute
| Attribute | put this attribute in the root class "VirtualLinkDesc" |
Class: VnfDf
A specific deployment version of a VNF with specific requirements for capacity and performance.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
placementGroup | PlacementGroup | 0..* | Determine where VNFC's (VDU's) are placed with respect to the VNF | OpenModelAttribute
| Association | new attribute | |
baseConfigGroup | BaseConfigGroup | 0..1 |
| OpenModelAttribute
Experimental | Association | new attribute | |
deploymentGroup | DeploymentGroup | 1..* | DeploymentGroup provides the minimum viable VDU and associated VNFC configuration for a useable VNF. | OpenModelAttribute
Experimental | Association | new attribute |
NOTE: the above 3 new attributes/types are inherited from the ElementGroup class which is deprecated in IFA011 v2.5.1.
Class: VirtualLinkProfile
The VirtualLinkProfile class specifies a profile for instantiating VLs of a particular NS DF according to a specific VLD and VL DF.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | AttributeType | Category | Rationale |
---|---|---|---|---|---|---|---|
virtualLinkProfileId Note: This is missing in IFA011 but is in the model. This is a necessary attribute in order to instantiate the class | Identifier | 1 | Uniquely identifies this VirtualLinkProfile class. | OpenModelAttribute
| Attribute | new attribute | align with IFA015 |
initiationParameters | KeyValuePair | 0..* | Specifies initiation parameters for the virtual link. Specified values include: cidr, allocationPools (represented by [starting ip address, ending ip address]), gatewayIp, networkName, segmentationId, physicalNetwork. NOTE: cidr, allocationPools, gatewayIp, networkName are already defined in L3ProtocolData in IFA. | OpenModelAttribute
| Attribute | new attribute |
Class: VirtualLinkDescFlavour
Description:
The VirtualLinkDescFlavour describes additional instantiation data for a given internal VL used in a DF.
Applied Stereotypes:
- OpenModelClass
support: MANDATORY - Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type | Category | Rationale |
---|---|---|---|---|---|---|---|
qos | QoS | 0..1 | QoS of the VL. | OpenModelAttribute
| Attribute | question | IFA015 seems to have defined "VnfQoS" as the type. Should IFA011/014 follow the same pattern, i.e., define "VnfQoS" and "NsQoS" separately? |
Datatype: CpProtocolData
A CpProtocolData information element describes and associates the protocol layer that a CP uses together with other protocol and connection point information.
Applied Stereotypes:
Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
addressData | AddressData | 0..* | Provides information on the addresses to be assigned to the CP(s) instantiated from the CPD. | OpenModelAttribute
| question | IFA015 has the cardinality defined as 1, is it a mistake? |
Datatype: VirtualCpuPinningData (suggest to deprecate)
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes |
---|---|---|---|---|
virtualCpuPinningPolicy | Enum | 0..1 | The policy can take values of "static" or "dynamic". In case of "static" the virtual CPU cores are requested to be allocated to logical CPU cores according to the rules defined in virtualCpuPinningRules. In case of "dynamic" the allocation of virtual CPU cores to logical CPU cores is decided by the VIM. (e.g.: SMT (Simultaneous Multi-Threading) requirements). | OpenModelAttribute
|
virtualCpuPinningRule | Not specified | 0..1 | A list of rules that should be considered during the allocation of the virtual CPUs to logical CPUs in case of "static" virtualCpuPinningPolicy. | OpenModelAttribute
|
Datatype: VnfConfigurableProperties
Description:
This datatype defines the configurable properties of a VNF (e.g. related to auto scaling and auto healing). For a VNF instance, the value of these properties can be modified by the VNFM.
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
additionalConfigurableProperty | String | 0..* | It provides VNF specific configurable properties that can be modified using the ModifyVnfInfo operation. | OpenModelAttribute
| type specified |
Datatype: VnfcConfigurableProperties
This datatype defines the configurable properties of a VNFC. For a VNFC instance, the value of these properties can be modified through the VNFM.
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
additionalVnfcConfigurableProperty | String | 0..N | It provides VNFC configurable properties that can be modified using the ModifyVnfInfo operation. NOTE: A cardinality of "0" indicates that configuring this present VNF property is not supported. | OpenModelAttribute
| type specified |
Datatype: LifecycleManagementScript
NOTE: In IFA015 this is called VnfLifecycleManagementScript to distinguish it from NsLifecycleManagementScript. Should IFA011 be align with IFA015?
Defines the information elements related to the lifecycle management script for the VNF.
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
script | String | 1 | Information to locate a VNF LCM script (e.g. written in a DSL as specified in requirement VNF_PACK.LCM.001)triggered to react to one of the events listed in the event attribute. | OpenModelAttribute
| type specified | |
scriptInput | KeyValuePair | 0..* | Array of KVP requirements with the key as the parameter name and the value as the parameter that need to be passed as an input to the script. NOTE: The scriptInput values are passed to the scripts in addition to the parameters received in the operation invocation request or indicator value change. | OpenModelAttribute
| type specified |
Datatype: MonitoringParameter
Specifies the virtualized resource related performance metric to be tracked by the VNFM, e.g. for auto-scaling purposes. The VNFM collects the values of performance metrics identified by this information element from the VIM(s) using one or more locally initiated PM Jobs. These values can be used as inputs to auto-scaling rules
Applied Stereotypes:
- Preliminary
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Category | Rationale |
---|---|---|---|---|---|---|
collectionPeriod | Enum (CollectionPeriod) but with no enumeration literals defined | 0..1 | An attribute that describes the recommended periodicity at which to collect the performance information. VNFM determines if this parameter is considered. The vendor may provide this information as a guidance for creating PmJobs if needed. NOTE: The MANO or NFVI may not support the recommended collectionPeriod based on their functionalities, and can reject the requests based on the recommended collectionPeriod in this case. | OpenModelAttribute
| type specified |
Class: PlacementGroup (Experimental) - New Class
Attribute Name | Type | Multiplicity | Description | Applied Stereotypes | Attribute Type |
---|---|---|---|---|---|
elementGroupId | Identifier | 1 | Unique identifier of this group in the VNFD. | OpenModelAttribute
| Attribute |
placementStrategy | Enum Define an actual enum type with values: COLOCATION, ISOLATION, and EXCLUSIVELY | 1 | Determine where VNFC's (VDU's) are placed with respect to the VNF. NOTE:
| OpenModelAttribute
| Attribute |
vnfcMembers | Not specified (should it be Identifier (Reference to Vdu)?) Good question. If it is the end of an association is should be type Vdu? | 0..N | References to Vdus that are part of this group. | OpenModelAttribute
| Association? |
strategyScope | Enum Define an actual enum with values: HOST, and RACK | 1 | indicate if the strategy is applied at the host or rack level. | OpenModelAttribute
| Attribute |