X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fperformance.robot;h=0ef07ebefc2b55b6be659fb10447b4a09182785a;hb=635c30479fe7e7604f59c9f564c1b7f2698bb468;hp=2099deef77839061c5bc9f3efc211f7269c284bf;hpb=f45cd0ceb17f33376a04edf9b4fb5a37d9ebfb89;p=csit.git diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot index 2099deef77..0ef07ebefc 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 @@ -324,6 +386,66 @@ | | 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 @@ -702,6 +824,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 @@ -736,6 +859,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