9.1. Test Using an External Traffic Generator
This test can be performed on 2x2x25G , 8x10G and 4x25G configuration.
- Hardware Setup: Connect cable between QSFP port of Intel® FPGA PAC N3000 and external traffic generator.
Note: In 4x25G configuration, only one QSFP port is active per the configuration.Figure 18. External Tester with 8x10G Network ConfigurationFigure 19. External Tester with 2x2x25G Network ConfigurationFigure 20. External Tester with 4x25G Network Configuration
- Start the DPDK testpmd application.
Note: Replace the FPGA B:D.F with values specific to your system.
$ cd $RTE_SDK
Now, start traffic from external traffic generator:$ 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
testpmd> start
testpmd> show port stats all
Sample output for 2x2x25G configuration:Expected result: testpmd by default works in paired mode. In this mode, the the packet forwarding is between pairs of ports, for example: (0,1), (2,3).######################## 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 ############################################################################
- In 2x2x25G configuration: Traffic forwarding is between ports (0,1) and (2,3)
- In 8x10G configuration: Traffic forwarding is between (0,1), (2,3), (4,5), and (6,7)
List of the cores to run on:
In case of 2x2x25G or 4x25G, we have 4 XL710 ports and hence we assign 4 cores. While in case of 8x10G, we have 8 XL710 ports and hence we assign 8 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
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. |