5.1.5. HPA Requirements

  1. SR-IOV Passthrought

Definitions of SRIOV_Port are necessary if VDU supports SR-IOV. Here is an example.

node_templates:

vdu_vNat:

SRIOV_Port:

attributes:

tosca_name: SRIOV_Port

properties:

virtual_network_interface_requirements:

- name: sriov

support_mandatory: false

description: sriov

requirement:

SRIOV: true

role: root

description: sriov port

layer_protocol: ipv4

requirements:

- virtual_binding:

capability: virtual_binding

node: vdu_vNat

relationship:

type: tosca.relationships.nfv.VirtualBindsTo

- virtual_link:

node: tosca.nodes.Root

type: tosca.nodes.nfv.VduCpd

substitution_mappings:

requirements:

sriov_plane:

- SRIOV_Port

- virtual_link

node_type: tosca.nodes.nfv.VNF.vOpenNAT
  1. Hugepages

Definitions of mem_page_size as one property shall be added to Properties and set the value to large if one VDU node supports huagepages. Here is an example.

node_templates:

vdu_vNat:

Hugepages:

attributes:

tosca_name: Huge_pages_demo

properties:

mem_page_size:large
  1. NUMA (CPU/Mem)

Likewise, we shall add definitions of numa to requested_additional_capabilities if we wand VUD nodes to support NUMA. Here is an example.

topology_template:

node_templates:

vdu_vNat:

capabilities:

virtual_compute:

properties:

virtual_memory:

numa_enabled: true

virtual_mem_size: 2 GB

requested_additional_capabilities:

numa:

support_mandatory: true

requested_additional_capability_name: numa

target_performance_parameters:

hw:numa_nodes: "2"

hw:numa_cpus.0: "0,1"

hw:numa_mem.0: "1024"

hw:numa_cpus.1: "2,3,4,5"

hw:numa_mem.1: "1024"
  1. Hyper-Theading

Definitions of Hyper-Theading are necessary as one of requested_additional_capabilities of one VUD node if that node supports Hyper-Theading. Here is an example.

topology_template:

node_templates:

vdu_vNat:

capabilities:

virtual_compute:

properties:

virtual_memory:

numa_enabled: true

virtual_mem_size: 2 GB

requested_additional_capabilities:

hyper_threading:

support_mandatory: true

requested_additional_capability_name: hyper_threading

target_performance_parameters:

hw:cpu_sockets : "2"

hw:cpu_threads : "2"

hw:cpu_cores : "2"

hw:cpu_threads_policy: "isolate"
  1. OVS+DPDK

Definitions of ovs_dpdk are necessary as one of requested_additional_capabilities of one VUD node if that node supports dpdk. Here is an example.

topology_template:

node_templates:

vdu_vNat:

capabilities:

virtual_compute:

properties:

virtual_memory:

numa_enabled: true

virtual_mem_size: 2 GB

requested_additional_capabilities:

ovs_dpdk:

support_mandatory: true

requested_additional_capability_name: ovs_dpdk

target_performance_parameters:

sw:ovs_dpdk: "true"