【问题标题】:DPDK l2fwd and pktgen inside VMware virtual machineVMware 虚拟机中的 DPDK l2fwd 和 pktgen
【发布时间】:2021-12-16 18:33:37
【问题描述】:

我只是在这里玩 DPDK,以获得一些工具来生成数据包的经验,我已经在 VMware ESXi 上设置了两个虚拟机。

VM-AVM-BInternal_vSwitch 背靠背连接

我已经在 VM-A 上的 VM-Bpktgen 上编译了 DPDK 和 l2fwd,但是当我运行 pktgen 时,start all 没有显示生成任何数据包。由于我的知识有限,我无法调试可能出现的问题。

Grub(我确实从命令行而不是 grub 配置了大​​页面)

root@VM-A:~/pktgen-dpdk-pktgen-20.11.3/usr/local/bin# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-5.4.0-91-generic root=/dev/mapper/vg0-root ro

大页面

root@VM-A:~/pktgen-dpdk-pktgen-20.11.3/usr/local/bin# hugeadm --pool-list
      Size  Minimum  Current  Maximum  Default
   2097152     2048     2048     2048        *
1073741824        0        0        0

绑定端口

root@VM-B:~/pktgen-dpdk-pktgen-20.11.3/usr/local/bin# dpdk-devbind.py -s

Network devices using DPDK-compatible driver
============================================
0000:0b:00.0 'VMXNET3 Ethernet Controller 07b0' drv=uio_pci_generic unused=vmxnet3,vfio-pci

Network devices using kernel driver
===================================
0000:03:00.0 'VMXNET3 Ethernet Controller 07b0' if=ens160 drv=vmxnet3 unused=vfio-pci,uio_pci_generic *Active*

Pktgen 没有生成任何数据包。所有的计数器都为零。

root@VM-A:~/pktgen-dpdk-pktgen-20.11.3/usr/local/bin# ./pktgen -l 1-2 -n 1 -- -P -N -T -m "3.0"

Copyright (c) <2010-2020>, Intel Corporation. All rights reserved. Powered by DPDK
EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: Probe PCI driver: net_vmxnet3 (15ad:7b0) device: 0000:0b:00.0 (socket 0)
EAL: No legacy callbacks, legacy socket not created

*** Copyright (c) <2010-2020>, Intel Corporation. All rights reserved.
*** Pktgen  created by: Keith Wiles -- >>> Powered by DPDK <<<

 Port: Name         IfIndex Alias        NUMA  PCI
    0: net_vmxnet3     0                   0   15ad:07b0/0b:00.0

Initialize Port 0 -- TxQ 1, RxQ 1
Src MAC 00:0c:29:ae:70:dc
 <Promiscuous mode Enabled>


WARNING: Nothing to do on lcore 2: exiting
- Ports 0-0 of 1   <Main Page>  Copyright (c) <2010-2020>, Intel Corporation
  Flags:Port        : P------Single      :0
|ink State          :         <UP-10000-FD>      ---Total Rate---
-kts/s Max/Rx       : P------Single      :0                   0/0
| Ports 0-0 of 1   <Main Page>  Copyright (c) <2010-2020>, Intel Corporation
/ Flags:Port        : P------Single      :0                   3/1
Link State          : P------Single      :0      ---Total Rate---
Pkts/s Max/Rx       :         <UP-10000-FD>                   3/0
       Max/Tx       :                   3/0                   3/0
MBits/s Rx/Tx       :                   0/0                   0/0
Broadcast           :                   0/0                   0/0
Multicast           :                     0
Sizes 64            :                     0
      65-127        :                     0
      128-255       :                     0
      256-511       :                     0
      512-1023      :                     0
      1024-1518     :                     0
Runts/Jumbos        :                     0
ARP/ICMP Pkts       :                   0/0
Errors Rx/Tx        :                   0/0
Total Rx Pkts       :                   0/0
      Tx Pkts       :                    10
      Rx MBs        :                     0
      Tx MBs        :                     0
TTL/Port Src/Dest   :                     0
Pattern Type        :               abcd...
Tx Count/% Rate     :         Forever /100%
Pkt Size/Tx Burst   :             64 /   32
TTL/Port Src/Dest   :         4/ 1234/ 5678
Pkt Type:VLAN ID    :       IPv4 / TCP:0001
802.1p CoS/DSCP/IPP :             0/  0/  0
VxLAN Flg/Grp/vid   :      0000/    0/    0
IP  Destination     :           192.168.1.1y DPDK  (pid:1957) -----------------
    Source          :        192.168.0.1/24rface without timers
MAC Destination     :     00:00:00:00:00:00
    Source          :     00:0c:29:ae:70:dc
-- Pktgen 20.11.3 (D:     15ad:07b0/0b:00.0y DPDK  (pid:1957) -----------------
Pktgen:/> start all
Pktgen:/> 

【问题讨论】:

    标签: linux virtual-machine dpdk


    【解决方案1】:

    此问题与 DPDK-PKTGEN 的命令行配置设置不正确有关。

    • 当前:./pktgen -l 1-2 -n 1 -- -P -N -T -m "3.0"
    • 正确:./pktgen -l 1-2 -n 1 -- -P -N -T -m "2.0"

    原因:pktgen 选项 -m "3.0" 代表 CPU core 3 上的 do RX 和 TX。但根据 DPDK lcore 参数,only core 1 and core 2 被传递为dpdk 参数。因此,将其改正为 -m "2.0" 可以解决相同问题。

    【讨论】:

    • 该命令没有帮助,仍然 pktgen 没有生成数据包。执行start all 后所有计数器都为零
    • @Satish 该命令确实对我的设置有所帮助(也对其进行了测试),看起来它是您的系统特定问题,您需要对其进行整理。
    • 我可以成功使用 TRex,我也尝试过 testpmd 来生成数据包,并且有效!不知道为什么 pktgen 不喜欢界面。 pktgen 是否会抛出或记录有助于查找问题的信息。
    • 非常奇怪和有趣的问题,正如skype所建议的,无法通过cmets进行调试。更简单的方法是实时调试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多