DPDK、pktgen测试实例

一、 网络拓扑

其中主机A与主机B都为双网卡塔式主机服务器,通过一根网线直连。 (主机B的网关为主机A的IP)

二、l2fwd测试

1. 设置环境变量
export RTE_SDK=/home/sword/dpdk-17.08
export RTE_TARGET=x86_64-native-linuxapp-gcc
2. 通过自带脚本编译DPDK

配置大页内存为:1024
绑定单张网卡,即与主机A网线直连的网卡

./dpdk-17.08/usertools/dpdk-setup.sh
3. 编译l2fwd

参数其中 -c 为十六进制的分配的逻辑内核掩码,-n 为十进制的内存通道数量
EAL参数和程序参数用–分开
-q 为分配给每个核心的收发队列数量(端口数量),-p为十六进制的分配的端口数掩码,-t 为可选默认10s打印时间间隔参数

cd dpdk-17.08/examples/l2fwd
make
./build/l2fwd -c 0x3 -n 4 -- -q 1 -p 0x01

三、使用pktgen发送流量测试

1. 修改default文档中的默认参数

需要修改devices处的绑定网卡信息,可在dpdk或pktgen的setup.sh中查看;另一处是:dpdk处的-l,以及-n,就是l2fwd中的参数-c,-n;最后一处是’app’处的 ‘–crc-strip’,修改方法见注释(在文档中,若未加utf-8,那么就不要有中文注释,否则会报错)。

.......
# 在此处修改你绑定的网卡,
    'devices': (
        '81:00.0 81:00.1 81:00.2 81:00.3',
        '85:00.0 85:00.1 85:00.2 85:00.3'
        )
        ...........
#在此处修改逻辑核心数以及内存通道数
    'dpdk': (
        '-l 14,15-22', # 如果有两个core则:-l 0-1
        '-n 4',
        '--proc-type auto',
        '--log-level 7',
        '--socket-mem 2048,2048',
        '--file-prefix pg'
        ),
        
        ..........
        # 在此处修改那个核心绑定那个端口     
    'app': (
        '-T',
        '-P',
        '--crc-strip',
        '-m [15:16].0', # 核心15、16绑定端口0
        '-m [17:18].1',
        '-m [19:20].2',
        '-m [21:22].3'
        )
2. 运行修改的配置文件

这里若在tools目录下可能会出现未发现default文件则回退一级目录即可。(注意此处添加的环境变量和DPDK下的一样)

cd dpdk-17.08/examples/pktgen-3.5.0
./tools/dpdk-run.py -s default
./tools/dpdk-run.py default

再开启端口即可,start 0 ,表示开启端口0;

Pktgen:/> start 0
Pktgen:/> stop 0
3. 运行结果

这里只有发送流量(主机A关机没开…),发送速度快的可怕

| Ports 0-0 of 1   
Copyright (c) <2010-2017>, Intel Corporation Flags:Port : P--------------:0 Link State : ----TotalRate---- Pkts/s Max/Rx : 0/0 0/0 Max/Tx : 14267/0 14267/0 MBits/s Rx/Tx : 0/0 0/0 Broadcast : 0 Multicast : 0 64 Bytes : 0 65-127 : 0 128-255 : 0 256-511 : 0 512-1023 : 0 1024-1518 : 0 Runts/Jumbos : 0/0 Errors Rx/Tx : 0/0 Total Rx Pkts : 0 Tx Pkts : 1753791 Rx MBs : 0 Tx MBs : 1234 ARP/ICMP Pkts : 0/0 : Pattern Type : abcd... Tx Count/% Rate : Forever /100% PktSize/Tx Burst : 64 / 64 Src/Dest Port : 1234 / 5678 Pkt Type:VLAN ID : IPv4 / TCP:0001 802.1p CoS : 0 ToS Value: : 0 - DSCP value : 0 - IPP value : 0 Dst IP Address : 192.168.1.1 Src IP Address : 192.168.0.1/24 Dst MAC Address : 00:00:00:00:00:00 Src MAC Address : e4:1f:13:95:5a:a8 VendID/PCI Addr : 8086:10d3/0b:00.0 -- Pktgen Ver: 3.5.0 (DPDK 17.08.2) Powered by DPDK --------------------------

四、使用pktgen发送流量并用testpmd测试

在主机A开启pktgen,并在主机B开启testpmd,结果如下,但和主机A处的发送流量并不对应,母鸡原因。
主机B,testpmd结果

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 11114563       RX-dropped: 2643          RX-total: 11117206
  RX-error: 7
  RX-nombufs: 0             
  TX-packets: 11113431       TX-dropped: 1132          TX-total: 11114563
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 11114563       RX-dropped: 2643          RX-total: 11117206
  TX-packets: 11113431       TX-dropped: 1132          TX-total: 11114563
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

你可能感兴趣的:(DPDK)