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