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

时间:2018-01-17 19:43:55

标签: c dpdk

我在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设置有关,但是任何其他有关用于调试的命令的帮助,我应该检查的内容,我将不胜感激,因为我是{{{}}的初学者1}}。我还没能在网上找到任何好的诊断技巧。

1 个答案:

答案 0 :(得分:1)

basicfwd示例没有提供任何统计信息,所以看起来它可能会挂起,但事实上它可能会运行良好。

选项很少:

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

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

  3. 还请包含日志,调试信息等信息。