X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fperformance.robot;h=62b175668da03b69ecdb89aa75432a4d7bdc5e6a;hb=72be8262ea5dc0136a21032402b7f4ffa5ff4576;hp=9a5f629b90479a5cd5fe256e396f21e41e857e79;hpb=5ad0974e71987a18cb9a750073313d98f76412f2;p=csit.git diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot index 9a5f629b90..62b175668d 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 @@ -73,6 +75,8 @@ | | ... | for 40GE with 9004B L2 Frame. | | ... | - 40Ge_linerate_pps_9008B - Maximum number of packet per second | | ... | for 40GE with 9008B L2 Frame. +| | ... | - 40Ge_linerate_pps_IMIX_v4_1 - Maximum number of packet per second +| | ... | for 40GE with IMIX_v4_1 profile. | | ... | | Set Suite Variable | ${10Ge_linerate_pps_64B} | 14880952 | | Set Suite Variable | ${10Ge_linerate_pps_68B} | 14204545 @@ -83,6 +87,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 @@ -92,6 +97,43 @@ | | Set Suite Variable | ${40Ge_linerate_pps_9000B} | 554323 | | Set Suite Variable | ${40Ge_linerate_pps_9004B} | 554078 | | Set Suite Variable | ${40Ge_linerate_pps_9008B} | 553832 +| | Set Suite Variable | ${40Ge_linerate_pps_IMIX_v4_1} | 13374944 + +| Calculate pps +| | [Documentation] +| | ... | Calculate pps for given rate and L2 frame size, +| | ... | additional 20B are added to L2 frame size as padding. +| | ... +| | ... | *Arguments* +| | ... | - bps - Rate in bps. Type: integer +| | ... | - framesize - L2 frame size in Bytes. Type: integer +| | ... +| | ... | *Return* +| | ... | - Calculated pps. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Calculate pps \| 10000000000 | 64 +| | [Arguments] | ${bps} | ${framesize} +| | ${ret}= | Evaluate | (${bps}/((${framesize}+20)*8)).__trunc__() +| | Return From Keyword | ${ret} + +| 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] @@ -299,6 +341,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 +401,73 @@ | | 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} + +| IPv6 iAcl whitelist initialized in a 3-node circular topology +| | [Documentation] +| | ... | Creates classify L3 table on DUTs. IPv6 iAcl security whitelist +| | ... | ingress /64 filter entries applied on links TG - DUT1 and DUT2 - TG. +| | ... +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut1} | ip6 | dst +| | And Vpp Configures Classify Session L3 +| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n} +| | ... | ip6 | dst | 2001:2::2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut1} | ${dut1_if1} | ip6 | ${table_idx} +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut2} | ip6 | dst +| | And Vpp Configures Classify Session L3 +| | ... | ${dut2} | permit | ${table_idx} | ${skip_n} | ${match_n} +| | ... | ip6 | dst | 2001:1::2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut2} | ${dut2_if2} | ip6 | ${table_idx} + | L2 xconnect initialized in a 3-node circular topology | | [Documentation] | | ... | Setup L2 xconnect topology by cross connecting two interfaces on @@ -347,54 +487,6 @@ | | Vpp l2bd forwarding setup | ${dut2} | ${dut2_if1} | ${dut2_if2} | | All Vpp Interfaces Ready Wait | ${nodes} -| 2-node Performance Suite Setup -| | [Documentation] -| | ... | Suite preparation phase that setup default startup configuration of -| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global -| | ... | variables used in test cases. Initializes traffic generator. -| | ... -| | ... | *Arguments:* -| | ... | - topology_type - Topology type. Type: string -| | ... -| | ... | *Example:* -| | ... -| | ... | \| 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 -| | 2-node circular Topology Variables Setup -| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} -| | ... | ${dut1} | ${dut1_if2} -| | ... | ${topology_type} - -| 3-node Performance Suite Setup -| | [Documentation] -| | ... | Suite preparation phase that setup default startup configuration of -| | ... | VPP on all DUTs. Updates interfaces on all nodes and setup global -| | ... | variables used in test cases. Initializes traffic generator. -| | ... -| | ... | *Arguments:* -| | ... | - topology_type - Topology type. Type: string -| | ... -| | ... | *Example:* -| | ... -| | ... | \| 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 -| | 3-node circular Topology Variables Setup -| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} -| | ... | ${dut2} | ${dut2_if2} -| | ... | ${topology_type} - 2-node Performance Suite Setup with DUT's NIC model | | [Documentation] | | ... | Suite preparation phase that setup default startup configuration of @@ -411,7 +503,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 +529,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 +800,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 +835,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 +927,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}