Some VNF suppliers make use of the underlying hardware platform capabilities in order to accelerate performance and optimize throughput of their VNF products. In order to ensure proper instantiation and operation of such VNFs, the VNF descriptor (VNFD) is used to describe VNF-specific hardware platform (HPA) capability requirements that will be matched against the capabilities of the underlying hardware infrastructure resources, in order to ensure that appropriate resources are used for instantiation.
Requirement Format
Specifying HPA
...
requirements
There are five different types of HPA capability requirements that can be specified using in the VNFD VNFdescriptor - CPU, memory, storage, network and NUMA. Each requirement type is specified using a separate key-value pair arrayspecified using a TOSCA hash map containing a list of capabilities and their corresponding desired configuration values. The names of HPA capabilities and the format of their configuration values are managed outside of ONAP, using the HPA Capability Registry maintained by ETSI NFV ISG, and are meant to be opaque from the TOSCA orchestrator and parser perspectives. The following table describes where within the VNFD the HPA requirement hash maps are defined and where within the VNFD they are used.
HPA Requirements | Attribute Name | Defined in... | Used in... |
---|
CPU | vdu_cpu_requirements | tosca.datatypes.nfv.VirtualCpu | tosca.nodes.nfv.VDU.Compute |
Memory | vdu_memory_requirements | tosca.datatypes.nfv.VirtualMemory | tosca.nodes.nfv.VDU.Compute |
NIC | network_interface_requirements | tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements | tosca.nodes.nfv.VduCp tosca.nodes.nfv.VnfExtCp |
Storage | vdu_storage requirements | map | tosca.nodes.nfv.VDU.VirtualStorage |
NUMA | logical_node_requirements | tosca.datatypes.nfv.LogicalNodeData | tosca.nodes.nfv.VDU.Compute |
HPA Requirement Key/Value Pair Entry Format
HPA capability requirements are specified using a set of TOSCA hash maps within the VNFD. Each entry in the array hash map fully defines a single HPA capability requirement. Within a given hash map entry, the "key" portion of the entry contains the HPA capability name and the "value" portion contains structured data representing the the attributes of the corresponding configuration value.
The "key" portion of each array entry contains a string specifying a particular HPA capability name. The "value" portion of each array entry is a structured field containing information used to interpret the requested capability configuration. The capability values are defined as TOSCA strings, and their content can vary from a single attribute to complex permutations of simple attributes, lists and hash maps. Content and structure of capability values are defined using JSON schemas that can be used to parse the capability value strings in order to determine the desired state of HPA capabilities.
All capability value strings contain a set of pre-defined attributes that are used refine the how the requirements should be treated and what configuration value schema should be used for its interpretation. The following table describes that pre-defined attributes and their purpose:
Array Entry | Values |
---|
<key> | A string specifying the name of a given HPA capability. |
<value> | A |
list map of key-value pairs describing the configuration value of a given capability, where the key-value pairs are defined as follows |
| |
schema-versionschemaVersion | string | A string describing the version the schema to be used for validation and interpretation of the <configuration-value>. |
|
schema-locationA URL formatted string describing the location of the schema. | platform-idAn Identifier for the particular schema to use. | hardwarePlatform | string | A string describing what hardware platform associated with a given HPA capability. For vendor-neutral HPA capabilities, a value of "generic" is used. | mandatory |
|
booleanstring | A boolean value expressed in string type specifying whether the requested capability is mandatory for for proper operation of the VNF. The value of "true" indicated that a given HPA capability must be present. The value of "false" indicates that the VNF can function with or without the capability. |
|
configuration-valueconfigurationValue | string | A string describing the configuration value of a given capability, as defined by the schema. |
|
CPU & Memory Requirements
Storage Requirements
...
NUMA Requirements
...
...
. | Structured data representing the HPA capability configuration value-specific attributes. Can vary from a single attribute to complex permutations of simple attributes, lists and hash maps. |