Intel® Acceleration Stack用户指南: Intel FPGA Programmable Acceleration Card N3000

ID 683040
日期 8/17/2020
Public
文档目录

9.2. 使用数据包生成器进行测试

您可以在2x2x25G和8x10G配置上进行此测试。
  1. 硬件设置:在两个QSFP端口之间连接环回电缆。
    图 21. 测试图
  2. pktgen-3.7.1.zip下载到$RTE_SDK目录。解压缩并构建Pktgen。以root用户运行以下命令:
    $	cd $RTE_SDK
    $	unzip pktgen-3.7.1.zip
    $	cd pktgen-3.7.1
    注: 如果使用RHEL OS,那么要按照INSTALL.md file中所述的其他设置说明Setup Prerequisites on Red Hat-based Systems
    $	export RTE_SDK=<DPDK Source PATH> 
    $	export RTE_TARGET=x86_64-native-linuxapp-gcc
    $	export C_INCLUDE_PATH=/usr/local/src/lua-5.3.5/src
    注: Pktgen取决于上面定义的所有三环境变量(three-environment variable)。
    $	sudo -E make
  3. 打开一个新的终端窗口。使用此终端窗口运行DPDK testpmd应用程序。Intel XL710 #2的两个端口分配给testpmd。端口拓扑设置为成对的(paired)。因此,转发在端口对之间进行。例如:(0,1);表示在端口0上接收到的任何内容都会转发到端口1。
    注: 将XL710 B:D.F和FPGA B:D.F替换成系统的特定值。
    $	cd $RTE_SDK
    $	sudo  ./x86_64-native-linuxapp-gcc/app/testpmd -l 1,3 -n 4 -w  \
    0000:14:00.0,switch_mode=IPN3KE_0@15:00.0_0 -w \
    0000:14:00.1,switch_mode=IPN3KE_0@15:00.0_1 -w \
    0000:15:00.0 --vdev 'ifpga_rawdev_cfg0,ifpga=15:00.0,port=0'  \
    -- -i --no-numa --port-topology=paired
    testpmd>	start      

    现在在pktgen上启动流量(步骤4)。

    开始pktgen后(步骤4)运行以下命令:

    testpmd>	show port stats all
    样例输出:
    You should see 10000 pkts received on port 0 and then transmitted from port 1 of XL7102. The “--port-topology=paired” causes forwarding between pairs of ports (0,1) ie Traffic received on 0000:14:00.0 is forwarded to 0000:14:00.1 and then transmitted.  
    
    ######## NIC statistics for port 0 ########
      RX-packets: 10000      RX-missed: 0          RX-bytes:  10200000
      RX-errors: 0
      RX-nombuf:  0         
      TX-packets: 0          TX-errors: 0          TX-bytes:  0
      Throughput (since last show)
      Rx-pps:          496
      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: 10000      TX-errors: 0          TX-bytes:  10200000
      Throughput (since last show)
      Rx-pps:            0
      Tx-pps:          496
    ############################################
  4. 在终端1上启动pktgen。XL710 1的两个端口分配给pktgen。如要对变量进行了解,请参考EAL Commandline Options
    注: 将XL710 B:D.F替换成系统特定的值。
    如有错误,请参考DPDK中的故障排除
    $	cd $RTE_SDK/pktgen_3.7.1
    $	sudo ./app/x86_64-native-linuxapp-gcc/pktgen -l 0,2,4 -n 4 \
    --proc-type primary --log-level 7 --file-prefix pg -w 0000:16:00.0 \
    -w 0000:16:00.1 -- -T -P -m 2.0 -m 4.1 -f themes/black-yellow.theme

    配置pkt大小和数量:

    $	set all size 1024 
    $	set all count 10000
    $	start 0

    样例输出:您应该看到从XL7101的端口0发送了10000 pkt,并在端口1上接收。

    图 22. 样例输出
    注: pktgen工具中的链路状态可能显示down,这可以忽略。
请参考Testpmd Application User Guide来了解Environment Abstraction Layer变量(testpmd)。
表 13.  特定变量
变量 说明 使能的功能
-w <"FPGA BDF"> --vdev 'ifpga_rawdev_cfg0,ifpga=<"FPGA BDF">,port=0’ AFU名称格式为FPGA BDF|Port。每个FPGA最多可分成四个模块。Port标识UFU比特流属于哪个FPGA模块,但是当前仅支持Port 0 (Ethernet)。 这会触发rawdev PMD driver热插拔AFU到IFPGA BUS。
-w <XL710 port BDF> 将Intel XL710 NIC PF加入白名单。