7.3. gso

7.3.1. 2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr suite

RFC2544: Pkt throughput IPv4 routing test cases with TAPv2

  • [Top] Network Topologies: DUT1 1-node topology without physical links.

  • [Enc] Packet Encapsulations: Eth-IPv4-TCP.

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] TG verification: iPerf3 client/server is used for Packet generation and verification.

  • [Ref] Applicable standard specifications: RFC2544.

*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_TAP
| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
| ... | ethip4-ip4base-2tap-gso-iperf3
|
| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | namespace
|
| Test Template | Local Template
|
| 
*** Variables ***
| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | tap
| ${nic_rxq_size}= | 4096
| ${nic_txq_size}= | 4096
| ${nic_pfs}= | 2
| ${nic_vfs}= | 0
| ${osi_layer}= | L7
| ${overhead}= | ${0}
| ${enable_gso}= | ${True}
| ${smt_used}= | ${False}
# iPerf3 client settings:
| ${iperf_client_bind}= | 1.1.1.1
| ${iperf_client_bind_gw}= | 1.1.1.2
| ${iperf_client_bind_mask}= | 30
| ${iperf_client_interface}= | tap0
| ${iperf_client_namespace}= | tap0_namespace
| ${iperf_client_udp}= | ${False}
| ${iperf_client_node}= | DUT1
| ${iperf_client_affinity} | ${None}
# iPerf3 server settings:
| ${iperf_server_bind}= | 2.2.2.2
| ${iperf_server_bind_gw}= | 2.2.2.1
| ${iperf_server_bind_mask}= | 30
| ${iperf_server_interface}= | tap1
| ${iperf_server_namespace}= | tap1_namespace
| ${iperf_server_node}= | DUT1
| ${iperf_server_pf_key}= | ${None}
# Trial data overwrite:
| ${trial_duration}= | ${30}
| ${trial_multiplicity}= | ${10}

7.3.1.1. Local Template

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] Measure MaxReceivedRate for ${frame_size}B frames using burst trials throughput test.

Arguments: - frame_size - Framesize in Bytes in integer. Type: integer, string - phy_cores - Number of physical cores. Type: integer - rxq - Number of RX queues, default value: ${None}. Type: integer


Set Test Variable  \${frame_size}
Given Set Jumbo
  And Add worker threads to all DUTs  ${phy_cores}  ${rxq}
  And Pre-initialize layer driver  ${nic_driver}
  And Apply startup configuration on all VPP DUTs
 When Initialize layer driver  ${nic_driver}
  And Initialize layer interface
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}1}[0]  1.1.1.2  30
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}2}[0]  2.2.2.1  30
Set Test Variable  ${iperf_server_pf_key}  ${DUT1_pf1}[0]
 Then Traffic should pass with maximum rate on iPerf3

7.3.1.2. 128KB-1c-ethip4-ip4base-2tap-gso-iperf3-mrr


frame_size=${128000}  phy_cores=${1}

7.3.1.3. 128KB-2c-ethip4-ip4base-2tap-gso-iperf3-mrr


frame_size=${128000}  phy_cores=${2}

7.3.1.4. 128KB-4c-ethip4-ip4base-2tap-gso-iperf3-mrr


frame_size=${128000}  phy_cores=${4}

7.3.2. 2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr suite

RFC2544: Pkt throughput IPv4 routing test cases with TAPv2

  • [Top] Network Topologies: DUT1 1-node topology without physical links.

  • [Enc] Packet Encapsulations: Eth-IPv4-TCP.

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] TG verification: iPerf3 client/server is used for Packet generation and verification.

  • [Ref] Applicable standard specifications: RFC2544.

*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_TAP
| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_FALSE
| ... | ethip4-ip4base-2tap-iperf3
|
| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | namespace
|
| Test Template | Local Template
|
| 
*** Variables ***
| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | tap
| ${nic_rxq_size}= | 4096
| ${nic_txq_size}= | 4096
| ${nic_pfs}= | 2
| ${nic_vfs}= | 0
| ${osi_layer}= | L7
| ${overhead}= | ${0}
| ${enable_gso}= | ${False}
| ${smt_used}= | ${False}
# iPerf3 client settings:
| ${iperf_client_bind}= | 1.1.1.1
| ${iperf_client_bind_gw}= | 1.1.1.2
| ${iperf_client_bind_mask}= | 30
| ${iperf_client_interface}= | tap0
| ${iperf_client_namespace}= | tap0_namespace
| ${iperf_client_udp}= | ${False}
| ${iperf_client_node}= | DUT1
| ${iperf_client_affinity} | ${None}
# iPerf3 server settings:
| ${iperf_server_bind}= | 2.2.2.2
| ${iperf_server_bind_gw}= | 2.2.2.1
| ${iperf_server_bind_mask}= | 30
| ${iperf_server_interface}= | tap1
| ${iperf_server_namespace}= | tap1_namespace
| ${iperf_server_node}= | DUT1
| ${iperf_server_pf_key}= | ${None}
# Trial data overwrite:
| ${trial_duration}= | ${30}
| ${trial_multiplicity}= | ${10}

7.3.2.1. Local Template

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] Measure MaxReceivedRate for ${frame_size}B frames using burst trials throughput test.

Arguments: - frame_size - Framesize in Bytes in integer. Type: integer, string - phy_cores - Number of physical cores. Type: integer - rxq - Number of RX queues, default value: ${None}. Type: integer


Set Test Variable  \${frame_size}
Given Set Jumbo
  And Add worker threads to all DUTs  ${phy_cores}  ${rxq}
  And Pre-initialize layer driver  ${nic_driver}
  And Apply startup configuration on all VPP DUTs
 When Initialize layer driver  ${nic_driver}
  And Initialize layer interface
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}1}[0]  1.1.1.2  30
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}2}[0]  2.2.2.1  30
Set Test Variable  ${iperf_server_pf_key}  ${DUT1_pf1}[0]
 Then Traffic should pass with maximum rate on iPerf3

7.3.2.2. 128KB-1c-ethip4-ip4base-2tap-iperf3-mrr


frame_size=${128000}  phy_cores=${1}

7.3.2.3. 128KB-2c-ethip4-ip4base-2tap-iperf3-mrr


frame_size=${128000}  phy_cores=${2}

7.3.2.4. 128KB-4c-ethip4-ip4base-2tap-iperf3-mrr


frame_size=${128000}  phy_cores=${4}

7.3.3. 2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr suite

RFC2544: Pkt throughput IPv4 routing test cases with VHOST

  • [Top] Network Topologies: DUT1 1-node topology without physical links.

  • [Enc] Packet Encapsulations: Eth-IPv4-TCP.

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] TG verification: iPerf3 client/server is used for Packet generation and verification.

  • [Ref] Applicable standard specifications: RFC2544.

*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_VHOST
| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
| ... | ethip4-ip4base-2vhost-gso-iperf3
|
| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | vhost
|
| Test Template | Local Template
|
| 
*** Variables ***
| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vhost
| ${nic_rxq_size}= | 4096
| ${nic_txq_size}= | 4096
| ${nic_pfs}= | 2
| ${nic_vfs}= | 0
| ${osi_layer}= | L7
| ${overhead}= | ${0}
| ${smt_used}= | ${False}
# Qemu settings:
| ${enable_gso}= | ${True}
| ${enable_csum}= | ${True}
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${4}
# iPerf3 client settings:
| ${iperf_client_bind}= | 1.1.1.1
| ${iperf_client_bind_gw}= | 1.1.1.2
| ${iperf_client_bind_mask}= | 30
| ${iperf_client_interface}= | ens6
| ${iperf_client_namespace}= | ${None}
| ${iperf_client_udp}= | ${False}
| ${iperf_client_node}= | DUT1_2
| ${iperf_client_affinity} | 1
# iPerf3 server settings:
| ${iperf_server_bind}= | 2.2.2.2
| ${iperf_server_bind_gw}= | 2.2.2.1
| ${iperf_server_bind_mask}= | 30
| ${iperf_server_interface}= | ens6
| ${iperf_server_namespace}= | ${None}
| ${iperf_server_node}= | DUT1_1
| ${iperf_server_pf_key}= | ${None}
# Trial data overwrite:
| ${trial_duration}= | ${30}
| ${trial_multiplicity}= | ${10}

7.3.3.1. Local Template

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] Measure MaxReceivedRate for ${frame_size}B frames using burst trials throughput test.

Arguments: - frame_size - Framesize in Bytes in integer. Type: integer, string - phy_cores - Number of physical cores. Type: integer - rxq - Number of RX queues, default value: ${None}. Type: integer


Set Test Variable  \${frame_size}
Given Set Jumbo
  And Add worker threads to all DUTs  ${phy_cores}  ${rxq}
  And Pre-initialize layer driver  ${nic_driver}
  And Apply startup configuration on all VPP DUTs
 When Initialize layer driver  ${nic_driver}  validate=${False}
  And Initialize layer interface
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}1}[0]  ${iperf_server_bind_gw}  ${iperf_server_bind_mask}
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}2}[0]  ${iperf_client_bind_gw}  ${iperf_client_bind_mask}
  And Configure chains of NFs connected via vhost-user on single node  node=DUT1  nf_nodes=${2}  vnf=iperf3  auto_scale=${True}  fixed_auto_scale=${True}  validate=${False}
  And Get CPU Info from All Nodes  ${nodes}
Traffic should pass with maximum rate on iPerf3

7.3.3.2. 128KB-1c-ethip4-ip4base-2vhost-gso-iperf3-mrr


frame_size=${128000}  phy_cores=${1}

7.3.3.3. 128KB-2c-ethip4-ip4base-2vhost-gso-iperf3-mrr


frame_size=${128000}  phy_cores=${2}

7.3.3.4. 128KB-4c-ethip4-ip4base-2vhost-gso-iperf3-mrr


frame_size=${128000}  phy_cores=${4}

7.3.4. 2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr suite

RFC2544: Pkt throughput IPv4 routing test cases with VHOST

  • [Top] Network Topologies: DUT1 1-node topology without physical links.

  • [Enc] Packet Encapsulations: Eth-IPv4-TCP.

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] TG verification: iPerf3 client/server is used for Packet generation and verification.

  • [Ref] Applicable standard specifications: RFC2544.

*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_VHOST
| ... | RXQ_SIZE_1024 | TXQ_SIZE_1024 | GSO_TRUE
| ... | ethip4-ip4base-2vhost-iperf3
|
| Suite Setup | Setup suite topology interfaces | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test | iPerf3 | vhost
|
| Test Template | Local Template
|
| 
*** Variables ***
| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vhost
| ${nic_rxq_size}= | 1024
| ${nic_txq_size}= | 1024
| ${nic_pfs}= | 2
| ${nic_vfs}= | 0
| ${osi_layer}= | L7
| ${overhead}= | ${0}
| ${smt_used}= | ${False}
# Qemu settings:
| ${enable_gso}= | ${False}
| ${enable_csum}= | ${False}
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${4}
# iPerf3 client settings:
| ${iperf_client_bind}= | 1.1.1.1
| ${iperf_client_bind_gw}= | 1.1.1.2
| ${iperf_client_bind_mask}= | 30
| ${iperf_client_interface}= | ens6
| ${iperf_client_namespace}= | ${None}
| ${iperf_client_udp}= | ${False}
| ${iperf_client_node}= | DUT1_2
| ${iperf_client_affinity} | 1
# iPerf3 server settings:
| ${iperf_server_bind}= | 2.2.2.2
| ${iperf_server_bind_gw}= | 2.2.2.1
| ${iperf_server_bind_mask}= | 30
| ${iperf_server_interface}= | ens6
| ${iperf_server_namespace}= | ${None}
| ${iperf_server_node}= | DUT1_1
| ${iperf_server_pf_key}= | ${None}
# Trial data overwrite:
| ${trial_duration}= | ${30}
| ${trial_multiplicity}= | ${10}

7.3.4.1. Local Template

  • [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.

  • [Ver] Measure MaxReceivedRate for ${frame_size}B frames using burst trials throughput test.

Arguments: - frame_size - Framesize in Bytes in integer. Type: integer, string - phy_cores - Number of physical cores. Type: integer - rxq - Number of RX queues, default value: ${None}. Type: integer


Set Test Variable  \${frame_size}
Given Set Jumbo
  And Add worker threads to all DUTs  ${phy_cores}  ${rxq}
  And Pre-initialize layer driver  ${nic_driver}
  And Apply startup configuration on all VPP DUTs
 When Initialize layer driver  ${nic_driver}  validate=${False}
  And Initialize layer interface
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}1}[0]  ${iperf_server_bind_gw}  ${iperf_server_bind_mask}
  And VPP Interface Set IP Address  ${dut1}  ${DUT1_${int}2}[0]  ${iperf_client_bind_gw}  ${iperf_client_bind_mask}
  And Configure chains of NFs connected via vhost-user on single node  node=DUT1  nf_nodes=${2}  vnf=iperf3  auto_scale=${True}  fixed_auto_scale=${True}  validate=${False}
  And Get CPU Info from All Nodes  ${nodes}
Traffic should pass with maximum rate on iPerf3

7.3.4.2. 128KB-1c-ethip4-ip4base-2vhost-iperf3-mrr


frame_size=${128000}  phy_cores=${1}

7.3.4.3. 128KB-2c-ethip4-ip4base-2vhost-iperf3-mrr


frame_size=${128000}  phy_cores=${2}

7.3.4.4. 128KB-4c-ethip4-ip4base-2vhost-iperf3-mrr


frame_size=${128000}  phy_cores=${4}