Intel® Acceleration Stack User Guide: Intel® FPGA Programmable Acceleration Card N3000-N/2

ID 683362
Date 11/01/2021
Public
Document Table of Contents

11.1. Test Using an External Traffic Generator

This test can be performed on 2x2x25G and 4x25G configuration.
  1. Hardware Setup: Connect cable between QSFP port of Intel® FPGA PAC N3000-N/2 and external traffic generator.
    Note: In 4x25G configuration, only one QSFP port is active per the configuration.
    Figure 12. External Tester with 2x2x25G Network Configuration
    Figure 13. External Tester with 4x25G Network Configuration
  2. Start the DPDK testpmd application.
    Note: Replace the FPGA B:D.F with values specific to your system.
    $	cd $RTE_SDK
    $	sudo ./x86_64-native-linuxapp-gcc/app/testpmd -l 0,1,2,3,4,5,6,7 -n 4 \
    --vdev 'ifpga_rawdev_cfg0,ifpga=15:00.0,port=0' -- -i --no-numa
    Now, start traffic from external traffic generator:
    testpmd>	start
    testpmd>	show port stats all
    Sample output for 2x2x25G configuration:
      ######################## NIC statistics for port 0  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 1  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 2  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 3  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 4  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 5  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 6  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    
      ######################## NIC statistics for port 7  ########################
      RX-packets: 0          RX-missed: 0          RX-bytes:  0
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
    
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:            0
      ############################################################################
    Expected result: testpmd by default works in paired mode. In this mode, the packet forwarding is between pairs of ports, for example: (0,1), (2,3).
    • In 2x2x25G configuration: Traffic forwarding is between ports (0,1) and (2,3)

    List of the cores to run on:

    In case of 2x2x25G or 4x25G, we have 4 XL710 ports and hence we assign 4 cores:
    -l <core list>
    Optionally, you can choose to send traffic to specific ports of the NIC rather than all ports. For this, the ports have to be explicitly white listed using the -w <XL710 Port BDF>. For example: Below command shows that only XL710 ports 14:00.0,14:00.1 are white listed. The FPGA BDF must also be explicitly white listed in this case:
    sudo ./x86_64-native-linuxapp-gcc/app/testpmd -l 1,3 -n 4 -w \
    0000:14:00.0 -w \
    0000:14:00.1 -w \
    0000:15:00.0 --vdev 'ifpga_rawdev_cfg0,ifpga=15:00.0,port=0' \
    -- -i --no-numa
Refer to the Testpmd Application User Guide to understand the Environment Abstraction Layer arguments to testpmd.
Table 9.  Specific Arguments
Arguments Description Capability Enabled
-w <"FPGA BDF"> --vdev 'ifpga_rawdev_cfg0,ifpga=<"FPGA BDF">,port=0’ The AFU name format is FPGA BDF|Port. Each FPGA can be divided into four blocks at most. Port identifies which FPGA block the AFU bitstream belongs to, but currently only Port 0 (Ethernet) is supported. This triggers rawdev PMD driver to hotplug AFU to the IFPGA BUS.
-w <XL710 port BDF> Whitelists the Intel XL710 NIC PF.