Create l2bdscale tests for 2-node topology
[csit.git] / resources / libraries / robot / performance / performance_configuration.robot
index cd522e7..ad91d99 100644 (file)
 | | | ... | VPP Set Interface MTU | ${nodes['${dut}']} | ${${dut}_if2_2}
 | | All VPP Interfaces Ready Wait | ${nodes}
 
+| Initialize AVF interfaces
+| | [Documentation]
+| | ... | Initialize AVF interfaces on each DUT. Interfaces are brought up.
+| | ...
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | ${if1_pci}= | Get Interface PCI Addr | ${nodes['${dut}']}
+| | | ... | ${${dut}_if1_vf0}
+| | | ${if2_pci}= | Get Interface PCI Addr | ${nodes['${dut}']}
+| | | ... | ${${dut}_if2_vf0}
+| | | ${dut_eth_vf_if1}= | VPP Create AVF Interface | ${nodes['${dut}']}
+| | | ... | ${if1_pci}
+| | | ${dut_eth_vf_if2}= | VPP Create AVF Interface | ${nodes['${dut}']}
+| | | ... | ${if2_pci}
+| | | Set Test Variable | ${${dut}_if1} | ${dut_eth_vf_if1}
+| | | Set Test Variable | ${${dut}_if2} | ${dut_eth_vf_if2}
+| | Set interfaces in path up
+
 | Initialize IPSec in 3-node circular topology
 | | [Documentation]
 | | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular
 | | Run Keyword If | '${dut2_status}' == 'PASS'
 | | ... | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | 1.1.1.1 | ${dut2_if1}
 
-| Initialize IPv4 forwarding with scaling in 3-node circular topology
+| Initialize IPv4 forwarding with scaling in circular topology
 | | [Documentation]
 | | ... | Custom setup of IPv4 topology with scalability of ip routes on all
-| | ... | DUT nodes in 3-node circular topology
+| | ... | DUT nodes in 2-node / 3-node circular topology
 | | ...
 | | ... | *Arguments:*
 | | ... | - ${count} - IP route count. Type: integer
 | | ...
 | | [Arguments] | ${count}
 | | ...
+| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
+| | ... | Variable Should Exist | ${dut2}
+| | ...
 | | Set interfaces in path up
+| | ...
 | | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1}
 | | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2}
-| | ${dut1_if2_mac}= | Get Interface MAC | ${dut1} | ${dut1_if2}
-| | ${dut2_if1_mac}= | Get Interface MAC | ${dut2} | ${dut2_if1}
+| | ${dut1_if2_mac}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Get Interface MAC | ${dut1} | ${dut1_if2}
+| | ${dut2_if1_mac}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Get Interface MAC | ${dut2} | ${dut2_if1}
 | | Add arp on dut | ${dut1} | ${dut1_if1} | 1.1.1.1 | ${tg1_if1_mac}
-| | Add arp on dut | ${dut1} | ${dut1_if2} | 2.2.2.2 | ${dut2_if1_mac}
-| | Add arp on dut | ${dut2} | ${dut2_if1} | 2.2.2.1 | ${dut1_if2_mac}
-| | Add arp on dut | ${dut2} | ${dut2_if2} | 3.3.3.1 | ${tg1_if2_mac}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Add arp on dut | ${dut1} | ${dut1_if2} | 2.2.2.2 | ${dut2_if1_mac}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Add arp on dut | ${dut2} | ${dut2_if1} | 2.2.2.1 | ${dut1_if2_mac}
+| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Set Variable | ${dut2}
+| | ... | ELSE | Set Variable | ${dut1}
+| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Set Variable | ${dut2_if2}
+| | ... | ELSE | Set Variable | ${dut1_if2}
+| | Add arp on dut | ${dut} | ${dut_if2} | 3.3.3.1 | ${tg1_if2_mac}
 | | Configure IP addresses on interfaces | ${dut1} | ${dut1_if1} | 1.1.1.2 | 30
-| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} | 2.2.2.1 | 30
-| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if1} | 2.2.2.2 | 30
-| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if2} | 3.3.3.2 | 30
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} | 2.2.2.1 | 30
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Configure IP addresses on interfaces | ${dut2} | ${dut2_if1} | 2.2.2.2 | 30
+| | Configure IP addresses on interfaces | ${dut} | ${dut_if2} | 3.3.3.2 | 30
 | | Vpp Route Add | ${dut1} | 10.0.0.0 | 32 | 1.1.1.1 | ${dut1_if1}
 | | ... | count=${count}
-| | Vpp Route Add | ${dut1} | 20.0.0.0 | 32 | 2.2.2.2 | ${dut1_if2}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Vpp Route Add | ${dut1} | 20.0.0.0 | 32 | 2.2.2.2 | ${dut1_if2}
 | | ... | count=${count}
-| | Vpp Route Add | ${dut2} | 10.0.0.0 | 32 | 2.2.2.1 | ${dut2_if1}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Vpp Route Add | ${dut2} | 10.0.0.0 | 32 | 2.2.2.1 | ${dut2_if1}
 | | ... | count=${count}
-| | Vpp Route Add | ${dut2} | 20.0.0.0 | 32 | 3.3.3.1 | ${dut2_if2}
+| | Vpp Route Add | ${dut} | 20.0.0.0 | 32 | 3.3.3.1 | ${dut_if2}
 | | ... | count=${count}
 
 | Initialize IPv4 forwarding with vhost in 2-node circular topology
 | | Vpp Route Add | ${dut1} | 2001:2::0 | ${prefix} | 2001:3::2 | ${dut1_if2}
 | | Vpp Route Add | ${dut2} | 2001:1::0 | ${prefix} | 2001:3::1 | ${dut2_if1}
 
-| Initialize IPv6 forwarding with scaling in 3-node circular topology
+| Initialize IPv6 forwarding with scaling in circular topology
 | | [Documentation]
 | | ... | Custom setup of IPv6 topology with scalability of ip routes on all
-| | ... | DUT nodes in 3-node circular topology
+| | ... | DUT nodes in 2-node / 3-node circular topology
 | | ...
 | | ... | *Arguments:*
 | | ... | - ${count} - IP route count. Type: integer
 | | ...
 | | ... | *Example:*
 | | ...
-| | ... | \| Initialize IPv6 forwarding with scaling in 3-node circular \
+| | ... | \| Initialize IPv6 forwarding with scaling in circular \
 | | ... | topology \| 100000 \|
 | | ...
 | | [Arguments] | ${count}
 | | ...
+| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
+| | ... | Variable Should Exist | ${dut2}
+| | ...
 | | Set interfaces in path up
-| | ${subn_prefix}= | Set Variable | 64
-| | ${host_prefix}= | Set Variable | 128
-| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if1} | 2001:3::1 | ${subn_prefix}
-| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if2} | 2001:4::1 | ${subn_prefix}
-| | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if1} | 2001:4::2 | ${subn_prefix}
-| | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if2} | 2001:5::1 | ${subn_prefix}
+| | ...
 | | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1}
 | | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2}
-| | ${dut1_if2_mac}= | Get Interface MAC | ${dut1} | ${dut1_if2}
-| | ${dut2_if1_mac}= | Get Interface MAC | ${dut2} | ${dut2_if1}
+| | ${dut1_if2_mac}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Get Interface MAC | ${dut1} | ${dut1_if2}
+| | ${dut2_if1_mac}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Get Interface MAC | ${dut2} | ${dut2_if1}
+| | ${prefix}= | Set Variable | 64
+| | ${host_prefix}= | Set Variable | 128
+| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if1} | 2001:3::1 | ${prefix}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if2} | 2001:4::1 | ${prefix}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if1} | 2001:4::2 | ${prefix}
+| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Set Variable | ${dut2}
+| | ... | ELSE | Set Variable | ${dut1}
+| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Set Variable | ${dut2_if2}
+| | ... | ELSE | Set Variable | ${dut1_if2}
+| | VPP Set If IPv6 Addr | ${dut} | ${dut_if2} | 2001:5::1 | ${prefix}
 | | Suppress ICMPv6 router advertisement message | ${nodes}
 | | Add Ip Neighbor | ${dut1} | ${dut1_if1} | 2001:3::2 | ${tg1_if1_mac}
-| | Add Ip Neighbor | ${dut1} | ${dut1_if2} | 2001:4::2 | ${dut2_if1_mac}
-| | Add Ip Neighbor | ${dut2} | ${dut2_if1} | 2001:4::1 | ${dut1_if2_mac}
-| | Add Ip Neighbor | ${dut2} | ${dut2_if2} | 2001:5::2 | ${tg1_if2_mac}
-| | Vpp Route Add | ${dut1} | 2001:2::0 | ${host_prefix} | 2001:4::2
-| | ... | interface=${dut1_if2} | count=${count}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Add Ip Neighbor | ${dut1} | ${dut1_if2} | 2001:4::2 | ${dut2_if1_mac}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Add Ip Neighbor | ${dut2} | ${dut2_if1} | 2001:4::1 | ${dut1_if2_mac}
+| | Add Ip Neighbor | ${dut} | ${dut_if2} | 2001:5::2 | ${tg1_if2_mac}
 | | Vpp Route Add | ${dut1} | 2001:1::0 | ${host_prefix} | 2001:3::2
 | | ... | interface=${dut1_if1} | count=${count}
-| | Vpp Route Add | ${dut2} | 2001:1::0 | ${host_prefix} | 2001:4::1
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Vpp Route Add | ${dut1} | 2001:2::0 | ${host_prefix} | 2001:4::2
+| | ... | interface=${dut1_if2} | count=${count}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Vpp Route Add | ${dut2} | 2001:1::0 | ${host_prefix} | 2001:4::1
 | | ... | interface=${dut2_if1} | count=${count}
-| | Vpp Route Add | ${dut2} | 2001:2::0 | ${host_prefix} | 2001:5::2
-| | ... | interface=${dut2_if2} | count=${count}
+| | Vpp Route Add | ${dut} | 2001:2::0 | ${host_prefix} | 2001:5::2
+| | ... | interface=${dut_if2} | count=${count}
 
 | Initialize IPv6 iAcl whitelist in 3-node circular topology
 | | [Documentation]
 | | 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}
-| | ...
-| | Set interfaces in path up
-| | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id}
-| | Add interface to bridge domain | ${dut1} | ${dut1_if2} | ${bd_id}
-
-| Initialize L2 bridge domain in 3-node circular topology
+| Initialize L2 bridge domain in circular topology
 | | [Documentation]
 | | ... | Setup L2 DB topology by adding two interfaces on each DUT into BD
 | | ... | that is created automatically with index 1. Learning is enabled.
 | | ...
 | | ... | *Example:*
 | | ...
-| | ... | \| Initialize L2 bridge domain in 3-node circular topology \| 1 \|
+| | ... | \| Initialize L2 bridge domain in circular topology \| 1 \|
 | | ...
 | | [Arguments] | ${bd_id}=${1}
 | | ...
+| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
+| | ... | Variable Should Exist | ${dut2}
+| | ...
 | | Set interfaces in path up
+| | ...
 | | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id}
 | | Add interface to bridge domain | ${dut1} | ${dut1_if2} | ${bd_id}
-| | Add interface to bridge domain | ${dut2} | ${dut2_if1} | ${bd_id}
-| | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Add interface to bridge domain | ${dut2} | ${dut2_if1} | ${bd_id}
+| | Run Keyword If | '${dut2_status}' == 'PASS'
+| | ... | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id}
 
 | Configure IPv4 ACLs
 | | [Documentation]
 | | Run keyword | DUT2.Add DPDK Eth Bond Dev | 0 | 2 | l34 | ${dut2_if1_pci}
 
 | Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology
-| | Add Bond Eth Interface | ${dut1} | ${dut1_eth_bond_if1_name}
-| | Add Bond Eth Interface | ${dut2} | ${dut2_eth_bond_if1_name}
+| | Add Eth Interface | ${dut1} | ${dut1_eth_bond_if1_name} | ifc_pfx=eth_bond
+| | Add Eth Interface | ${dut2} | ${dut2_eth_bond_if1_name} | ifc_pfx=eth_bond
 
 | Configure guest VM with dpdk-testpmd connected via vhost-user
 | | [Documentation]