无法在 DPDK 示例应用程序中传输数据包

Can't transmit packets in DPDK sample application

我已经在 Ubuntu 16.04.2 系统上安装了 DPDK 17.08.01。我遵循了涉及 HugePages 设置的指南。我已经设置了 2048 个 HugePages(每个 NUMA 核心 1024 个页面),每个页面为 2048 kB。这可以用命令 cat /proc/meminfo 显示:

HugePages_Total:    2048
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

我认为 HugePages_Free0 因为我已经在 DPDK 上启动了 运行 应用程序。据我所知,他们尝试分配 HugePages 没有问题。

我还附上了我的两个接口所需的相应驱动程序这是usertools/dpdk-devbind.py --status的输出:

Network devices using DPDK-compatible driver
============================================
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=uio_pci_generic
0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=uio_pci_generic

Network devices using kernel driver
===================================
0000:84:00.0 '82580 Gigabit Network Connection 150e' if=ens2f0 drv=igb unused=igb_uio,uio_pci_generic *Active*
0000:84:00.1 '82580 Gigabit Network Connection 150e' if=ens2f1 drv=igb unused=igb_uio,uio_pci_generic 
0000:84:00.2 '82580 Gigabit Network Connection 150e' if=ens2f2 drv=igb unused=igb_uio,uio_pci_generic 
0000:84:00.3 '82580 Gigabit Network Connection 150e' if=ens2f3 drv=igb unused=igb_uio,uio_pci_generic

我正在尝试简单的 basicfwd 示例应用程序,它只是从一个端口转发到另一个端口。但是,当我输入调试语句时,我只看到每个端口有两个循环,之后应用程序挂起。我假设转发和诸如此类的东西应该继续下去,直到用户停止它。每个端口收到两个数据包,但不幸的是什么都没有传输。

我知道这个问题有点模糊,并且与 DPDK 设置有关,但是对于用于调试的命令的任何其他帮助,我应该检查的东西,我将不胜感激,因为我是一个初学者DPDK。我没能在网上找到任何好的诊断技巧。

basicfwd 示例未提供任何统计信息,因此它看起来像是挂起,但实际上它可能运行良好。

选项很少:

  1. 可以 运行 应用程序 gdb --args ./basicfwd 并确认它接收帧、发送帧或挂起。

  2. 尝试另一个示例应用程序,例如 l2fwd,它提供一些统计信息。

还请包括日志、调试信息等信息。