...
...
A&AI Schema
ComputeNode, HPACapacity schema
Match Flavor Function (per vnfc)
For each flavor in cloud-region-flavor-list
For each hpaCapability in HPACapabilities requirement
Match hpaCapability in flavor
If matching hpaCapability found,
Check-Capacity(hpaCapacityKey, flavor, threshold).
Check-Capacity Function(input: hpaCapacityKey, flavor, threshold)
Get the compute Nodes associated with the input flavor.
getHPACapacityValue(hpaCapacityKey)
if( (free/total) < threshold): //Not enough capacity
return False and add to discard set
else:
return True and add to candidate list
getHPACapacityValue(hpaCapacityKey)
return from List of HPACapacity.get(hpaCapacityKey)
INCOMPLETE - WIP - Initial Draft
Refer wiki page: https://wiki.onap.org/display/DW/Policy+Specification+and+Retrieval+for+OOF
Policy | Attributes | hpa-feature | Openstack Mapping | AAI representation (Eg:) |
HPA CPU Topology Policy Example
numCpuSockets
numCpuCores
numCpuThreads
cpuTopology
hpa-capability-id="a369fd3d-0b15-44e1-81b2-6210efc6dff8",
hpa-feature=”cpuTopology”,
architecture=”generic",
version=”v1”,
hpa-attribute-key
hpa-attribute-value
numCpuSockets
{value:4, availability: "true"}
numCpuCores
{value:4, availability: "true" }
numCpuThreads
{value:8, availability: "true"}
HPA Basic Capabilities Policy Example | numVirtualCpu virtualMemSize | basicCapabilities | vcpus, ram | hpa-capability-id="b369fd3d-0b15-44e1-81b2-6210efc6dff9", hpa-feature=”basicCapabilities”, architecture=”generic", version=”v1”,
|
|
hpa-attribute-key
hpa-attribute-value
numaNodes
{value:2}
numaCpu-0
{value:[0,1]}
numaCpu-1
{value:[2,3,4,5]}
numaMem-0
{value:2, unit:”MB”}
numaMem-1
|
HPA OVS DPDK Policy Example
dataProcessingAccelerationLibrary
ovsDpdk
hpa-capability-id="b369fd3d-0b15-44e1-81b2-6210efc6dffa",
hpa-feature=”ovsDpdk”,
architecture=”Intel64",
version=”v1”,
hpa-attribute-key
hpa-attribute-value
dataProcessingAccelerationLibrary
“HPA CPU Pinning Policy Example
logicalCpuThreadPinningPolicy
logicalCpuPinningPolicy
cpuPinning
hw:cpu_thread_policy
hw:cpu_policy
hpa-capability-id="c369fd3d-0b15-44e1-81b2-6210efc6dffa",
hpa-feature=”cpuPinning”,
architecture=”generic",
version=”v1”,
hpa-attribute-key
hpa-attribute-value
logicalCpuThreadPinningPolicy
{value:”prefer”}
logicalCpuPinningPolicy
{value:”dedicated”}
HPA NUMA Policy Example
numaNodes
numaCpu-N
numaMem-N
numa
hw:numa_nodes
hw:numa_cpus:N
hw:numa_mem:N
hpa-capability-id="c369fd3d-0b15-44e1-81b2-6210efc6dffa",
hpa-feature=”numa”,
architecture=”generic",
version=”v1”,
hpa-capability-id="u456fd3d-0b15-90r4-81b2-6210efc6dff9",
hpa-feature=”localStorage”,
architecture=”generic",
version=”v1”,
hpa-attribute-key | hpa-attribute-value |
---|---|
diskSize | {value:4096, unit:”GB”} |
ephemeralDiskSize | {value:160, unit:”GB”} |
swapMemSize | {value:8192, unit:”MB”} |
HPA CPU Instruction Set Extensions Policy Example
instructionSetExtensions
instructionSetExtensions
hw:capabilities:cpu_info:features
hpa-capability-id="c369fd3d-0b15-44e1-81b2-6210efc6dffa",
hpa-feature=”instructionSetExtensions”,
architecture=”Intel64",
version=”v1”,
hpa-attribute-key
hpa-attribute-value
instructionSetExtensions
| ||||||||||||||||||||||||
HPA PCIe Passthrough Policy Example | pciCount pciVendorId pciDeviceId | pciePassthrough | pci_passthrough:alias=ALIAS:COUNT Openstack administrator is expected to create ALIAS as <name>-<PCIe vendor ID in Hex>-<PCIe device ID> QuickAssist example: "mycrypto-8086-0443" In case of SRIOV-NIC: aggregate_instance_extra_specs:sriov-device-<name>="<Vendor ID>-<Device ID>" It is expected that Openstack administrator creates host aggregate and metadata 'sriov-device-<name>' . Example: Assume that there are two SRIOV-NIC cards supported by a region, Intel and Mellanox. Examples: sriov-device-intel=8086-1563 sriov-device-mellanox=15B3-1003 | hpa-capability-id="f453fd3d-0b15-11w4-81b2-6210efc6dff9", hpa-feature=”pciePassthrough”, architecture=”intel64", version=”v1”,
hpa-capability-id="q236fd3d-0b15-11w4-81b2-6210efc6dff9", hpa-feature=”pciePassthrough”, architecture=”{hw_arch}", version=”v1”,
|
HPA Local Storage Policy Example
diskSize
ephemeralDiskSize
swapMemSize
localStorage
disk
swap
| ||||||||
HPA Huge Pages Policy Example | memoryPageSize | hugePages | hw:mem_page_size values can be ANY, 4KB, 2MB, 1GB How to handle large, small, any from openstack? if the hw:mem_page_size is an integer it is assumed the unit is in KB The deafult value for small page is 4k, for large page is 2M or 1G(recommended value 2M), for any page, libvirt will firstly to try to find large pages, if failed then will fall back to small pages. so it's suggest do not support any page in current release version | hpa-capability-id="e769fd3d-0b15-77b3-81b2-6210efc6dffa", hpa-feature=”hugePages”, architecture=”generic", version=”v1”,
|