X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fperformance%2Fperformance_configuration.robot;h=3255547e08ea229633336416eb53f6fd482ec732;hp=17b8c68545846baa140c765bb94d33ec6bad9b2e;hb=176e4a72195cc5c80f73650af260ac491fb53469;hpb=6721e7f09aa95bff6622068332a3f56afad9c87b diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index 17b8c68545..3255547e08 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -201,6 +201,14 @@ | | ... | - sock1 - Sock path for first Vhost-User interface. Type: string | | ... | - sock2 - Sock path for second Vhost-User interface. Type: string | | ... +| | ... | _NOTE:_ This KW uses following test case variables: +| | ... | - ${dut1} - DUT1 node. +| | ... | - ${dut2} - DUT2 node. +| | ... | - ${dut1_if1} - DUT1 interface towards TG. +| | ... | - ${dut1_if2} - DUT1 interface towards DUT2. +| | ... | - ${dut2_if1} - DUT2 interface towards DUT1. +| | ... | - ${dut2_if2} - DUT2 interface towards TG. +| | ... | | ... | *Return:* | | ... | - No value returned | | ... @@ -213,15 +221,15 @@ | | ... | | Set interfaces in path in 3-node circular topology up | | Configure vhost interfaces for L2BD forwarding | ${dut1} -| | ... | ${sock1} | ${sock2} -| | ${dut1_vif1}= | Set Variable | ${vhost_if1} -| | ${dut1_vif2}= | Set Variable | ${vhost_if2} +| | ... | ${sock1} | ${sock2} | dut1_vhost_if1 | dut1_vhost_if2 +| | ${dut1_vif1}= | Set Variable | ${dut1_vhost_if1} +| | ${dut1_vif2}= | Set Variable | ${dut1_vhost_if2} | | Set Interface State | ${dut1} | ${dut1_vif1} | up | | Set Interface State | ${dut1} | ${dut1_vif2} | up | | Configure vhost interfaces for L2BD forwarding | ${dut2} -| | ... | ${sock1} | ${sock2} -| | ${dut2_vif1}= | Set Variable | ${vhost_if1} -| | ${dut2_vif2}= | Set Variable | ${vhost_if2} +| | ... | ${sock1} | ${sock2} | dut2_vhost_if1 | dut2_vhost_if2 +| | ${dut2_vif1}= | Set Variable | ${dut2_vhost_if1} +| | ${dut2_vif2}= | Set Variable | ${dut2_vhost_if2} | | Set Interface State | ${dut2} | ${dut2_vif1} | up | | Set Interface State | ${dut2} | ${dut2_vif2} | up | | ${dut1_vif1_idx}= | Get Interface SW Index | ${dut1} | ${dut1_vif1} @@ -614,6 +622,14 @@ | | ... | - sock1 - Socket path for first Vhost-User interface. Type: string | | ... | - sock2 - Socket path for second Vhost-User interface. Type: string | | ... +| | ... | _NOTE:_ This KW uses following test case variables: +| | ... | - ${dut1} - DUT1 node. +| | ... | - ${dut2} - DUT2 node. +| | ... | - ${dut1_if1} - DUT1 interface towards TG. +| | ... | - ${dut1_if2} - DUT1 interface towards DUT2. +| | ... | - ${dut2_if1} - DUT2 interface towards DUT1. +| | ... | - ${dut2_if2} - DUT2 interface towards TG. +| | ... | | ... | *Example:* | | ... | | ... | \| L2 xconnect with Vhost-User initialized in a 3-node \ @@ -622,13 +638,13 @@ | | [Arguments] | ${sock1} | ${sock2} | | ... | | Configure vhost interfaces for L2BD forwarding | ${dut1} -| | ... | ${sock1} | ${sock2} -| | Configure L2XC | ${dut1} | ${dut1_if1} | ${vhost_if1} -| | Configure L2XC | ${dut1} | ${dut1_if2} | ${vhost_if2} +| | ... | ${sock1} | ${sock2} | dut1_vhost_if1 | dut1_vhost_if2 +| | Configure L2XC | ${dut1} | ${dut1_if1} | ${dut1_vhost_if1} +| | Configure L2XC | ${dut1} | ${dut1_if2} | ${dut1_vhost_if2} | | Configure vhost interfaces for L2BD forwarding | ${dut2} -| | ... | ${sock1} | ${sock2} -| | Configure L2XC | ${dut2} | ${dut2_if1} | ${vhost_if1} -| | Configure L2XC | ${dut2} | ${dut2_if2} | ${vhost_if2} +| | ... | ${sock1} | ${sock2} | dut2_vhost_if1 | dut2_vhost_if2 +| | Configure L2XC | ${dut2} | ${dut2_if1} | ${dut2_vhost_if1} +| | Configure L2XC | ${dut2} | ${dut2_if2} | ${dut2_vhost_if2} | | All Vpp Interfaces Ready Wait | ${nodes} | Initialize L2 xconnect with Vhost-User for '${nr}' in 3-node circular topology @@ -727,8 +743,16 @@ | | ... | *Arguments:* | | ... | - bd_id1 - Bridge domain ID. Type: integer | | ... | - bd_id2 - Bridge domain ID. Type: integer -| | ... | - sock1 - Sock path for first Vhost-User interface. Type: string -| | ... | - sock2 - Sock path for second Vhost-User interface. Type: string +| | ... | - sock1 - Sock path for the first Vhost-User interface. Type: string +| | ... | - sock2 - Sock path for the second Vhost-User interface. Type: string +| | ... +| | ... | _NOTE:_ This KW uses following test case variables: +| | ... | - ${dut1} - DUT1 node. +| | ... | - ${dut2} - DUT2 node. +| | ... | - ${dut1_if1} - DUT1 interface towards TG. +| | ... | - ${dut1_if2} - DUT1 interface towards DUT2. +| | ... | - ${dut2_if1} - DUT2 interface towards DUT1. +| | ... | - ${dut2_if2} - DUT2 interface towards TG. | | ... | | ... | *Example:* | | ... @@ -738,17 +762,17 @@ | | [Arguments] | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2} | | ... | | Configure vhost interfaces for L2BD forwarding | ${dut1} -| | ... | ${sock1} | ${sock2} +| | ... | ${sock1} | ${sock2} | dut1_vhost_if1 | dut1_vhost_if2 | | 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} | ${dut1_vhost_if1} | ${bd_id1} | | Add interface to bridge domain | ${dut1} | ${dut1_if2} | ${bd_id2} -| | Add interface to bridge domain | ${dut1} | ${vhost_if2} | ${bd_id2} +| | Add interface to bridge domain | ${dut1} | ${dut1_vhost_if2} | ${bd_id2} | | Configure vhost interfaces for L2BD forwarding | ${dut2} -| | ... | ${sock1} | ${sock2} +| | ... | ${sock1} | ${sock2} | dut2_vhost_if1 | dut2_vhost_if2 | | Add interface to bridge domain | ${dut2} | ${dut2_if1} | ${bd_id1} -| | Add interface to bridge domain | ${dut2} | ${vhost_if1} | ${bd_id1} +| | Add interface to bridge domain | ${dut2} | ${dut2_vhost_if1} | ${bd_id1} | | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} -| | Add interface to bridge domain | ${dut2} | ${vhost_if2} | ${bd_id2} +| | Add interface to bridge domain | ${dut2} | ${dut2_vhost_if2} | ${bd_id2} | | All Vpp Interfaces Ready Wait | ${nodes} | Initialize L2 bridge domains with Vhost-User for '${nr}' VMs in 3-node circular topology @@ -1000,7 +1024,10 @@ | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${count} | smt_used=${False} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2} -| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} | apply_patch=${True} +| | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False} +| | ... | ${True} +| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} +| | ... | apply_patch=${apply_patch} | | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin} | | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node} | | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1 @@ -1008,6 +1035,7 @@ | | Run keyword | ${vm_name}.Qemu Set Disk Image | ${perf_vm_image} | | ${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 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f | eal_mem_channels=4 | | ... | pmd_fwd_mode=io | pmd_disable_hw_vlan=${True} | | ... | pmd_txd=${perf_qemu_qsz} | pmd_rxd=${perf_qemu_qsz} @@ -1028,8 +1056,8 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| '2' Configure guest VM with dpdk-testpmd connected via vhost-user \ -| | ... | in a 3-node circular topology \| +| | ... | \| Configure '2' guest VMs with dpdk-testpmd connected via vhost-user \ +| | ... | in 3-node circular topology \| | | ... | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1 | | | ${sock1}= | Set Variable | /tmp/sock-${number}-1 @@ -1062,8 +1090,8 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Guest VM with dpdk-testpmd using SMT connected via vhost-user is \ -| | ... | setup \| ${nodes['DUT1']} \| /tmp/sock1 \| /tmp/sock2 \| DUT1_VM \ +| | ... | \| Configure guest VM with dpdk-testpmd using SMT connected via \ +| | ... | vhost-user \| ${nodes['DUT1']} \| /tmp/sock1 \| /tmp/sock2 \| DUT1_VM \ | | ... | \| ${6} \| ${5} \| | | ... | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name} | ${skip}=${6} @@ -1077,7 +1105,10 @@ | | ... | skip_cnt=${skip} | cpu_cnt=${count} | smt_used=${True} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2} -| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} | apply_patch=${True} +| | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False} +| | ... | ${True} +| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} +| | ... | apply_patch=${apply_patch} | | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin} | | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node} | | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1 @@ -1085,6 +1116,7 @@ | | Run keyword | ${vm_name}.Qemu Set Disk Image | ${perf_vm_image} | | ${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 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f | eal_mem_channels=4 | | ... | pmd_fwd_mode=io | pmd_disable_hw_vlan=${True} | | ... | pmd_txd=${perf_qemu_qsz} | pmd_rxd=${perf_qemu_qsz} @@ -1113,10 +1145,10 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Guest VM with dpdk-testpmd for Vhost L2BD forwarding is setup \ +| | ... | \| Configure guest VM with dpdk-testpmd-mac connected via vhost-user \ | | ... | \| ${nodes['DUT1']} \| /tmp/sock1 \| /tmp/sock2 \| DUT1_VM \ | | ... | \| 00:00:00:00:00:01 \| 00:00:00:00:00:02 \| ${6} \| ${5} \| -| | ... | \| Guest VM with dpdk-testpmd for Vhost L2BD forwarding is setup \ +| | ... | \| Configure guest VM with dpdk-testpmd-mac connected via vhost-user \ | | ... | \| ${nodes['DUT1']} \| /tmp/sock-2-1 \| /tmp/sock-2-2 \| DUT1_VM2 \ | | ... | \| 00:00:00:00:02:01 \| 00:00:00:00:02:02 \| ${6} \| ${5} \ | | ... | \| qemu_id=${2} \| @@ -1138,7 +1170,10 @@ | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${count} | smt_used=${False} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2} -| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} | apply_patch=${True} +| | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False} +| | ... | ${True} +| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} +| | ... | apply_patch=${apply_patch} | | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin} | | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node} | | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1 @@ -1146,6 +1181,7 @@ | | Run keyword | ${vm_name}.Qemu Set Disk Image | ${perf_vm_image} | | ${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 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f | | ... | eal_mem_channels=4 | pmd_fwd_mode=mac | pmd_eth_peer_0=0,${eth0_mac} | | ... | pmd_eth_peer_1=1,${eth1_mac} | pmd_disable_hw_vlan=${True} @@ -1168,8 +1204,8 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| '2' Guest VMs with dpdk-testpmd-mac connected via vhost-user is \ -| | ... | setup in a 3-node circular topology \| +| | ... | \| Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user \ +| | ... | in 3-node circular topology \| | | ... | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1 | | | ${sock1}= | Set Variable | /tmp/sock-${number}-1 @@ -1225,7 +1261,10 @@ | | ... | skip_cnt=${skip} | cpu_cnt=${count} | smt_used=${True} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1} | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2} -| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} | apply_patch=${True} +| | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False} +| | ... | ${True} +| | Run Keyword | ${vm_name}.Build QEMU | ${dut_node} +| | ... | apply_patch=${apply_patch} | | Run keyword | ${vm_name}.Qemu Set Bin | ${perf_qemu_bin} | | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node} | | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1 @@ -1233,6 +1272,7 @@ | | Run keyword | ${vm_name}.Qemu Set Disk Image | ${perf_vm_image} | | ${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 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f | | ... | eal_mem_channels=4 | pmd_fwd_mode=mac | pmd_eth_peer_0=0,${eth0_mac} | | ... | pmd_eth_peer_1=1,${eth1_mac} | pmd_disable_hw_vlan=${True} @@ -1595,3 +1635,48 @@ | | ... | ${dut1} | ${dut1_if1} | ${dut1_if2} | | Configure deterministic mode for SNAT | | ... | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30 + +| Initialize L2 xconnect for '${nr}' memif pairs in 3-node circular topology +| | [Documentation] +| | ... | Create pairs of Memif interfaces on all defined VPP nodes. Cross +| | ... | connect each Memif interface with one physical interface or virtual +| | ... | interface to create a chain accross DUT node. +| | ... +| | ... | *Arguments:* +| | ... | _None_ +| | ... +| | ... | *Note:* +| | ... | Socket paths for Memif are defined in following format: +| | ... | - /tmp/memif-${number}-1 +| | ... | - /tmp/memif-${number}-2 +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize L2 xconnect for 1 Memif in 3-node circular topology \| +| | ... +| | Set Interface State | ${dut1} | ${dut1_if1} | up +| | Set Interface State | ${dut1} | ${dut1_if2} | up +| | Set Interface State | ${dut2} | ${dut2_if1} | up +| | Set Interface State | ${dut2} | ${dut2_if2} | up +| | :FOR | ${number} | IN RANGE | 1 | ${nr}+1 +| | | ${sock1}= | Set Variable | /tmp/memif-${number}-1 +| | | ${sock2}= | Set Variable | /tmp/memif-${number}-2 +| | | ${prev_index}= | Evaluate | ${number}-1 +| | | Set up memif interfaces on DUT node | ${dut1} +| | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1 +| | | ... | dut1-memif-${number}-if2 +| | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1} +| | | ... | ${dut1-memif-${prev_index}-if2} +| | | Configure L2XC | ${dut1} | ${dut1_xconnect_if1} +| | | ... | ${dut1-memif-${number}-if1} +| | | Set up memif interfaces on DUT node | ${dut2} +| | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1 +| | | ... | dut2-memif-${number}-if2 +| | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1} +| | | ... | ${dut2-memif-${prev_index}-if2} +| | | Configure L2XC | ${dut2} | ${dut2_xconnect_if1} +| | | ... | ${dut2-memif-${number}-if1} +| | | Run Keyword If | ${number}==${nr} | Configure L2XC +| | | ... | ${dut1} | ${dut1-memif-${number}-if2} | ${dut1_if2} +| | | Run Keyword If | ${number}==${nr} | Configure L2XC +| | | ... | ${dut2} | ${dut2-memif-${number}-if2} | ${dut2_if2}