HPA Requirement & Capability Specification
Hardware Platform Capability Requirements
Hardware platform capabiity requirements describe VNF component-specific dependencies on the underlying hardware platform capabilities. Capability requirements are specified as part of the VNF descriptor (VNFD) templates, created during VNF packaging and containing all information needed for initial instantiation and subsequent operation of a given VNF. Capability requirements are expressed as arrays of tuples, where each tuple fully defines a single HPA requirement.
Each requirement tuple has the following format:
(<version-spec>, <hardware-architecture>, <capability-name>, <capability-value>, <need-level>)
where the tuple elements are defined as follows:
| string | The tuple schema version |
| string | The hardware platform architecture identifier associated with a given capability. A value of "*" indicated a normative capability applicable to all hardware platforms. |
| string | The capability name. |
| string | The capability value. May be a single value. |
| enum | Indicates whether a given capability is mandatory or optional. Has two values - "mandatory" or "optional" |
Hardware Platform Capabilities
Hardware platform capabilities describe the underlying compute, storage and network hardware platform capabilities. Platform capabilities are obtained from each on-boarded VIM and are persisted as part of the AAI inventory database. Platform capabilities are expressed as arrays of tuples, where each tuple fully defines a single capability.
Each requirement tuple has the following format:
(<version-spec>, <hardware-architecture>, <capability-name>, <capability-value>)
where the tuple elements are defined as follows:
| string | The tuple schema version. |
| string | The hardware platform architecture identifier associated with a given capability. A value of "*" indicated a normative capability applicable to all hardware platforms. |
| string | The capability name. |
| string | The capability value. |
Requirement/Capability Matchmaking
During network service and VNF instantiation, required capabilities, specified in the VNFD, are matched against the capabilities of available compute resources. If all "mandatory" capabilities have been matched, the instantiation continues. If one or more mandatory capabilities have not been matched, the instantiation fails.
NOTE - The names of required and available capabilities are the same. The values of required capabilities express a subset of the available capability values.
@Alex Vul (Deactivated) While I fully support the use of tuples (i.e. multidimensional data points) because it offers computational conveniences, it would present challenges to some applications that rely on the Key-Value pair paradigm. A compromise solution, IMHO, is to flatten the tuples and preserve the information content by adding a basic namespace to the keys. Here's a couple of options to ponder:
HPA Tuple Element
HPA Key (Option 1)
HPA Key (Option 2)
<version>
hpa.schema.version
HPA_SCHEMA_VERSION
<hardware-architecture>
hpa.hardware.architecture
HPA_HARDWARE_ARCHITECTURE
<capability-name>
hpa.<capability-name>**
HPA_<CAPABILITY NAME>**
<requirement-level>hpa.requirement-level
HPA_REQUIREMENT_LEVEL
**Use a KV pair per HPA capability data point.
Thoughts?