diff options
author | Peter Mikus <pmikus@cisco.com> | 2017-06-09 09:28:10 +0200 |
---|---|---|
committer | Peter Mikus <pmikus@cisco.com> | 2017-06-12 13:21:14 +0000 |
commit | 5f6802ba1d16005e7562f0eace81512dddab6762 (patch) | |
tree | 6eeeb048eea420d78c62149c9d7600c29912f93c /resources/libraries/robot | |
parent | dae0c43759ddbdac0b707ea1ba55b249913fb187 (diff) |
CSIT-646 Refactor VPPConfigGenerator script
Currently the VPPConfigGenerator script is not modular enough for creating
all combinations of VPP startup configuration. This patch is supposed to
implement unified structured way to create all configuration options.
Change-Id: If3f9cf5dc838fe0a698ea1c601abff6c4c0468b5
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Diffstat (limited to 'resources/libraries/robot')
-rw-r--r-- | resources/libraries/robot/default.robot | 147 | ||||
-rw-r--r-- | resources/libraries/robot/performance.robot | 11 |
2 files changed, 44 insertions, 114 deletions
diff --git a/resources/libraries/robot/default.robot b/resources/libraries/robot/default.robot index d6952db120..932fcaee07 100644 --- a/resources/libraries/robot/default.robot +++ b/resources/libraries/robot/default.robot @@ -117,6 +117,22 @@ | | | Kernel Module Verify | ${nodes['${dut}']} | ${module} | | | ... | force_load=${force_load} +| Create base startup configuration of VPP on all DUTs +| | [Documentation] | Create base startup configuration of VPP to all DUTs. +| | ... +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | Import Library | resources.libraries.python.VppConfigGenerator +| | | ... | WITH NAME | ${dut} +| | | Run keyword | ${dut}.Set Node | ${nodes['${dut}']} +| | | Run keyword | ${dut}.Add Unix Log +| | | Run keyword | ${dut}.Add Unix CLI Listen +| | | Run keyword | ${dut}.Add Unix Nodaemon +| | | Run keyword | ${dut}.Add DPDK Socketmem | "1024,1024" +| | | Run keyword | ${dut}.Add Heapsize | "3G" +| | | Run keyword | ${dut}.Add IP6 Hash Buckets | "2000000" +| | | Run keyword | ${dut}.Add IP6 Heap Size | "3G" + | Add '${m}' worker threads and '${n}' rxqueues in 3-node single-link circular topology | | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\ | | ... | configuration on all DUTs in 3-node single-link topology. @@ -134,15 +150,12 @@ | | ... | skip_cnt=${1} | cpu_cnt=${1} | | ${dut2_cpu_w}= | Cpu list per node str | ${dut2} | ${dut2_numa} | | ... | skip_cnt=${2} | cpu_cnt=${m_int} -| | ${dut1_cpu}= | Catenate | main-core | ${dut1_cpu_main} -| | ... | corelist-workers | ${dut1_cpu_w} -| | ${dut2_cpu}= | Catenate | main-core | ${dut2_cpu_main} -| | ... | corelist-workers | ${dut2_cpu_w} -| | ${rxqueues}= | Catenate | num-rx-queues | ${n} -| | Add CPU config | ${dut1} | ${dut1_cpu} -| | Add CPU config | ${dut2} | ${dut2_cpu} -| | Add rxqueues config | ${dut1} | ${rxqueues} -| | Add rxqueues config | ${dut2} | ${rxqueues} +| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} +| | Run keyword | DUT2.Add CPU Main Core | ${dut2_cpu_main} +| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} +| | Run keyword | DUT2.Add CPU Corelist Workers | ${dut2_cpu_w} +| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} +| | Run keyword | DUT2.Add DPDK Dev Default RXQ | ${n} | Add '${m}' worker threads and '${n}' rxqueues in 2-node single-link circular topology | | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\ @@ -155,11 +168,9 @@ | | ... | skip_cnt=${1} | cpu_cnt=${1} | | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa} | | ... | skip_cnt=${2} | cpu_cnt=${m_int} -| | ${dut1_cpu}= | Catenate | main-core | ${dut1_cpu_main} -| | ... | corelist-workers | ${dut1_cpu_w} -| | ${rxqueues}= | Catenate | num-rx-queues | ${n} -| | Add CPU config | ${dut1} | ${dut1_cpu} -| | Add rxqueues config | ${dut1} | ${rxqueues} +| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} +| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} +| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} | Add '${m}' worker threads using SMT and '${n}' rxqueues in 3-node single-link circular topology | | [Documentation] | Setup M worker threads using SMT and N rxqueues in vpp\ @@ -178,15 +189,12 @@ | | ... | skip_cnt=${1} | cpu_cnt=${1} | smt_used=${True} | | ${dut2_cpu_w}= | Cpu list per node str | ${dut2} | ${dut2_numa} | | ... | skip_cnt=${2} | cpu_cnt=${m_int} | smt_used=${True} -| | ${dut1_cpu}= | Catenate | main-core | ${dut1_cpu_main} -| | ... | corelist-workers | ${dut1_cpu_w} -| | ${dut2_cpu}= | Catenate | main-core | ${dut2_cpu_main} -| | ... | corelist-workers | ${dut2_cpu_w} -| | ${rxqueues}= | Catenate | num-rx-queues | ${n} -| | Add CPU config | ${dut1} | ${dut1_cpu} -| | Add CPU config | ${dut2} | ${dut2_cpu} -| | Add rxqueues config | ${dut1} | ${rxqueues} -| | Add rxqueues config | ${dut2} | ${rxqueues} +| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} +| | Run keyword | DUT2.Add CPU Main Core | ${dut2_cpu_main} +| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} +| | Run keyword | DUT2.Add CPU Corelist Workers | ${dut2_cpu_w} +| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} +| | Run keyword | DUT2.Add DPDK Dev Default RXQ | ${n} | Add '${m}' worker threads using SMT and '${n}' rxqueues in 2-node single-link circular topology | | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\ @@ -199,77 +207,26 @@ | | ... | skip_cnt=${1} | cpu_cnt=${1} | smt_used=${True} | | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa} | | ... | skip_cnt=${2} | cpu_cnt=${m_int} | smt_used=${True} -| | ${dut1_cpu}= | Catenate | main-core | ${dut1_cpu_main} -| | ... | corelist-workers | ${dut1_cpu_w} -| | ${rxqueues}= | Catenate | num-rx-queues | ${n} -| | Add CPU config | ${dut1} | ${dut1_cpu} -| | Add rxqueues config | ${dut1} | ${rxqueues} - -| Add all PCI devices to all DUTs -| | [Documentation] | Add all available PCI devices from topology file to VPP\ -| | ... | startup configuration to all DUTs. -| | ... -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Add PCI all devices | ${nodes['${dut}']} - -| Add PCI device to DUT -| | [Documentation] | Add PCI device to VPP startup configuration -| | ... | to DUT specified as argument. -| | ... -| | ... | *Arguments:* -| | ... | - ${node} - DUT node. Type: dictionary -| | ... | - ${pci_address} - PCI address. Type: string -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Add PCI device to DUT \| ${nodes['DUT1']} \| 0000:00:00.0 \| -| | ... -| | [Arguments] | ${node} | ${pci_address} -| | ... -| | Add PCI device | ${node} | ${pci_address} - -| Add heapsize config to all DUTs -| | [Documentation] | Add Add Heapsize Config to VPP startup configuration\ -| | ... | to all DUTs. -| | ... -| | ... | *Arguments:* -| | ... | - ${heapsize} - Heapsize string (5G, 200M, ...) -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Add heapsize config to all DUTs \| 200M \| -| | ... -| | [Arguments] | ${heapsize} -| | ... -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Add Heapsize Config | ${nodes['${dut}']} | ${heapsize} +| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} +| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} +| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} | Add no multi seg to all DUTs | | [Documentation] | Add No Multi Seg to VPP startup configuration to all DUTs. | | ... | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} -| | | Add No Multi Seg Config | ${nodes['${dut}']} - -| Add Enable Vhost User to all DUTs -| | [Documentation] | Add Enable Vhost User to VPP startup configuration to all\ -| | ... | DUTs. -| | ... -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Add Enable Vhost User Config | ${nodes['${dut}']} +| | | Run keyword | ${dut}.Add DPDK No Multi Seg | Add SNAT to all DUTs | | [Documentation] | Add SNAT configuration to all DUTs. | | ... | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} -| | | Add SNAT Config | ${nodes['${dut}']} +| | | Run keyword | ${dut}.Add SNAT | Add cryptodev to all DUTs -| | [Documentation] | AddCryptodev to VPP startup configuration to all DUTs. +| | [Documentation] | Add Cryptodev to VPP startup configuration to all DUTs. | | ... | | ... | *Arguments:* | | ... | - ${count} - Number of QAT devices. Type: integer @@ -281,38 +238,14 @@ | | [Arguments] | ${count} | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} -| | | Add Cryptodev Config | ${nodes['${dut}']} | ${count} - -| Remove startup configuration of VPP from all DUTs -| | [Documentation] | Remove VPP startup configuration from all DUTs. -| | ... -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Remove All PCI Devices | ${nodes['${dut}']} -| | | Remove All CPU Config | ${nodes['${dut}']} -| | | Remove Socketmem Config | ${nodes['${dut}']} -| | | Remove Cryptodev Config | ${nodes['${dut}']} -| | | Remove Heapsize Config | ${nodes['${dut}']} -| | | Remove Rxqueues Config | ${nodes['${dut}']} -| | | Remove No Multi Seg Config | ${nodes['${dut}']} -| | | Remove Enable Vhost User Config | ${nodes['${dut}']} -| | | Remove SNAT Config | ${nodes['${dut}']} - -| Setup default startup configuration of VPP on all DUTs -| | [Documentation] | Setup default startup configuration of VPP to all DUTs. -| | ... -| | Remove startup configuration of VPP from all DUTs -| | Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology -| | Add all PCI devices to all DUTs -| | Apply startup configuration on all VPP DUTs +| | | Run keyword | ${dut}.Add DPDK Cryptodev | ${count} | Apply startup configuration on all VPP DUTs -| | [Documentation] | Apply startup configuration of VPP and restart VPP on all\ -| | ... | DUTs. +| | [Documentation] | Write startup configuration and restart VPP on all DUTs. | | ... | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} -| | | Apply Config | ${nodes['${dut}']} +| | | Run keyword | ${dut}.Apply Config | | Update All Interface Data On All Nodes | ${nodes} | skip_tg=${TRUE} | Save VPP PIDs diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot index 9435d82897..d0feed277d 100644 --- a/resources/libraries/robot/performance.robot +++ b/resources/libraries/robot/performance.robot @@ -1678,13 +1678,13 @@ | | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2} | | ${dut2_if1_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if1} | | ${dut2_if2_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if2} -| | Add PCI device | ${dut1} | ${dut1_if1_pci} | ${dut1_if2_pci} -| | Add PCI device | ${dut2} | ${dut2_if1_pci} | ${dut2_if2_pci} +| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci} +| | Run keyword | DUT2.Add DPDK Dev | ${dut2_if1_pci} | ${dut2_if2_pci} | Add PCI devices to DUTs in 2-node single link topology | | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1} | | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2} -| | Add PCI device | ${dut1} | ${dut1_if1_pci} | ${dut1_if2_pci} +| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci} | Configure guest VM with dpdk-testpmd connected via vhost-user | | [Documentation] @@ -2449,6 +2449,7 @@ | | [Documentation] | Common test setup for performance tests. | | ... | | Reset VAT History On All DUTs | ${nodes} +| | Create base startup configuration of VPP on all DUTs | Tear down performance discovery test | | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \ @@ -2471,21 +2472,18 @@ | | Run Keyword If Test Failed | | ... | Traffic should pass with no loss | ${perf_trial_duration} | ${rate} | | ... | ${framesize} | ${topology_type} | fail_on_loss=${False} -| | Remove startup configuration of VPP from all DUTs | Tear down performance ndrchk test | | [Documentation] | Common test teardown for ndrchk performance tests. | | ... | | Show VAT History On All DUTs | ${nodes} | | Show statistics on all DUTs -| | Remove startup configuration of VPP from all DUTs | Performance pdrchk test teardown | | [Documentation] | Common test teardown for pdrchk performance tests. | | ... | | Show VAT History On All DUTs | ${nodes} | | Show statistics on all DUTs -| | Remove startup configuration of VPP from all DUTs | Tear down performance test with vhost and VM with dpdk-testpmd | | [Documentation] | Common test teardown for performance tests which use @@ -2516,7 +2514,6 @@ | | Run Keyword If Test Failed | | ... | Traffic should pass with no loss | ${perf_trial_duration} | ${rate} | | ... | ${framesize} | ${topology_type} | fail_on_loss=${False} -| | Remove startup configuration of VPP from all DUTs | | Run keyword unless | ${dut1_node}==${None} | | ... | Tear down guest VM with dpdk-testpmd | ${dut1} | ${dut1_vm_refs} | | Run keyword unless | ${dut2_node}==${None} |