273. Benchmark the performance of single core forwarding with XXV710 and 82599/500 Series 10G

273.1. Prerequisites

  1. Hardware:

    1.1) nic_single_core_perf test for Intel® Ethernet Network Adapter XXV710-DA2 :

    two dual port Intel® Ethernet Network Adapter XXV710-DA2 nics, all installed on the same socket, pick one port per nic

    1.2) nic_single_core_perf test for 82599/500 Series 10G: four 82599 nics, all

    installed on the same socket, pick one port per nic

  2. Software:

    dpdk: git clone http://dpdk.org/git/dpdk
    scapy: http://www.secdev.org/projects/scapy/
    dts (next branch): git clone http://dpdk.org/git/tools/dts,
                       then "git checkout next"
    Trex code: http://trex-tgn.cisco.com/trex/release/v2.26.tar.gz
               (to be run in stateless Layer 2 mode, see section in
                Getting Started Guide for more details)
    python-prettytable:
        apt install python-prettytable (for ubuntu os)
        or dnf install python-prettytable (for fedora os).
    
  3. Connect all the selected nic ports to traffic generator(IXIA,TREX, PKTGEN) ports(TG ports):

    2 TG 25g ports for Intel® Ethernet Network Adapter XXV710-DA2 ports
    4 TG 10g ports for 4 82599/500 Series 10G ports
    
  4. Case config:

    For Intel® Ethernet Converged Network Adapter XL710-QDA2, if test 16
    Byte Descriptor, need to be configured with the
    "-Dc_args=-DRTE_LIBRTE_I40E_16BYTE_RX_DESC" option at compile time.
    
    For Intel® Ethernet Network Adapter E810-XXVDA4, if test 16 Byte Descriptor,
    need to be configured with the
    "-Dc_args=-DRTE_LIBRTE_ICE_16BYTE_RX_DESC" option at compile time.
    

273.2. Test Case : Single Core Performance Measurement

  1. Bind tested ports to igb_uio

  2. Start testpmd:

    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x6 -n 4 -- -i \
        --portmask=0xf  --txd=128 --rxd=128
       testpmd> start
    
  3. Configure traffic generator to send traffic
    configure one below stream for each TG port

    dst mac: peer nic port mac src ip : random dst ip : random packet length : 64 byte

  4. check throughput and compare it with the expected value.

  5. for 82599/500 Series 10G, repeat above step 1-4 for txd=rxd=512,2048 separately. for Intel® Ethernet Network Adapter XXV710-DA2 nic, just test txd=rxd=512,2048 following above steps 1-4.

  6. Result tables for different NICs:

    Intel® Ethernet Network Adapter XXV710-DA2:

    Frame Size TXD/RXD Throughput Rate Expected Throughput
    64 512 xxxxxx Mpps xxx % xxx Mpps
    64 2048 xxxxxx Mpps xxx % xxx Mpps

    82599/500 Series 10G:

    Frame Size TXD/RXD Throughput Rate Expected Throughput
    64 128 xxxxxx Mpps xxx % xxx Mpps
    64 512 xxxxxx Mpps xxx % xxx Mpps
    64 2048 xxxxxx Mpps xxx % xxx Mpps
Note
: The values for the expected throughput may vary due to different
platform and OS, and traffic generator, please correct threshold values accordingly. (the above expected values for XXV710 and 82599/500 Series 10G were got from the combination of Purly, Ubuntu 16.04, and traffic generator IXIA)

Case will raise failure if actual throughputs have more than 1Mpps gap from expected ones.