aboutsummaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2018-07-06 06:39:51 +0000
committerPeter Mikus <pmikus@cisco.com>2018-07-09 08:18:03 +0000
commitcc85afad85339d2cc8f035ce63ff21220d8e6b96 (patch)
tree8c51cf79b31af4544467d6e5f06c91d077648d08 /resources
parent92995a7a564c17040483488cbc0da07e28386bdb (diff)
CSIT-1142 2-node topology - keywords
- Clean up of 2-node setup KWs Change-Id: I59fc901fb57544eceb6a041b56b515cda8babf85 Signed-off-by: Peter Mikus <pmikus@cisco.com>
Diffstat (limited to 'resources')
-rw-r--r--resources/libraries/python/ssh.py2
-rw-r--r--resources/libraries/robot/performance/performance_configuration.robot123
-rw-r--r--resources/libraries/robot/performance/performance_setup.robot14
-rw-r--r--resources/libraries/robot/shared/default.robot116
4 files changed, 114 insertions, 141 deletions
diff --git a/resources/libraries/python/ssh.py b/resources/libraries/python/ssh.py
index b570003aa8..4bed173bbb 100644
--- a/resources/libraries/python/ssh.py
+++ b/resources/libraries/python/ssh.py
@@ -325,7 +325,7 @@ class SSH(object):
"""
chan.close()
- def scp(self, local_path, remote_path, get=False, timeout=10):
+ def scp(self, local_path, remote_path, get=False, timeout=30):
"""Copy files from local_path to remote_path or vice versa.
connect() method has to be called first!
diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot
index 21826a2160..ba6396f8fe 100644
--- a/resources/libraries/robot/performance/performance_configuration.robot
+++ b/resources/libraries/robot/performance/performance_configuration.robot
@@ -96,6 +96,26 @@
| | Vpp Route Add | ${dut1} | ${laddr_ip4} | 8 | ${tg_if1_ip4} | ${dut1_if1}
| | Vpp Route Add | ${dut2} | ${raddr_ip4} | 8 | ${tg_if2_ip4} | ${dut2_if2}
+| Initialize IPv4 forwarding in 2-node circular topology
+| | [Documentation]
+| | ... | Set UP state on VPP interfaces in path on nodes in 2-node circular
+| | ... | topology. Get the interface MAC addresses and setup ARP on all VPP
+| | ... | interfaces. Setup IPv4 addresses with /24 prefix on DUT-TG links and
+| | ... | /30 prefix on DUT1 link. Set routing on DUT node with prefix /24 and
+| | ... | next hop of neighbour DUT interface IPv4 address.
+| | ...
+| | Set Interface State | ${dut1} | ${dut1_if1} | up
+| | Set Interface State | ${dut1} | ${dut1_if2} | up
+| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1}
+| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2}
+| | Add arp on dut | ${dut1} | ${dut1_if1} | 10.10.10.2 | ${tg1_if1_mac}
+| | Add arp on dut | ${dut1} | ${dut1_if2} | 20.20.20.2 | ${tg1_if2_mac}
+| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if1}
+| | ... | 10.10.10.1 | 24
+| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2}
+| | ... | 20.20.20.1 | 24
+| | All Vpp Interfaces Ready Wait | ${nodes}
+
| Initialize IPv4 forwarding in 3-node circular topology
| | [Documentation]
| | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular
@@ -128,26 +148,6 @@
| | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | 1.1.1.1 | ${dut2_if1}
| | All Vpp Interfaces Ready Wait | ${nodes}
-| Initialize IPv4 forwarding in 2-node circular topology
-| | [Documentation]
-| | ... | Set UP state on VPP interfaces in path on nodes in 2-node circular
-| | ... | topology. Get the interface MAC addresses and setup ARP on all VPP
-| | ... | interfaces. Setup IPv4 addresses with /24 prefix on DUT-TG links and
-| | ... | /30 prefix on DUT1 link. Set routing on DUT node with prefix /24 and
-| | ... | next hop of neighbour DUT interface IPv4 address.
-| | ...
-| | Set Interface State | ${dut1} | ${dut1_if1} | up
-| | Set Interface State | ${dut1} | ${dut1_if2} | up
-| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1}
-| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2}
-| | Add arp on dut | ${dut1} | ${dut1_if1} | 10.10.10.3 | ${tg1_if1_mac}
-| | Add arp on dut | ${dut1} | ${dut1_if2} | 20.20.20.3 | ${tg1_if2_mac}
-| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if1}
-| | ... | 10.10.10.2 | 24
-| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2}
-| | ... | 20.20.20.2 | 24
-| | All Vpp Interfaces Ready Wait | ${nodes}
-
| Initialize IPv4 forwarding with scaling in 3-node circular topology
| | [Documentation]
| | ... | Custom setup of IPv4 topology with scalability of ip routes on all
@@ -781,6 +781,14 @@
| | ... | ELSE | Fail | Unsupported behaviour: ${behavior}
| | All Vpp Interfaces Ready Wait | ${nodes}
+| Initialize L2 xconnect in 2-node circular topology
+| | [Documentation]
+| | ... | Setup L2 xconnect topology by cross connecting two interfaces on
+| | ... | each DUT. Interfaces are brought up.
+| | ...
+| | Configure L2XC | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | All Vpp Interfaces Ready Wait | ${nodes}
+
| Initialize L2 xconnect in 3-node circular topology
| | [Documentation]
| | ... | Setup L2 xconnect topology by cross connecting two interfaces on
@@ -1013,6 +1021,25 @@
| | Configure L2XC | ${dut2} | ${subif_index_2} | ${vhost_if1}
| | Configure L2XC | ${dut2} | ${dut2_if2} | ${vhost_if2}
+| Initialize L2 bridge domain in 2-node circular topology
+| | [Documentation]
+| | ... | Setup L2 DB topology by adding two interfaces on DUT into BD
+| | ... | that is created automatically with index 1. Learning is enabled.
+| | ... | Interfaces are brought up.
+| | ...
+| | ... | *Arguments:*
+| | ... | - bd_id - Bridge domain ID. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize L2 bridge domain in 2-node circular topology \| 1 \|
+| | ...
+| | [Arguments] | ${bd_id}=${1}
+| | ...
+| | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id}
+| | Add interface to bridge domain | ${dut1} | ${dut1_if2} | ${bd_id}
+| | All Vpp Interfaces Ready Wait | ${nodes}
+
| Initialize L2 bridge domain in 3-node circular topology
| | [Documentation]
| | ... | Setup L2 DB topology by adding two interfaces on each DUT into BD
@@ -1766,50 +1793,30 @@
| | Add interface to bridge domain | ${dut2} | ${vhost_if2} | ${bd_id2}
| | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2}
-| Add PCI devices to DUTs in 3-node single link topology
+| Add PCI devices to all DUTs
| | [Documentation]
| | ... | Add PCI devices to VPP configuration file.
| | ...
-| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
-| | ${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}
-| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci}
-| | Run keyword | DUT2.Add DPDK Dev | ${dut2_if1_pci} | ${dut2_if2_pci}
-| | Set Test Variable | ${dut1_if1_pci}
-| | Set Test Variable | ${dut1_if2_pci}
-| | Set Test Variable | ${dut2_if1_pci}
-| | Set Test Variable | ${dut2_if2_pci}
-
-| Add single PCI device to DUTs in 3-node single link topology
-| | [Documentation]
-| | ... | Add single (first) PCI device on DUT1 to VPP configuration file.
-| | ... | Add single (last) PCI device on DUT2 to VPP configuration file.
-| | ...
-| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
-| | ${dut2_if2_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if2}
-| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci}
-| | Run keyword | DUT2.Add DPDK Dev | ${dut2_if2_pci}
-| | Set Test Variable | ${dut1_if1_pci}
-| | Set Test Variable | ${dut2_if2_pci}
-
-| Add PCI devices to DUTs in 2-node single link topology
-| | [Documentation]
-| | ... | Add PCI devices to VPP configuration file.
-| | ...
-| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
-| | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2}
-| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci}
-| | Set Test Variable | ${dut1_if1_pci}
-| | Set Test Variable | ${dut1_if2_pci}
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | ${if1_pci}= | Get Interface PCI Addr | ${nodes['${dut}']} | ${${dut}_if1}
+| | | ${if2_pci}= | Get Interface PCI Addr | ${nodes['${dut}']} | ${${dut}_if2}
+| | | Run keyword | ${dut}.Add DPDK Dev | ${if1_pci} | ${if2_pci}
+| | | Set Test Variable | ${${dut}_if1_pci} | ${if1_pci}
+| | | Set Test Variable | ${${dut}_if2_pci} | ${if2_pci}
-| Add single PCI device to DUTs in 2-node single link topology
+| Add single PCI device to all DUTs
| | [Documentation]
-| | ... | Add single (first) PCI device on DUT1 to VPP configuration file.
+| | ... | Add single (first) PCI device on DUT1 and single (last) PCI device on
+| | ... | DUT2 to VPP configuration file.
| | ...
-| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
-| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci}
-| | Set Test Variable | ${dut1_if1_pci}
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | ${if1_pci}= | Run Keyword If | '${dut}' == 'DUT1' | Get Interface PCI Addr
+| | | ... | ${nodes['${dut}']} | ${${dut}_if1} | ELSE | Get Interface PCI Addr
+| | | ... | ${nodes['${dut}']} | ${${dut}_if2}
+| | | Run keyword | ${dut}.Add DPDK Dev | ${if1_pci}
+| | | Set Test Variable | ${${dut}_if1_pci} | ${if1_pci}
| Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
| | [Documentation]
diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot
index adcdb2173d..3f7eba0393 100644
--- a/resources/libraries/robot/performance/performance_setup.robot
+++ b/resources/libraries/robot/performance/performance_setup.robot
@@ -484,13 +484,13 @@
# Suite teardowns
-| Tear down 3-node performance topology
+| Tear down 2-node performance topology
| | [Documentation]
| | ... | Suite teardown phase with traffic generator teardown.
| | ...
| | Teardown traffic generator | ${tg}
-| Tear down 3-node performance topology with container
+| Tear down 2-node performance topology with container
| | [Documentation]
| | ... | Suite teardown phase with traffic generator teardown and container
| | ... | destroy.
@@ -499,13 +499,13 @@
| | :FOR | ${group} | IN | @{container_groups}
| | | Destroy all '${group}' containers
-| Tear down 2-node performance topology
+| Tear down 3-node performance topology
| | [Documentation]
| | ... | Suite teardown phase with traffic generator teardown.
| | ...
| | Teardown traffic generator | ${tg}
-| Tear down 2-node performance topology with container
+| Tear down 3-node performance topology with container
| | [Documentation]
| | ... | Suite teardown phase with traffic generator teardown and container
| | ... | destroy.
@@ -720,22 +720,22 @@
| | Run keyword unless | ${dut2_node}==${None}
| | ... | Tear down guest VM with dpdk-testpmd | ${dut2} | ${dut2_vm_refs}
-| Tear down DPDK 3-node performance topology
+| Tear down DPDK 2-node performance topology
| | [Documentation]
| | ... | Suite teardown phase with traffic generator teardown.
| | ... | Cleanup DPDK test environment.
| | ...
| | Teardown traffic generator | ${tg}
| | Cleanup DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
-| | Cleanup DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2}
-| Tear down DPDK 2-node performance topology
+| Tear down DPDK 3-node performance topology
| | [Documentation]
| | ... | Suite teardown phase with traffic generator teardown.
| | ... | Cleanup DPDK test environment.
| | ...
| | Teardown traffic generator | ${tg}
| | Cleanup DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | Cleanup DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2}
| Tear down performance discovery test with NAT
| | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index 4b8c5ecb09..f450dc2a05 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -132,85 +132,51 @@
| | | Run keyword | ${dut}.Add IP6 Heap Size | 4G
| | | Run keyword | ${dut}.Add IP Heap Size | 4G
-# The following keyword results in lines longer than 80 characters.
-# FIXME: Rename the keyword, possibly moving arguments out of the keyword name.
+| Add worker threads and rxqueues to all DUTs
+| | [Documentation] | Setup worker threads and rxqueues in vpp startup
+| | ... | configuration on all DUTs. Based on the SMT configuration of DUT if
+| | ... | enabled keyword will automatically map also the sibling logical cores.
+| | ... | Keyword will automatically set the appropriate test TAGs in format
+| | ... | mTnC, where m=logical_core_count and n=physical_core_count.
+| | ...
+| | ... | *Arguments:*
+| | ... | - cpu_cnt - Number of physical cores to use. Type: integer
+| | ... | - rx_queues - Number of RX queues. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Add worker threads and rxqueues to all DUTs \| ${1} \| ${1} \|
+| | ...
+| | [Arguments] | ${cpu_cnt} | ${rx_queues}
+| | ...
+| | ${cpu_count_int} | Convert to Integer | ${cpu_cnt}
+| | ${thr_count_int} | Convert to Integer | ${cpu_cnt}
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']}
+| | | ... | ${${dut}_if1} | ${${dut}_if2}
+| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
+| | | ${cpu_main}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
+| | | ... | skip_cnt=${1} | cpu_cnt=${1}
+| | | ${cpu_wt}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
+| | | ... | skip_cnt=${2} | cpu_cnt=${cpu_count_int} | smt_used=${smt_used}
+| | | Run keyword | ${dut}.Add CPU Main Core | ${cpu_main}
+| | | Run keyword | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
+| | | Run keyword | ${dut}.Add DPDK Dev Default RXQ | ${rx_queues}
+| | | ${thr_count_int}= | Run keyword if | ${smt_used} |
+| | | ... | Evaluate | int(${cpu_count_int}*2) | ELSE | Set variable
+| | | ... | ${thr_count_int}
+| | | Run keyword if | ${thr_count_int} > 1
+| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
+| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
+
+# FIXME: Remove the keyword after refactor of suites. Currently kept for
+# backward compatibility only.
| 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.
| | ...
-| | ${m_int}= | Convert To Integer | ${m}
-| | ${dut1_numa}= | Get interfaces numa node | ${dut1}
-| | ... | ${dut1_if1} | ${dut1_if2}
-| | ${dut2_numa}= | Get interfaces numa node | ${dut2}
-| | ... | ${dut2_if1} | ${dut2_if2}
-| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa}
-| | ... | skip_cnt=${1} | cpu_cnt=${1}
-| | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa}
-| | ... | skip_cnt=${2} | cpu_cnt=${m_int}
-| | ${dut2_cpu_main}= | Cpu list per node str | ${dut2} | ${dut2_numa}
-| | ... | skip_cnt=${1} | cpu_cnt=${1}
-| | ${dut2_cpu_w}= | Cpu list per node str | ${dut2} | ${dut2_numa}
-| | ... | skip_cnt=${2} | cpu_cnt=${m_int}
-| | 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\
-| | ... | configuration on all DUTs in 2-node single-link topology.
-| | ...
-| | ${m_int}= | Convert To Integer | ${m}
-| | ${dut1_numa}= | Get interfaces numa node | ${dut1}
-| | ... | ${dut1_if1} | ${dut1_if2}
-| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa}
-| | ... | skip_cnt=${1} | cpu_cnt=${1}
-| | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa}
-| | ... | skip_cnt=${2} | cpu_cnt=${m_int}
-| | 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\
-| | ... | startup configuration on all DUTs in 3-node single-link topology.
-| | ...
-| | ${m_int}= | Convert To Integer | ${m}
-| | ${dut1_numa}= | Get interfaces numa node | ${dut1}
-| | ... | ${dut1_if1} | ${dut1_if2}
-| | ${dut2_numa}= | Get interfaces numa node | ${dut2}
-| | ... | ${dut2_if1} | ${dut2_if2}
-| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa}
-| | ... | 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}
-| | ${dut2_cpu_main}= | Cpu list per node str | ${dut2} | ${dut2_numa}
-| | ... | 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}
-| | 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\
-| | ... | configuration on all DUTs in 2-node single-link topology.
-| | ...
-| | ${m_int}= | Convert To Integer | ${m}
-| | ${dut1_numa}= | Get interfaces numa node | ${dut1}
-| | ... | ${dut1_if1} | ${dut1_if2}
-| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa}
-| | ... | 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}
-| | 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 worker threads and rxqueues to all DUTs | ${m} | ${n}
| Add no multi seg to all DUTs
| | [Documentation] | Add No Multi Seg to VPP startup configuration to all DUTs.