TCP UPD performance test

Report TCP or UDP performance

Get the performance statistics of TCP UDP traffic and report it.

  1. For each iteration (i = 0; i < n_iut_ports; ++i):

    • Configure Rx checksum offload on IUT interface if specified

    • Configure GRO on IUT interface if specified

    • Configure HW VLAN stripping on IUT interface if specified

    • Configure Tx checksum offload on IUT interface if specified

    • Configure GSO offload on IUT interface if specified

    • Configure TSO offload on IUT interface if specified

    • Configure HW VLAN insertion on IUT interface if specified

    • If rx_coalesce_usecs or rx_max_coalesced_frames is not -1, configure Rx coalesce on IUT interface.

      • If rx_coalesce_usecs != -1 || rx_max_coalesced_frames != -1 :

        • Disable use_adaptive_rx_coalesce on IUT interface.

        • If rx_coalesce_usecs != -1 :

          • If rx_coalesce_usecs is not -1, configure it IUT interface.

        • If rx_max_coalesced_frames != -1 :

          • If rx_max_coalesced_frames is not -1, configure it IUT interface.

    • If rx_ring != -1 :

      • Set Rx ring size according to rx_ring on IUT interface.

    • If tx_ring != -1 :

      • Set Tx ring size according to tx_ring on IUT interface.

    • If channels != -1 :

      • Set number of combined channels on IUT interface according to channels.

        • Get current number of Rx queues on IUT interface

        • If current number of Rx queues is more than number channels to be set, update RSS indirection table to use only Rx queues which remain after channels set.

        • Apply number of combined channels on IUT interface according to channels.

        • If previously used number of Rx queues is less than number of channels, update RSS indirection table to use all Rx queues available after channels set.

        • Print RSS indirection table to be able to double-check.

  2. For each iteration (i = 0; i < n_ports; i++):

    • If rx_vlan_strip or tx_vlan_insert is not default, create VLANs, assign addresses and use it for traffic checks below.

  3. Set default perf options

  4. Set test specific perf options

  5. Allocate server ports for perf applications

  6. Start server and create client perf applications

  7. Start perf clients

  8. Wait for perf report to be ready

Igor Romanov Igor.Romanov@oktetlabs.ru

Parameters:

rx_csum

Enable (TRUE), disable (FALSE) Rx checksum offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

rx_gro

Enable (TRUE), disable (FALSE) Rx GRO offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

rx_vlan_strip

Enable (TRUE), disable (FALSE) Rx VLAN stripping offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

tx_csum

Enable (TRUE), disable (FALSE) Tx checksum offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

tx_gso

Enable (TRUE), disable (FALSE) Tx GSO offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

tso

Enable (TRUE), disable (FALSE) TSO offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

tx_vlan_insert

Enable (TRUE), disable (FALSE) Tx VLAN insertion offload or preserve default (DEFAULT)

  • Possible values: DEFAULT, FALSE, TRUE

rx_coalesce_usecs

Value to set for rx_coalesce_usecs:

  • -1 : keep default settings

  • 0 : interrupt moderation is disabled

  • 30

  • 150

rx_max_coalesced_frames

Value to set for rx_max_coalesced_frames:

  • -1 : keep default settings

  • 0 : do not coalesce based on it

  • 1 : interrupt moderation is disabled

rx_ring

Rx rings size:

  • -1 : keep default

  • 0 : maximum

  • 64

  • 512

  • 1024

tx_ring

Tx rings size:

  • -1 : keep default

  • 0 : maximum

  • 64

  • 512

  • 1024

channels

Number of combined channels to use:

  • -1 : keep default

  • 1

  • 2

  • 4

perf_bench

Performance benchmark type

dual_mode

Run benchmark in bidirectional mode

n_perf_insts

Number of performance apps to run

n_streams

Number of parallel streams to run

bandwidth

Target bandwidth in Mbps, negative means some internal tool value for UDP, unlimited for TCP

protocol

Use TCP or UDP protocol