Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

A&AI Schema

Image Added

ComputeNode, HPACapacity schema

Image Added      


Image Added


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

hw:cpu_sockets, hw:cpu_cores, hw:cpu_threads,

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

numVirtualCpu

{value:4,

availability

hpaCapacityKey: "

false

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

{value:4, unit:”MB”

basicCapabilities_numVirtualCpu"}

virtualMemSize

{value:4, unit:”MB”,

availability: "false"}

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

{value:”v12.1”, availability: "false"}

“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

{value:["AAA", "BBB"]}

hpaCapacityKey: "basicCapabilities_virtualMemSize"}

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-attribute-key

hpa-attribute-value

pciCount

{value: 1}

pciVendorId

{value: "8086"}

pciDeviceId{value: "0443"}
hpaCapacityKey: "pciePassthrough_8086_0443"


hpa-capability-id="q236fd3d-0b15-11w4-81b2-6210efc6dff9",

hpa-feature=”pciePassthrough”,

architecture=”{hw_arch}",

version=”v1”,

hpa-attribute-key

hpa-attribute-value

pciCount

{value: 1}

pciVendorId

{value: "15B3"}

pciDeviceId{value: "1003"}
SR-IOV
{value: "physnet"}

HPA Local Storage Policy Example

diskSize

ephemeralDiskSize

swapMemSize

localStorage

disk

swap

hpaCapacityKey: "pciePassthrough_15B3_1003"


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”,

hpa-attribute-key

hpa-attribute-value

memoryPageSize

{value:2, unit:”MB”}