5.1.3. TOSCA VNF Descriptor

5.1.3.1. General

Requirement: R-35854 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca

The VNF Descriptor (VNFD) provided by VNF vendor MUST comply with TOSCA/YAML based Service template for VNF descriptor specified in ETSI NFV-SOL001.

Note: As the ETSI NFV-SOL001 is work in progress the below tables summarizes the TOSCA definitions agreed to be part of current version of NFV profile and that VNFD MUST comply with in ONAP Release 2+ Requirements.

Requirement: R-65486 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca
updated: dublin
The VNFD MUST comply with ETSI GS NFV-SOL001 specification endorsing the above mentioned NFV Profile and maintaining the gaps with the requirements specified in ETSI GS NFV-IFA011 standard.
Requirement: R-17852 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MAY
introduced: casablanca
The VNFD MAY include TOSCA/YAML definitions that are not part of NFV Profile. If provided, these definitions MUST comply with TOSCA Simple Profile in YAML v.1.2.
Requirement: R-46527 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca

A VNFD is a deployment template which describes a VNF in terms of deployment and operational behavior requirements. It contains virtualized resources (nodes) requirements as well as connectivity and interfaces requirements and MUST comply with info elements specified in ETSI GS NFV-IFA 011. The main parts of the VNFD are the following:

  • VNF topology: it is modeled in a cloud agnostic way using virtualized containers and their connectivity. Virtual Deployment Units (VDU) describe the capabilities of the virtualized containers, such as virtual CPU, RAM, disks; their connectivity is modeled with VDU Connection Point Descriptors (VduCpd), Virtual Link Descriptors (VnfVld) and VNF External Connection Point Descriptors (VnfExternalCpd);
  • VNF deployment aspects: they are described in one or more deployment flavours, including configurable parameters, instantiation levels, placement constraints (affinity / antiaffinity), minimum and maximum VDU instance numbers. Horizontal scaling is modeled with scaling aspects and the respective scaling levels in the deployment flavours;

Note: The deployment aspects (deployment flavour etc.) are postponed for future ONAP releases.

  • VNF lifecycle management (LCM) operations: describes the LCM operations supported per deployment flavour, and their input parameters; Note, thatthe actual LCM implementation resides in a different layer, namely referring to additional template artifacts.
Requirement: R-15837 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca
The following table defines the major TOSCA Types specified in ETSI NFV-SOL001 standard draft. The VNFD provided by a VNF vendor MUST comply with the below definitions:
TOSCA Definition

Info Element

From ETSI GS NFV-IFA 011

Implementation in TOSCA NFV Profile and Endorsement in ETSI GS NFV-SOL001 Derived from Description Supported in ONAP Casablanca release
VNFD tosca.nodes.nfv.VNF tosca.nodes.Root TOSCA main service template and describes a VNF in terms of deployment and operational behavior requirements, connectivity, interfaces and virtualized resource requirements. Y

VDU Compute Descriptor

R-09467

tosca.nodes.nfv.VDU.Compute tosca.nodes.Root

Represents VNF-C (or VM) with deployment flavours.

Represents the virtual compute part of a VDU entity which it mainly describes the deployment and operational behavior of a VNFC.

Note: Currently not directly supported but allowed via tosca.capabilities.nfv.VirtualCompute

Y but different way
VDU VirtualCompute Descriptor tosca.capabilities.nfv.VirtualCompute tosca.capabilities.Root Represents the virtual compute part of a VDU entity which it mainly describes the deployment and operational behavior of a VNFC Y

VDU VirtualStorage Descriptor

R-09467

tosca.nodes.nfv.VDU.VirtualStorage tosca.nodes.Root

Represents a virtual storage entity which it describes the deployment and operational behavior of a virtual storage resources.

Note: This node type is split into three in latest SOL001 draft how the data model uses an older version for Casablanca release.

Y
Cpd - Connection Point Descriptor tosca.nodes.nfv.Cp tosca.nodes.Root Represents network connectivity to a compute resource or a VL - abstract type used as parent for the various Cpd types. Y

VduCpd

R-35851

tosca.nodes.nfv.VduCp tosca.nodes.nfv.Cp Represents a type of TOSCA Cpd node and describes network connectivity between a VNFC instance (based on this VDU) and an internal VL Y

VnfVirtualLinkDesc

R-35851

tosca.nodes.nfv.VnfVirtualLink tosca.nodes.Root Node type represents a logical internal virtual link Y

VnfExtCpd (External Connection Point)

R-35851

tosca.nodes.nfv.VnfExtCp tosca.nodes.Root Represents a logical external connection point, exposed by this VNF enabling connecting with Virtual Link, N

SwImageDesc

R-02454

tosca.artifacts.nfv.SwImage tosca.artifacts.Deployment.Image

Artifact type describes the software image which is directly loaded on the Virtualisation container of the VDU or is to be loaded on a virtual storage resource.

Note: Currently not supported in Casablanca release as well as SW image artifact in CSAR

N

DeploymentFlavour

VnfDf info element

R-41215

tosca.capabilities.nfv.DeploymentFlavour tosca.capabilities.Root Note: Current ONAP release support a single deployment flavour N

Scaling Aspect

R-96634 The VNF providerMUSTdescribe scaling capabilities to manage scaling characteristics of the VNF.

tosca.datatypes.nfv.ScalingAspect tosca.datatypes.Root TBD in ETSI NFV-SOL001 N

5.1.3.2. Data Types

Requirement: R-54356 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca
The below table includes the data types used by NFV node and is based on TOSCA/YAML constructs specified in draft GS NFV-SOL 001. The node data definitions/attributes used in VNFD MUST comply with the below table.
NFV Data Types
Info Element From ETSI GS NFV-IFA 011 Implementation in ETSI NFV-SOL001 Derived from Description Supported in ONAP Casablanca release
l2AddressData tosca.datatype.nfv.L2AddressData tosca.datatypes.Root Describes the information on the MAC addresses to be assigned to the connection point(s) instantiated from the parent Connection Point Descriptor Y
L3AddressData tosca.datatypes.nfv.L3AddressData tosca.datatypes.Root A complex TOSCA data type describe L3AddressData information element, it provides the information on the IP addresses to be assigned to the connection point instantiated from the parent Connection Point Descriptor Y
AddressData tosca.datatypes.nfv.AddressData tosca.datatypes.Root A complex TOSCA data type describe AddressData information elemen, it provides information on the addresses to be assigned to the connection point(s) instantiated from a Connection Point Y
VirtualNetworkInterfaceRequirements tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements tosca.datatypes.Root A complex TOSCA data type describe VirtualNetworkInterfaceRequirements information element, it provides the information to specify requirements on a virtual network interface realizing the CPs instantiated from this CPD Y
ConnectivityType tosca.datatypes.nfv.ConnectivityType tosca.datatypes.Root A complex TOSCA data type used to describe ConnectivityType information element Y
RequestedAdditionalCapabilityData tosca.datatypes.nfv.RequestedAdditionalCapability tosca.datatypes.Root Describes additional capability for a particular VDU e.g. acceleration Y
VirtualMemoryData tosca.datatypes.nfv.VirtualMemory tosca.datatypes.Root Describes virtual memory for virtualized compute descriptor Y
VirtualCpuData tosca.datatypes.nfv.VirtualCpu tosca.datatypes.Root Describes virtual CPU (s) for virtualized compute descriptor Y
VirtualCpuPinning tosca.datatypes.nfv.VirtualCpuPinning tosca.datatypes.Root Describes CPU pinning configuration for a particular CPU Y
VnfcConfigurableProperties tosca.datatypes.nfv.VnfcConfigurableProperties tosca.datatypes.Root Describes additional configurable properties of a VNFC Y
VduProfile tosca.datatypes.nfv.VduProfile tosca.datatypes.Root

Describes additional instantiation data for a given VDU used in the a specific deployment flavour.

Note: Deployment flavour is not supported in Casablanca release.

N
VirtualLinkProfile tosca.datatypes.nfv.VlProfile tosca.datatypes.Root

Describes additional instantiation data for a given VL used in the a specific deployment flavour.

Note: Deployment flavour is not supported in Casablanca release.

N
InstantiationLevel tosca.datatypes.nfv.InstantiationLevel tosca.datatypes.Root

Describes a given level of resources to be instantiated within a deployment flavour in term of the number VNFC instances to be created from each VDU.

Note: Deployment flavour is not supported in Casablanca release.

N
VduLevel tosca.datatypes.nfv.VduLevel tosca.datatypes.Root Indicates for a given VDU in a given level the number of instances to deploy Y
ScaleInfo tosca.datatypes.nfv.ScaleInfo tosca.datatypes.Root Indicates for a given Scaling Aspect the corresponding Scaling Level Y
Inject File tosca.datatypes.nfv.injectFile tosca.datatypes.Root Note: ONAP extension used for vCPE use case Y
Scaling Aspect tosca.datatypes.nfv.ScalingAspect tosca.datatypes.Root   Y
Link Bit Rate Requirements tosca.datatypes.nfv.LinkBitRateRequirements tosca.datatypes.Root   Y
Quality of service data (loss ratio etc.) tosca.datatypes.nfv.Qos tosca.datatypes.Root   Y
Connection point protocol tosca.datatypes.nfv.CpProtocolData tosca.datatypes.Root   Y
VNF Configurable Properties tosca.datatypes.nfv.VnfConfigurableProperties tosca.datatypes.Root   Y
VNF Additional Configurable Properties tosca.datatypes.nfv.VnfAdditionalConfigurableProperties tosca.datatypes.Root   Y?
VnfInfo Modifiable Attributes tosca.datatypes.nfv.VnfInfoModifiableAttributes tosca.datatypes.Root   Y
VnfInfo Modifiable Attributes Extension tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions tosca.datatypes.Root   Y
VnfInfo Modifiable Attributes Metadata tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata tosca.datatypes.Root   Y
Requirement: R-54876 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca
The below table describes the data types used for LCM configuration and is based on TOSCA constructs specified in draft GS NFV-SOL 001. The LCM configuration data elements used in VNFD MUST comply with the below table.
LCM Configuration

Info Element

From ETSI GS NFV-IFA 011

Implementation in

ETSI NFV-SOL001

Derived from Description Supported in ONAP Casablanca release
VnfLcmOperationsConfiguration tosca.datatypes.nfv.VnfLcmOperationsConfiguration tosca.datatypes.Root Represents information to configure lifecycle management operations. Each VNF LCM operation configuration represent as a container for all attributes that effect the invocation of the VNF Lifecycle Management operations ? see below per LCM operation Y
InstantiateVnfOpConfig tosca.datatypes.nfv.VnfInstantiateOperationConfiguration tosca.datatypes.Root Represents information that affect the invocation of the InstantiateVnf operation Y
ScaleVnfOpConfig tosca.datatypes.nfv.VnfScaleOperationConfiguration tosca.datatypes.Root Represents information that affect the invocation of the ScaleVnf operation Y
ScaleVnfToLevelOpConfig tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration tosca.datatypes.Root Represents information that affect the invocation of the ScaleVnfToLevel operation Y
HealVnfOpConfig tosca.datatypes.nfv.VnfHealOperationConfiguration tosca.datatypes.Root Represents information that affect the invocation of the HealVnf operation Y
TerminateVnfOpConfig tosca.datatypes.nfv.VnfTerminateOperationConfiguration tosca.datatypes.Root Represents information that affect the invocation of the TerminateVnf Y
OperateVnfOpConfig tosca.datatypes.nfv.VnfOperateOperationConfiguration tosca.datatypes.Root Represents information that affect the invocation of the OperateVnf operation Y
ChangeVnfFlavourOpConfig tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration tosca.datatypes.Root Defines attributes for invocation of ChangeVnfFlavour operation N
ChangeExtVnfConnectivityOpConfig tosca.datatypes.nfv.VnfExtConnectivityOperationConfiguration tosca.datatypes.Root

Defines attributes for invocation of ChangeExtVnfConnectivty operation.

Note: External VNF connectivity is postponed to future ONAP releases.

N

5.1.3.3. Artifact Types

No artifact type is currently supported in ONAP.

5.1.3.4. Capability Types

Requirement: R-67895 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca

The VNFD provided by VNF vendor may use the below described TOSCA capabilities. An on-boarding entity (ONAP SDC) MUST support them.

tosca.capabilities.nfv.VirtualBindable

A node type that includes the VirtualBindable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualBindsTo relationship type.

tosca.capabilities.nfv.VirtualLinkable

A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship.

tosca.capabilities.nfv.ExtVirtualLinkable

A node type that includes the ExtVirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship.

Note: This capability type is used in Casablanca how it does not exist in the last SOL001 draft

tosca.capabilities.nfv.VirtualCompute and tosca.capabilities.nfv.VirtualStorage includes flavours of VDU

5.1.3.5. Relationship Types

Requirement: R-95321 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca

The VNFD provided by VNF vendor may use the below described TOSCA relationships. An on-boarding entity (ONAP SDC) MUST support them.

tosca.relationships.nfv.VirtualBindsTo

This relationship type represents an association relationship between VDU and CP node types.

tosca.relationships.nfv.VirtualLinksTo

This relationship type represents an association relationship between the VduCpd’s and VirtualLinkDesc node types.

5.1.3.6. Interface Types

Requirement: R-32155 ../../_images/arrow-right-circle.svg
target: VNF
keyword: MUST
introduced: casablanca

The VNFD provided by VNF vendor may use the below described TOSCA interface types. An on-boarding entity (ONAP SDC) MUST support them.

tosca.interfaces.nfv.vnf.lifecycle.Nfv supports LCM operations

tosca_definitions_version: tosca_simple_yaml_1_0

description: VNFD TOSCA file demo

imports:

  • TOSCA_definition_nfv_1_0.yaml
  • TOSCA_definition_nfv_ext_1_0.yaml
node_types: tosca.nodes.nfv.VNF.vOpenNAT: derived_from: tosca.nodes.nfv.VNF
requirements: **- **sriov_plane: capability: tosca.capabilities.nfv.VirtualLinkable
node: tosca.nodes.nfv.VnfVirtualLinkDesc
relationship: tosca.relationships.nfv.VirtualLinksTo