summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristina Pauna <cristina.pauna@enea.com>2018-02-20 18:29:42 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-02-23 02:24:11 +0100
commit63e122a1d0e7e4ca402353d331f44eda63d966c3 (patch)
tree64650dd1c46bc5b400cfd31699e0c4ec78b29eb8
parentffc697113c99fa1e955bdce068d67ca153898566 (diff)
[fuel] IDF: Add DPDK parameters support
In order to enable DPDK for OVS scenarios in Armband, we need DPDK specific configuration to be parameterizable. The default DPDK configuration values will remain in Fuel repo and will be overriden with the values defined in IDF (only if present). Since hugepage config and CPU pinning also apply to non-DPDK scenarios, handle them together for 'common', respectively 'dpdk'. To keep things simple, we will reuse the format expected by Fuel's reclass model, so we can pass the whole config block as-is. - IDF schema: fuel: Add strict checking of new block's structure, while allowing the rvalues to be more or less freestyle; - arm-pod6 IDF: Add initial config block implementation; JIRA: ARMBAND-342 Change-Id: I9224f06bb6b9fb2387414eb2a1be35461c27fb99 Signed-off-by: Cristina Pauna <cristina.pauna@enea.com>
-rw-r--r--config/pdf/idf-pod1.schema.yaml55
-rw-r--r--labs/arm/idf-pod6.yaml28
2 files changed, 82 insertions, 1 deletions
diff --git a/config/pdf/idf-pod1.schema.yaml b/config/pdf/idf-pod1.schema.yaml
index b23a82e..857749c 100644
--- a/config/pdf/idf-pod1.schema.yaml
+++ b/config/pdf/idf-pod1.schema.yaml
@@ -73,6 +73,61 @@ definitions:
additionalProperties: false
required: ['node']
additionalProperties: false
+ reclass: # Optional
+ type: 'object'
+ properties:
+ node:
+ type: 'array'
+ items:
+ type: 'object'
+ properties:
+ compute_params:
+ type: 'object'
+ properties:
+ common: # Optional
+ type: 'object'
+ properties: &compute_params_common_properties
+ nova_cpu_pinning: # Optional
+ type: 'string'
+ compute_hugepages_size:
+ type: 'string'
+ enum: ['2M', '1G']
+ compute_hugepages_count:
+ type: 'number'
+ compute_hugepages_mount:
+ type: 'string'
+ compute_kernel_isolcpu: # Optional
+ type: 'string'
+ compute_ovs_pmd_cpu_mask: # Optional
+ type: ['string', 'number']
+ compute_ovs_memory_channels: # Optional
+ type: ['string', 'number']
+ required: ['compute_hugepages_size', 'compute_hugepages_count',
+ 'compute_hugepages_mount']
+ additionalProperties: false
+ dpdk: # Optional
+ type: 'object'
+ properties:
+ <<: *compute_params_common_properties
+ compute_dpdk_driver:
+ type: 'string'
+ compute_ovs_dpdk_socket_mem:
+ type: ['string', 'number']
+ compute_ovs_dpdk_lcore_mask:
+ type: ['string', 'number']
+ dpdk0_driver:
+ type: 'string'
+ dpdk0_n_rxq:
+ type: 'number'
+ required: ['compute_dpdk_driver', 'dpdk0_driver', 'dpdk0_n_rxq',
+ 'compute_ovs_dpdk_socket_mem',
+ 'compute_ovs_dpdk_lcore_mask']
+ additionalProperties: false
+ additionalProperties: false
+ required: ['compute_params']
+ additionalProperties: false
+ required: ['node']
+ additionalProperties: false
required: ['jumphost', 'network']
additionalProperties: false
osa:
diff --git a/labs/arm/idf-pod6.yaml b/labs/arm/idf-pod6.yaml
index 80e49d1..223b95f 100644
--- a/labs/arm/idf-pod6.yaml
+++ b/labs/arm/idf-pod6.yaml
@@ -30,7 +30,7 @@ idf:
network: 10.2.0.0
mask: 24
private:
- interface: 1
+ interface: 2
vlan: 2325
network: 10.1.0.0
mask: 24
@@ -81,3 +81,29 @@ idf:
busaddr: *busaddr
- interfaces: *interfaces
busaddr: *busaddr
+ reclass:
+ node:
+ - compute_params: &compute_params
+ common:
+ nova_cpu_pinning: "1,2,3,4,5,7,8,9,10,11"
+ compute_hugepages_size: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+ compute_kernel_isolcpu: ${_param:nova_cpu_pinning}
+ dpdk:
+ nova_cpu_pinning: "5-7,13-15"
+ compute_hugepages_size: 2M
+ compute_hugepages_count: 8192
+ compute_hugepages_mount: /mnt/hugepages_2M
+ compute_kernel_isolcpu: 2,3,5,6,7,10,11,13,14,15
+ compute_dpdk_driver: vfio
+ compute_ovs_pmd_cpu_mask: "0xc04"
+ compute_ovs_dpdk_socket_mem: "2048"
+ compute_ovs_dpdk_lcore_mask: "0x8"
+ compute_ovs_memory_channels: "2"
+ dpdk0_driver: vfio-pci
+ dpdk0_n_rxq: 2
+ - compute_params: *compute_params
+ - compute_params: *compute_params
+ - compute_params: *compute_params
+ - compute_params: *compute_params