X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fperformance.robot;h=bb9e8ab1358054f86257f511294a26a4b8faea97;hp=9a5f629b90479a5cd5fe256e396f21e41e857e79;hb=8fa8590c30540f53edb02c223a6de616cbe149da;hpb=5ad0974e71987a18cb9a750073313d98f76412f2 diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot index 9a5f629b90..bb9e8ab135 100644 --- a/resources/libraries/robot/performance.robot +++ b/resources/libraries/robot/performance.robot @@ -53,6 +53,8 @@ | | ... | for 10GE with 9004B L2 Frame. | | ... | - 10Ge_linerate_pps_9008B - Maximum number of packet per second | | ... | for 10GE with 9008B L2 Frame. +| | ... | - 10Ge_linerate_pps_IMIX_v4_1 - Maximum number of packet per second +| | ... | for 10GE with IMIX_v4_1 profile. | | ... | - 40Ge_linerate_pps_64B - Maximum number of packet per second | | ... | for 40GE with 64B L2 Frame. | | ... | - 40Ge_linerate_pps_68B - Maximum number of packet per second @@ -83,6 +85,7 @@ | | Set Suite Variable | ${10Ge_linerate_pps_9000B} | 138580 | | Set Suite Variable | ${10Ge_linerate_pps_9004B} | 138519 | | Set Suite Variable | ${10Ge_linerate_pps_9008B} | 138458 +| | Set Suite Variable | ${10Ge_linerate_pps_IMIX_v4_1} | 3343736 | | Set Suite Variable | ${40Ge_linerate_pps_64B} | 59523809 | | Set Suite Variable | ${40Ge_linerate_pps_68B} | 56818181 | | Set Suite Variable | ${40Ge_linerate_pps_72B} | 54347826 @@ -93,6 +96,23 @@ | | Set Suite Variable | ${40Ge_linerate_pps_9004B} | 554078 | | Set Suite Variable | ${40Ge_linerate_pps_9008B} | 553832 +| Get Frame Size +| | [Documentation] +| | ... | Framesize can be either integer in case of a single packet +| | ... | in stream, or set of packets in case of IMIX type or simmilar. +| | ... | This keyword returns average framesize. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize. Type: integer or string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Get Frame Size \| IMIX_v4_1 +| | [Arguments] | ${framesize} +| | Run Keyword If | '${framesize}' == 'IMIX_v4_1' +| | ... | Return From Keyword | 353.83333 +| | Return From Keyword | ${framesize} + | Setup performance global Variables | | [Documentation] | | ... | Setup suite Variables. Variables are used across performance testing. @@ -299,6 +319,48 @@ | | dut2_v4.set_route | 10.10.10.0 | 24 | 1.1.1.1 | ${dut2_if1} | | All Vpp Interfaces Ready Wait | ${nodes} +| Scale IPv4 forwarding initialized in a 3-node circular topology +| | [Documentation] +| | ... | Custom setup of IPv4 topology with scalability of ip routes on all +| | ... | DUT nodes in 3-node circular topology +| | ... +| | ... | *Arguments:* +| | ... | - ${count} - IP route count. Type: integer +| | ... +| | ... | *Return:* +| | ... | - No value returned +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Scale IPv4 forwarding initialized in a 3-node circular topology \ +| | ... | \| 100000 \| +| | [Arguments] | ${count} +| | 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 +| | ${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} +| | 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} +| | IP addresses are set on interfaces | ${dut1} | ${dut1_if1} | 1.1.1.2 | 30 +| | IP addresses are set on interfaces | ${dut1} | ${dut1_if2} | 2.2.2.1 | 30 +| | IP addresses are set on interfaces | ${dut2} | ${dut2_if1} | 2.2.2.2 | 30 +| | IP addresses are set on interfaces | ${dut2} | ${dut2_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} +| | ... | count=${count} +| | 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} +| | ... | count=${count} +| | All Vpp Interfaces Ready Wait | ${nodes} + | IPv6 forwarding initialized in a 3-node circular topology | | [Documentation] | | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular @@ -317,17 +379,53 @@ | | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if1} | 2001:3::2 | ${prefix} | | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if2} | 2001:2::1 | ${prefix} | | Vpp nodes ra suppress link layer | ${nodes} -| | Vpp set IPv6 neighbor | ${dut1} | ${dut1_if1} | 2001:1::2 -| | ... | ${tg1_if1_mac} -| | Vpp set IPv6 neighbor | ${dut2} | ${dut2_if2} | 2001:2::2 -| | ... | ${tg1_if2_mac} -| | Vpp set IPv6 neighbor | ${dut1} | ${dut1_if2} | 2001:3::2 -| | ... | ${dut2_if1_mac} -| | Vpp set IPv6 neighbor | ${dut2} | ${dut2_if1} | 2001:3::1 -| | ... | ${dut1_if2_mac} +| | Add Ip Neighbor | ${dut1} | ${dut1_if1} | 2001:1::2 | ${tg1_if1_mac} +| | Add Ip Neighbor | ${dut2} | ${dut2_if2} | 2001:2::2 | ${tg1_if2_mac} +| | Add Ip Neighbor | ${dut1} | ${dut1_if2} | 2001:3::2 | ${dut2_if1_mac} +| | Add Ip Neighbor | ${dut2} | ${dut2_if1} | 2001:3::1 | ${dut1_if2_mac} | | 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} +| Scale IPv6 forwarding initialized in a 3-node circular topology +| | [Documentation] +| | ... | Custom setup of IPv6 topology with scalability of ip routes on all +| | ... | DUT nodes in 3-node circular topology +| | ... +| | ... | *Arguments:* +| | ... | - ${count} - IP route count. Type: integer +| | ... +| | ... | *Return:* +| | ... | - No value returned +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Scale IPv6 forwarding initialized in a 3-node circular topology \ +| | ... | \| 100000 \| +| | [Arguments] | ${count} +| | ${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} +| | Vpp nodes ra suppress link layer | ${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} +| | 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 +| | ... | interface=${dut2_if2} | count=${count} +| | Vpp Route Add | ${dut2} | 2001:2::0 | ${host_prefix} | 2001:5::2 +| | ... | interface=${dut2_if1} | count=${count} + | L2 xconnect initialized in a 3-node circular topology | | [Documentation] | | ... | Setup L2 xconnect topology by cross connecting two interfaces on @@ -361,7 +459,6 @@ | | ... | \| 2-node Performance Suite Setup \| L2 \| | | [Arguments] | ${topology_type} | | Setup default startup configuration of VPP on all DUTs -| | Update All Interface Data On All Nodes | ${nodes} | | Show vpp version on all DUTs | | Setup performance rate Variables | | Setup performance global Variables @@ -385,7 +482,6 @@ | | ... | \| 3-node Performance Suite Setup \| L2 \| | | [Arguments] | ${topology_type} | | Setup default startup configuration of VPP on all DUTs -| | Update All Interface Data On All Nodes | ${nodes} | | Show vpp version on all DUTs | | Setup performance rate Variables | | Setup performance global Variables @@ -411,7 +507,6 @@ | | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \| | | [Arguments] | ${topology_type} | ${nic_model} | | Setup default startup configuration of VPP on all DUTs -| | Update All Interface Data On All Nodes | ${nodes} | | Show vpp version on all DUTs | | Setup performance rate Variables | | Setup performance global Variables @@ -438,7 +533,6 @@ | | ... | \| 3-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \| | | [Arguments] | ${topology_type} | ${nic_model} | | Setup default startup configuration of VPP on all DUTs -| | Update All Interface Data On All Nodes | ${nodes} | | Show vpp version on all DUTs | | Setup performance rate Variables | | Setup performance global Variables @@ -710,6 +804,7 @@ | | ... | \| (0, 10/10/10) \| | | [Arguments] | ${rate_per_stream} | ${framesize} | ${nr_streams} | | ... | ${latency} +| | ${framesize}= | Get Frame Size | ${framesize} | | ${rate_total}= | Evaluate | ${rate_per_stream}*${nr_streams} | | ${bandwidth_total}= | Evaluate | ${rate_total}*(${framesize}+20)*8/(10**9) | | Set Test Message | FINAL_RATE: ${rate_total} pps @@ -744,6 +839,7 @@ | | ... | \| percentage \| (0, 10/10/10) \| | | [Arguments] | ${rate_per_stream} | ${framesize} | ${nr_streams} | | ... | ${loss_acceptance} | ${loss_acceptance_type} | ${latency} +| | ${framesize}= | Get Frame Size | ${framesize} | | ${rate_total}= | Evaluate | ${rate_per_stream}*${nr_streams} | | ${bandwidth_total}= | Evaluate | ${rate_total}*(${framesize}+20)*8/(10**9) | | Set Test Message | FINAL_RATE: ${rate_total} pps @@ -835,3 +931,11 @@ | | Sleep | ${duration} | | Show runtime counters on all DUTs | | Stop traffic on tg + +| Add PCI devices to DUTs from 3-node single link topology +| | ${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} +| | Add PCI device | ${dut1} | ${dut1_if1_pci} | ${dut1_if2_pci} +| | Add PCI device | ${dut2} | ${dut2_if1_pci} | ${dut2_if2_pci}