Casablanca R3: TOSCA VNFD Requirements Draft

5.1. ONAP TOSCA VNFD Requirements

5.1.1. Introduction

The following sub-clauses describe the numbered requirements for VNF Descriptor (VNFD) or in other words the VNF Service Template based on the most updated draft of ETSI NFV-SOL001 standard for VNF Descriptor. The ETSI standard specifies a NFV specific data model using TOSCA/YAML data model constructs specified in TOSCA Simple Profile in YAML v.1.2.

The requirements for TOSCA/CSAR based VNF package are described as well and they are based on ETSI NFV-SOL004 standard.

5.1.2. References

  1. ETSI GS NFV-SOL001 draft v.0.10.0

  2. TOSCA SIMPLE Profile in YAML v.1.2 

  3. ETSI GS NFV-SOL004 v.2.5.1

5.1.3. Intended Audience

This document is intended for developers of VNF TOSCA templates that will be orchestrated by ONAP. The document is also applicable for creating RFP’s with the list of required TOSCA/YAML features supported by VNF provider.

5.1.4. Scope and Overview

5.1.5. VNF CSAR Package

CSAR Overview

TOSCA YAML CSAR file is an archive file using the ZIP file format whose structure complies with the TOSCA Simple Profile YAML v1.2 Specification. The CSAR file may have one of the two following structures:

  • CSAR containing a TOSCA-Metadata directory, which includes the TOSCA.meta metadata file providing an entry information for processing a CSAR file.

  • CSAR containing a single yaml (.yml or .yaml) file at the root of the archive. The yaml file is a TOSCA definition template that contains a metadata section with template_name and template_version metadata. This file is the CSAR Entry-Definitions file.

VNF Package Structure and Format

R-XXXXX: The VNF package MUST be arranged as a CSAR archive as specified in TOSCA Simple Profile in YAML 1.2.

R-XXXXX: The VNF package provided by a VNF vendor MAY be either with TOSCA-Metadata directory (CSAR Option 1) or without TOSCA-Metadata directory (CSAR Option 2) as specified in ETSI GS NFV-SOL004. On-boarding entity (ONAP SDC) must support both options.

Note: SDC supports only the CSAR Option 1 in Casablanca. The Option 2 will be considered in future ONAP releases,

VNF Package Contents

R-77707: The VNF package MUST contain all standard artifacts as specified in ETSI GS NFV-SOL004 including Manifest file, VNFD (or Main TOSCA/YAML based Service Template) and other optional artifacts. CSAR Manifest file as per SOL004 - for example ROOT\ MainServiceTemplate.mf

R-66070: The VNF package Manifest file MUST contain: VNF package meta-data, a list of all artifacts (both internal and external) entry’s including their respected URI’s, an algorithm to calculate a digest and a digest result calculated on the content of each artifacts, as specified in ETSI GS NFV-SOL004. The VNF Package MUST include VNF Identification Data to uniquely identify the resource for a given VNF provider. The identification data must include: an identifier for the VNF, the name of the VNF as was given by the VNF provider, VNF description, VNF provider, and version.

R-04298: The VNF provider MUST provide their testing scripts to support testing as specified in ETSI NFV-SOL004 - Testing directory in CSAR

R-26881: The VNF provider MUST provide the binaries and images needed to instantiate the VNF (VNF and VNFC images) either as:

  • Local artifact in CSAR: ROOT\Artifacts\ VNF_Image.bin

  • externally referred (by URI) artifact in Manifest file (also may be referred by VNF Descriptor)

Note: Currently , ONAP doesn't have the capability of Image management, we upload the image into VIM/VNFM manually.

R-40827: The VNF provider MUST enumerate all of the open source licenses their VNF(s) incorporate. CSAR License directory as per ETSI SOL004

for example ROOT\Licenses\ License_term.txt

VNF Package Authenticity

tbd.



VNF Package ONAP Extensions

  1. TOACA data type extension tosca.datatypes.nfv.injectFile is used for vCPE use case

  2. ONAP extensions for VNF package that is currently proposed for Dublin release is VES extension described below. 

5.1.6. TOSCA Introduction

5.1.7. TOSCA Modeling Principles & Data Model

5.1.8. TOSCA VNF Descriptor

General

R-XXXXX: 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.

R-XXXXX: The VNFD MUST comply with ETSI GS NFV-SOL001 document endorsing the above mentioned NFV Profile and maintaining the gaps with the requirements specified in ETSI GS NFV-IFA011 standard.

R-XXXXX: 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.

R-35851: 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, that the actual LCM implementation resides in a different layer, namely referring to additional template artifacts.



R-35851:: 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:



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.nfv.Cp

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 provider MUST describe scaling capabilities to manage scaling characteristics of the VNF.

tosca.datatypes.nfv.ScalingAspect

tosca.datatypes.Root

TBD in ETSI NFV-SOL001

 N



Data Types

R-XXXXX: 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.



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

 

 

 

R-XXXXX: 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.



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





Artifact Types

No artifact type is currently supported in ONAP. 

Capability Types

R-XXXXX: 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



Relationship Types

R-XXXXX: 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.


Interface Types

R-XXXXX: 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



5.1.9. HPA Requirements

(existing text remains)

5.1.10. VES Requirements



Note: ONAP proprietary extensions in ETSI SOL004 standards for VES support in CSAR package need to be manually loaded in R3 (Casablanca) for VNF and PNFs. Platform support will be developed for this in upcoming releases.