NFVI Platform Capability Registry: Difference between revisions
Line 49: | Line 49: | ||
|A short description of the capability, such as “memory page size. | |A short description of the capability, such as “memory page size. | ||
|} | |} | ||
The process for creating entries in this registry is subject to a governance process described in | The process for creating entries in this registry is subject to a governance process described in [[HPC registry operation | HPC registry operation]]. | ||
== '''The Registry''' == | == '''The Registry''' == |
Revision as of 12:46, 30 April 2019
This is the ETSI registry for key/value pairs used to represent hardware platform capabilities and settings, as part of NFV VNF descriptors (VNFD).
Introduction
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 is used to describe VNF-specific hardware platform 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.
This registry is defined to specify capabilities that are generic to all hardware vendors, as well as capabilities that are hardware vendor specific. There are five different categories that can be specified in the VNFD: CPU, memory, storage, network and logical node requirements. They are defined in terms of data model (i.e. TOSCA, YANG) neutral attributes within information elements specified in ETSI GS NFV-IFA 011 version 2.5.1 and beyond. The attribute "type" is defined as a map of strings that contains a set of key-value pairs.
EPA Requirements | IFA011 Information Element | Attribute |
---|---|---|
CPU | VirtualCpuData | vduCpuRequirements |
MEMORY | VirtualMemoryData | vduMemRequirements |
STORAGE | BlockStorageData | vduStorageRequirements |
NETWORK | VirtualNetworkInterfaceRequirements | networkInterfaceRequirements |
LOGICAL NODE | LogicalNodeRequirements | logicalNodeRequirementDetail |
Each attribute represents a table in the registry, with the entries in each table specifying the hardware platform capabilities. Each entry contains the following information:
Name | The name of the capability specified in lower camel case, for example memoryPageSize. |
Permitted Value | One or more permitted values used to configure the capability specified in lower camel case |
Version | The version of the capability specified as a decimal (X.X). There may be multiple versions supported. The versioning shall begin with 1.0 and be increased every time there is a change to the capability. |
Schema | The schema used to validate and configure the associated value. |
Hardware | If the capability is supported on all hardware platforms then this takes a value of "Generic". if not, it will be vendor specific such as Intel or ARM, etc. |
Description | A short description of the capability, such as “memory page size. |
The process for creating entries in this registry is subject to a governance process described in HPC registry operation.
The Registry
The entries in the tables below represent hardware capabilities supported by hardware vendors. When a capability is identified as "Generic" it implies the capability is supported by all hardware vendors. Otherwise the hardware is specified as vendor specific and thus is only supported by hardware provided by that vendor.
CPU Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
cpuModelSpecificationBinding | strictBinding
equalOrBetterBinding |
1.0 | Generic | VDUs may be developed, compiled, optimized or validated on particular CPU models. Some deployments may wish to permit the VDU to be deployed on a platform with the specified CPU only, or with an alternative CPU with the same architecture, instruction set, and if specified, instruction set extensions, or with a CPU of equivalent or greater capability. |
Memory Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
memoryPageSize | ANY, 4KB, 2MB, 1GB | 1.0 | Generic | Memory page size |
Storage Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
storageLops | 0..N | 1.0 | Generic | Required storage characteristics (e.g. speed), including Key Quality Indicators (KQIs) for performance and reliability/availability | |
storageResilencyMechanism | Erasure
tripleReplication |
1.0 | Generic | Erasure code based back-end, triple replication based back-end for ensuring data resiliency. |
Network Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
nicFeature | LSO, LRO, RSS, RDMA | 1.0 | Generic | Long list of NIC related items such as LSO, LRO, RSS, RDMA, etc |
Logical Node Requirement Detail
The logical node requirements are broken-out into three types: Compute, Memory, and I/O.
Logical Node Compute Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
numberCpu | 0..N | 1.0 | Generic | Number of CPU cores for this logical node. The cumulative number of CPU requests per node must equal the VDU level numVirtualCpu requirement. |
Logical Node Memory Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
localNumaMemorySize | 0..N | 1.0 | Generic | The amount of memory that needs to be collocated with this specific logical (NUMA) node. |
Logical Node I/O Requirements – Example entry in the Registry
Name | Value | Version | Schema | Hardware | Description |
pciVendorId | 1.0 | Generic | PCI-SIG vendor ID for the device |
Mappings to Specific Data Models
Mapping to ETSI GS NFV-SOL 001 data model (TOSCA)
Mapping Table
For each of the five platform capability categories - CPU, memory, storage, network and logical node - the associated attribute defined in ETSI GS NFV-IFA 011 is mapped to a property of type “map of string” of a TOSCA data type specified in ETSI GS NFV-SOL 001. The following table describes for each attribute defined in ETSI GS NFV-IFA 011 and representing one of these five categories, the corresponding TOSCA property, the TOSCA data type where this property is used and the TOSCA node type where this data type is used, in accordance with ETSI GS NFV-SOL 001 v2.5.1 and beyond.
Category | IFA011 Attribute | As Property | Data Type Defined in SOL001 | Used in SOL001 |
CPU | vduCpuRequirements | vdu_cpu_requirements | tosca.datatypes.nfv.VirtualCpu | tosca.nodes.nfv.Vdu.Compute |
Memory | vduMemRequirements | vdu_mem_requirements | tosca.datatypes.nfv.VirtualMemory | tosca.nodes.nfv.Vdu.Compute |
Network | networkInterfaceRequirements | network_interface_requirements | tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements | tosca.nodes.nfv.VduCp
tosca.nodes.nfv.VnfExtCp |
Storage | vduStorageRequirements | vdu_storage_requirements | tosca.datatypes.nfv.VirtualBlockStorageData | tosca.nodes.nfv.Vdu.VirtualBlockStorage
|
Logical Node | logicalNodeRequirementDetail | logical_node_requirements | tosca.datatypes.nfv.LogicalNodeData | tosca.nodes.nfv.Vdu.Compute |
Key/Value Pair Entry Format
Each entry in the hash maps defined above fully defines a single hardware platform capability. Within a given hash map entry, the "key" portion of the entry contains the capability name (as defined in the registry) and the "value" portion contains structured data representing the attributes of the corresponding configuration value.
The "key" portion of each array entry contains a string specifying a particular 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 platform 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 hardware platform capability as defined in the "name" column of a given registry table. | ||||||||||||||||||
<value> | A map of key-value pairs describing the configuration value of a given capability, where the key-value pairs are defined as follows | ||||||||||||||||||
| |||||||||||||||||||
... | Structured data representing the hardware platform capability configuration value-specific attributes can vary from a single attribute to complex permutations of simple attributes, lists and hash maps. |
Examples
CPU Hardware Capabilities
Usage of vdu_cpu_requirements key-value pairs as specified in tosca.nodes.nfv.Vdu.Compute. Note in this example that there is one hardware capabilities being defined: simulatenousMultiThreading. This is the “key”. The associated “value” is composed of a specification of: schemaVersion, schemaSelector, hardwarePlatform, mandatory, and configurationValue as a complex value.
<some entity>
...
properties:
vdu_cpu_requirements:
simultaneousMultiThreading:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Ggeneric"
mandatory: true
configurationValue: "enabled"
...
Memory Hardware Capabilities
Usage of vdu_mem_requirements key-value pairs as specified in tosca.nodes.nfv.Vdu.Compute. Note in this example that there are two hardware capabilities being defined: memoryPageSize and numberOfPages. These are the “keys”. Each associated “value” is composed of a specification of: schemaVersion, schemaSelector, hardwarePlatform, mandatory, and configurationValue as a complex value.
<some entity>
...
properties:
vdu_mem_requirements:
memoryPageSize:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Generic"
mandatory: true
configurationValue: "2 MB"
numberOfPages:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Generic"
mandatory: true
configurationValue: "1024"
...
...
Storage Hardware Capabilities
Usage of vdu_storage_requirements key-value pairs as specified in tosca.nodes.nfv.Vdu.VirtualBlockStorage. Note in this example that there is one hardware capability being defined: storageResiliencyMechanism. This is the “key”. The associated “value” is composed of a specification of: schemaVersion, schemaSelector, hardwarePlatform, mandatory, and configurationValue as a complex value.
<some entity>
...
properties:
vdu_storage_requirements:
storageResiliencyMechanism:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Intel"
mandatory: true
configurationValue: "tripleReplication"
...
...
Network Hardware Capabilities
Usage of network_interface_requirements key-value pairs as specified in tosca.nodes.nfv.VduCp or tosca.nodes.nfv.VnfExtCp. Note in this example that there is one hardware capability being defined: dataProcessingAccelerationLibrary. This is the “key”. The associated “value” is composed of a specification of: schemaVersion, schemaSelector, hardwarePlatform, mandatory, and configurationValue as a complex value.
<some entity>
...
properties:
network_interface_requirements:
dataProcessingAccelerationLibrary:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Ggeneric"
mandatory: true
configurationValue: "dpdk"
...
...
Logical Node Hardware Capabilities
Usage of logical_node_requirements key-value pairs pairs as specified in tosca.nodes.nfv.Vdu.Compute. Note in this example that there are three hardware capabilities being defined: numberCpu, localNumaMemorySize, and pciDeviceLocalToNumaNode. These are the “keys”. Each associated “value” is composed of a specification of: schemaVersion, schemaSelector, hardwarePlatform, mandatory, and configurationValue as a complex value.
<some entity>
...
properties:
logical_node_requirements:
numberCpu:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Intel"
mandatory: true
configurationValue: "1"
localNumaMemorySize:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Intel"
mandatory: true
configurationValue: "4096"
pciDeviceLocalToNumaNode:
schemaVersion: 0
schemaSelector: " "
hardwarePlatform: "Intel"
mandatory: true
configurationValue: "required"
...
...
Mapping to ETSI NFV-SOL 006 data model (YANG)
To be defined