X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fperformance%2Fperformance_configuration.robot;h=de60cead9030b1fb62853278c64df1142915e1fb;hb=e23c6e55af3d72a8121e2d8e3e92ce086f940699;hp=543e76e56d53c89d379e669e137534cb57608e44;hpb=3e8a10ce9f0481d610aafa41f3195b0900122eb4;p=csit.git diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index 543e76e56d..de60cead90 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -776,6 +776,97 @@ | | Vpp Route Add | ${dut} | 2001:2::0 | ${host_prefix} | 2001:5::2 | | ... | interface=${dut_if2} | count=${count} +| Initialize IPv6 forwarding with VLAN dot1q sub-interfaces in circular topology +| | [Documentation] +| | ... | Set UP state on VPP interfaces in path on nodes in 2-node / 3-node +| | ... | circular topology. In case of 3-node topology create VLAN +| | ... | sub-interfaces between DUTs. In case of 2-node topology create VLAN +| | ... | sub-interface on dut1-if2 interface. Get the interface MAC addresses +| | ... | and setup ARPs. Setup IPv6 addresses with /64 prefix on DUT-TG links +| | ... | and set routing with prefix /64. In case of 3-node set IPv6 adresses +| | ... | with /64 prefix on VLAN and set routing on both DUT nodes with prefix +| | ... | /64. Set next hop of neighbour DUT interface IPv6 address. All +| | ... | interfaces are brought up. +| | ... +| | ... | *Arguments:* +| | ... | - tg_if1_net - TG interface 1 IPv6 subnet used by traffic generator. +| | ... | Type: integer +| | ... | - tg_if2_net - TG interface 2 IPv6 subnet used by traffic generator. +| | ... | Type: integer +| | ... | - subid - ID of the sub-interface to be created. Type: string +| | ... | - tag_rewrite - Method of tag rewrite. Type: string +| | ... +| | ... | _NOTE:_ This KW uses following test case variables: +| | ... | - dut1 - DUT1 node. +| | ... | - dut2 - DUT2 node. +| | ... | - dut1_if2 - DUT1 interface towards DUT2. +| | ... | - dut2_if1 - DUT2 interface towards DUT1. +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize IPv6 forwarding with VLAN dot1q sub-interfaces\ +| | ... | in circular topology \| 2001:1::0 \| 2001:2::0 \| 10 \| pop-1 \| +| | ... +| | [Arguments] | ${tg_if1_net} | ${tg_if2_net} | ${subid} | ${tag_rewrite} +| | ... +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ... +| | Set interfaces in path up +| | ... +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} +| | ... | ELSE | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... | ${dut1} | ${dut1_if2} | SUB_ID=${subid} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Configure L2 tag rewrite method on interfaces | ${dut1} +| | ... | ${subif_index_1} | ${dut2} | ${subif_index_2} | ${tag_rewrite} +| | ... | ELSE | Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | TAG_REWRITE_METHOD=${tag_rewrite} +| | ... +| | ${prefix}= | Set Variable | 64 +| | ${host_prefix}= | Set Variable | 64 +| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1} +| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2} +| | ${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 Ip Neighbor | ${dut1} | ${dut1_if1} | 2002:1::1 | ${tg1_if1_mac} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add Ip Neighbor | ${dut1} | ${subif_index_1} | 2002:2::2 +| | ... | ${dut2_if1_mac} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add Ip Neighbor | ${dut2} | ${subif_index_2} | 2002: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 | ${subif_index_1} +| | Add Ip Neighbor | ${dut} | ${dut_if2} | 2002:3::1 | ${tg1_if2_mac} +| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if1} | 2002:1::2 | ${prefix} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | VPP Set If IPv6 Addr | ${dut1} | ${subif_index_1} | 2002:2::1 +| | ... | ${prefix} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | VPP Set If IPv6 Addr | ${dut2} | ${subif_index_2} | 2002:2::2 +| | ... | ${prefix} +| | VPP Set If IPv6 Addr | ${dut} | ${dut_if2} | 2002:3::2 | ${prefix} +| | Suppress ICMPv6 router advertisement message | ${nodes} +| | Vpp Route Add | ${dut1} | ${tg_if1_net} | ${host_prefix} | 2002:1::1 +| | ... | interface=${dut1_if1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Vpp Route Add | ${dut1} | ${tg_if2_net} | ${host_prefix} | 2002:2::2 +| | ... | interface=${subif_index_1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Vpp Route Add | ${dut2} | ${tg_if1_net} | ${host_prefix} | 2002:2::1 +| | ... | interface=${subif_index_2} +| | Vpp Route Add | ${dut} | ${tg_if2_net} | ${host_prefix} | 2002:3::1 +| | ... | interface=${dut_if2} + | Initialize IPv6 iAcl whitelist in 3-node circular topology | | [Documentation] | | ... | Creates classify L3 table on DUTs. IPv6 iAcl security whitelist @@ -1071,7 +1162,6 @@ | | | ... | ${${dut}-vhost-${number}-if1} | | | Run Keyword If | ${number}==${vm_count} | Configure L2XC | | | ... | ${nodes['${dut}']} | ${${dut}-vhost-${number}-if2} | ${${dut}_if2} -| | All VPP Interfaces Ready Wait | ${nodes} | Initialize L2 xconnect with Vhost-User | | [Documentation] @@ -1168,7 +1258,6 @@ | | ... | ${sock1} | ${sock2} | | Configure L2XC | ${dut2} | ${subif_index_2} | ${vhost_if1} | | Configure L2XC | ${dut2} | ${dut2_if2} | ${vhost_if2} -| | All VPP Interfaces Ready Wait | ${nodes} | Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology | | [Documentation] @@ -1627,7 +1716,6 @@ | | | ... | ${${dut}-vhost-${number}-if1} | ${number} | | | Add interface to bridge domain | ${nodes['${dut}']} | | | ... | ${${dut}-vhost-${number}-if2} | ${bd_id2} -| | All VPP Interfaces Ready Wait | ${nodes} | Initialize L2 bridge domains with Vhost-User | | [Documentation] @@ -1789,11 +1877,13 @@ | | Add interface to bridge domain | ${dut1} | ${vhost_if1} | ${dut1_bd_id1} | | Add interface to bridge domain | ${dut1} | ${vhost_if2} | ${dut1_bd_id2} -| Initialize L2 bridge domains with VLAN dot1q sub-interfaces in a 3-node circular topology +| Initialize L2 bridge domains with VLAN dot1q sub-interfaces in circular topology | | [Documentation] -| | ... | Setup L2 bridge domain topology with learning enabled with VLAN -| | ... | between DUTs by connecting physical and vlan interfaces on each DUT. -| | ... | All interfaces are brought up. +| | ... | Setup L2 bridge domain topology with learning enabled with VLAN by +| | ... | connecting physical and vlan interfaces on each DUT. In case of 3-node +| | ... | topology create VLAN sub-interfaces between DUTs. In case of 2-node +| | ... | topology create VLAN sub-interface on dut1-if2 interface. All +| | ... | interfaces are brought up. | | ... | | ... | *Arguments:* | | ... | - bd_id1 - Bridge domain ID. Type: integer @@ -1814,23 +1904,38 @@ | | ... | | [Arguments] | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} | | ... +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ... | | Set interfaces in path up -| | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Initialize VLAN dot1q sub-interfaces in circular topology | | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} +| | ... | ELSE | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... | ${dut1} | ${dut1_if2} | SUB_ID=${subid} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Configure L2 tag rewrite method on interfaces | ${dut1} +| | ... | ${subif_index_1} | ${dut2} | ${subif_index_2} | ${tag_rewrite} +| | ... | ELSE | Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | TAG_REWRITE_METHOD=${tag_rewrite} +| | ... | | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id1} | | Add interface to bridge domain | ${dut1} | ${subif_index_1} | ${bd_id1} -| | Add interface to bridge domain | ${dut2} | ${subif_index_2} | ${bd_id2} -| | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${subif_index_2} +| | ... | ${bd_id2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${dut2_if2} +| | ... | ${bd_id2} -| Initialize L2 bridge domains with Vhost-User and VLAN in a 3-node circular topology +| Initialize L2 bridge domains with Vhost-User and VLAN in circular topology | | [Documentation] | | ... | Create two Vhost-User interfaces on all defined VPP nodes. Add each | | ... | Vhost-User interface into L2 bridge domains with learning enabled -| | ... | with physical inteface. -| | ... | Setup VLAN between DUTs. All interfaces are brought up. +| | ... | with physical inteface. In case of 3-node topology create VLAN +| | ... | sub-interfaces between DUTs. In case of 2-node topology create VLAN +| | ... | sub-interface on dut1-if2 interface. All interfaces are brought up. | | ... | | ... | *Arguments:* | | ... | - bd_id1 - Bridge domain ID. Type: integer @@ -1842,31 +1947,46 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| L2 bridge domains with Vhost-User and VLAN initialized in a 3-node\ -| | ... | circular topology \| 1 \| 2 \| /tmp/sock1 \| /tmp/sock2 \| 10 \ -| | ... | \| pop-1 \| +| | ... | \| L2 bridge domains with Vhost-User and VLAN initialized in circular\ +| | ... | topology \| 1 \| 2 \| /tmp/sock1 \| /tmp/sock2 \| 10 \| pop-1 \| | | ... | | [Arguments] | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | ${subid} | | ... | ${tag_rewrite} | | ... +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ... | | Set interfaces in path up -| | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Initialize VLAN dot1q sub-interfaces in circular topology | | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} +| | ... | ELSE | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... | ${dut1} | ${dut1_if2} | SUB_ID=${subid} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Configure L2 tag rewrite method on interfaces | ${dut1} +| | ... | ${subif_index_1} | ${dut2} | ${subif_index_2} | ${tag_rewrite} +| | ... | ELSE | Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | TAG_REWRITE_METHOD=${tag_rewrite} +| | ... | | Configure vhost interfaces for L2BD forwarding | ${dut1} | | ... | ${sock1} | ${sock2} | | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id1} | | Add interface to bridge domain | ${dut1} | ${vhost_if1} | ${bd_id1} | | Add interface to bridge domain | ${dut1} | ${vhost_if2} | ${bd_id2} | | Add interface to bridge domain | ${dut1} | ${subif_index_1} | ${bd_id2} -| | Configure vhost interfaces for L2BD forwarding | ${dut2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Configure vhost interfaces for L2BD forwarding | ${dut2} | | ... | ${sock1} | ${sock2} -| | Add interface to bridge domain | ${dut2} | ${subif_index_2} | ${bd_id1} -| | Add interface to bridge domain | ${dut2} | ${vhost_if1} | ${bd_id1} -| | Add interface to bridge domain | ${dut2} | ${vhost_if2} | ${bd_id2} -| | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${subif_index_2} +| | ... | ${bd_id1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${vhost_if1} | ${bd_id1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${vhost_if2} | ${bd_id2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} | Initialize L2 bridge domains with Vhost-User and VLAN with DPDK link bonding in a 3-node circular topology | | [Documentation] @@ -2172,7 +2292,7 @@ | | ${vm}= | Run keyword | ${vm_name}.Qemu Start | | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus} | | Run keyword If | ${use_tuned_cfs} | ${vm_name}.Qemu Set Scheduler Policy -| | ${max_pkt_len}= | Set Variable If | ${jumbo} | 9000 | ${EMPTY} +| | ${max_pkt_len}= | Set Variable If | ${jumbo} | 9200 | ${EMPTY} | | ${testpmd_cpus}= | Evaluate | ${thr_count_int} + ${1} | | ${testpmd_cpus}= | Cpu list per node str | ${nodes['${dut}']} | ${0} | | ... | cpu_cnt=${testpmd_cpus} @@ -2243,6 +2363,7 @@ | | | Configure guest VMs with dpdk-testpmd connected via vhost-user on node | | | ... | ${dut} | vm_count=${vm_count} | jumbo=${jumbo} | | | ... | perf_qemu_qsz=${perf_qemu_qsz} | use_tuned_cfs=${False} +| | All VPP Interfaces Ready Wait | ${nodes} | Configure guest VM with dpdk-testpmd-mac connected via vhost-user | | [Documentation] @@ -2319,7 +2440,7 @@ | | ${vm}= | Run keyword | ${vm_name}.Qemu Start | | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus} | | Run keyword If | ${use_tuned_cfs} | ${vm_name}.Qemu Set Scheduler Policy -| | ${max_pkt_len}= | Set Variable If | ${jumbo} | 9000 | ${EMPTY} +| | ${max_pkt_len}= | Set Variable If | ${jumbo} | 9200 | ${EMPTY} | | ${testpmd_cpus}= | Evaluate | ${thr_count_int} + ${1} | | ${testpmd_cpus}= | Cpu list per node str | ${nodes['${dut}']} | ${0} | | ... | cpu_cnt=${testpmd_cpus} @@ -2396,6 +2517,7 @@ | | | Configure guest VMs with dpdk-testpmd-mac connected via vhost-user on node | | | ... | ${dut} | vm_count=${vm_count} | jumbo=${jumbo} | | | ... | perf_qemu_qsz=${perf_qemu_qsz} | use_tuned_cfs=${False} +| | All VPP Interfaces Ready Wait | ${nodes} | Configure guest VM with linux bridge connected via vhost-user | | [Documentation] @@ -2844,6 +2966,82 @@ | | Set interfaces in path up | | Show Memif on all DUTs | ${nodes} +| Initialize L2 Bridge Domain with memif pairs and VLAN in circular topology +| | [Documentation] +| | ... | Create pairs of Memif interfaces on all defined VPP nodes. Put each +| | ... | Memif interface to separate L2 bridge domain with one physical or +| | ... | virtual interface to create a chain accross DUT node. In case of +| | ... | 3-node topology create VLAN sub-interfaces between DUTs. In case of +| | ... | 2-node topology create VLAN sub-interface on dut1-if2 interface. All +| | ... | interfaces are brought up. +| | ... +| | ... | *Arguments:* +| | ... | - bd_id1 - Bridge domain ID. Type: integer +| | ... | - bd_id2 - Bridge domain ID. Type: integer +| | ... | - subid - ID of the sub-interface to be created. Type: string +| | ... | - tag_rewrite - Method of tag rewrite. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize L2 Bridge Domain with memif pairs and VLAN in circular\ +| | ... | topology \| 1 \| 2 \| 10 \| pop-1 \| +| | ... +| | [Arguments] | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} +| | ... +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ... +| | Set interfaces in path up +| | ... +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} +| | ... | ELSE | Initialize VLAN dot1q sub-interfaces in circular topology +| | ... | ${dut1} | ${dut1_if2} | SUB_ID=${subid} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Configure L2 tag rewrite method on interfaces | ${dut1} +| | ... | ${subif_index_1} | ${dut2} | ${subif_index_2} | ${tag_rewrite} +| | ... | ELSE | Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | TAG_REWRITE_METHOD=${tag_rewrite} +| | ... +| | ${number}= | Set Variable | ${1} +| | ${sock1}= | Set Variable | memif-DUT1_VNF +| | ${sock2}= | Set Variable | memif-DUT1_VNF +| | ${memif_if1_name}= | Set Variable | DUT1-memif-${number}-if1 +| | ${memif_if2_name}= | Set Variable | DUT1-memif-${number}-if2 +| | Set up memif interfaces on DUT node | ${dut1} | ${sock1} | ${sock2} +| | ... | ${number} | ${memif_if1_name} | ${memif_if2_name} | ${rxq_count_int} +| | ... | ${rxq_count_int} +| | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id1} +| | Add interface to bridge domain | ${dut1} | ${${memif_if1_name}} | ${bd_id1} +| | Add interface to bridge domain | ${dut1} | ${${memif_if2_name}} | ${bd_id2} +| | Add interface to bridge domain | ${dut1} | ${subif_index_1} | ${bd_id2} +| | ${sock1}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | memif-DUT2_VNF +| | ${sock2}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | memif-DUT2_VNF +| | ${memif_if1_name}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | DUT2-memif-${number}-if1 +| | ${memif_if2_name}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | DUT2-memif-${number}-if2 +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set up memif interfaces on DUT node | ${dut2} | ${sock1} | ${sock2} +| | ... | ${number} | ${memif_if1_name} | ${memif_if2_name} | ${rxq_count_int} +| | ... | ${rxq_count_int} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${subif_index_2} +| | ... | ${bd_id1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${${memif_if1_name}} +| | ... | ${bd_id1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${${memif_if2_name}} +| | ... | ${bd_id2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} +| | ... +| | Show Memif on all DUTs | ${nodes} + | Initialize IPv4 routing with memif pairs on DUT node | | [Documentation] | | ... | Create pairs of Memif interfaces on DUT node. Put each Memif interface