问题标签 [dpdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
577 浏览

c - DPDK发送自定义pkt收不到

我正在尝试使用 dpdk 发送自定义包,但我发现某些包结构会使其无法接收。例如,我这样定义包结构:

我运行 dpdk 的服务器只能接收第一批 pkts,但是 rte_eth_tx_burst() 的返回值显示了更多已发送的包。
但是,如果我修改结构如下:

发送和接收都正常工作。两个结构之间的唯一区别是 uint64_t 时间戳被替换为由 2 个项目组成的 uint32_t 数组。我调试到 i40e 驱动程序代码,但不明白哪里出错了。

有谁能够帮我?谢谢!

0 投票
1 回答
1929 浏览

linux - 在 Linux 系统上保留大页面

我的 VMWare 来宾系统详细信息:

我的应用程序在启动时需要尽可能多地抓取大页面,但 HugePages_Free 等于 HugePages_Rsvd 的事实意味着它无法保留任何内容。

这是什么原因,如果有的话,如何禁用其他应用程序对大页面的保留?

谢谢

0 投票
1 回答
1624 浏览

nic - 在什么情况下 NIC 会报告 rx_length_error?

我用dpdk做包传输实验。但是,接收方应用程序根本没有收到任何数据包。从 rte_eth_stats_get() 得到的统计数据显示,所有端口都报告了很多“rx_error”。调试后我发现所有这些错误都是名为“rx_length_error”的错误。谷歌的解释说,如果 MAC 标头中的传入数据包长度字段与数据包长度不匹配,则会发生长度错误。但是,据我所知,MAC 标头中没有长度字段。

所以我的问题是 NIC 如何在没有长度字段的情况下报告这个长度错误?

谢谢您的帮助!

0 投票
2 回答
1456 浏览

dpdk - dpdk-pdump “没有找到 net_pcap_rx_0 的驱动程序”

Ubuntu 16,DPDK 16

我有几个基于 DPDK 的应用程序在两台机器之间发送数据包,并希望使用dpdk-pdump. 我正在运行它sudo ./build/app/pdump/dpdk-pdump -c 0x00f -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap',我看到了这个输出和一个崩溃:

EAL: no driver found for eth_pcap_rx_0 EAL: Driver, cannot attach the device EAL: Error - exiting with code: 1 Cause: vdev creation failed:create_mp_ring_vdev:736

我的 DPDK 是这样编译的:(之前hostname:~/dpdk-stable-16.07.1/x86_64-native-linuxapp-gcc# CONFIG_RTE_LIBRTE_PMD_PCAP=y make也这样做过export CONFIG_RTE_LIBRTE_PMD_PCAP=y)以便它在 libpcap 支持下构建,正如文档所说的那样。我的系统安装了 libpcap。make 脚本输出显示== Build lib/librte_pdump. 在网上四处寻找,我只发现一个人有类似的问题,建议的解决方法是我尝试过的。我还有其他事情要做吗?

我尝试安装DPDK Ubuntu 软件包版本的工具并使用dpdk-pdump命令,结果相同。

0 投票
3 回答
6018 浏览

centos - VM 中的 Hugepagesize 不会增加到 1G

我在 ESXi Server 中使用 CentOS VM。我想将巨大的页面大小增加到 1G。

我点击了链接: http ://dpdk-guide.gitlab.io/dpdk-guide/setup/hugepages.html

我执行了这个小脚本来检查是否支持 1 GB 的大小:

  1. 我添加default_hugepagesz=1GB hugepagesz=1G hugepages=4到 /etc/default/grub.
  2. grub2-mkconfig -o /boot/grub2/grub.cfg
  3. 重新启动虚拟机。

但是我仍然可以看到巨大的页面大小为 2048 KB (2MB)。

以下是VM的详细信息:

8GB 内存和 2 个 CPU 分配给 VM。

0 投票
1 回答
639 浏览

networking - 基于 DPDK 的流量生成器 Warp17

试图让warp17工作。我按照文档进行构建和安装,但是我无法生成流量——看起来它根本没有发送任何东西,计数器为 0。

我的网卡是 Intel 82599ES 10-Gigabit,dpdk-16.11 很好支持。

如果比我更成功的人可以分享他/她的经验,我会很高兴。谢谢。

0 投票
2 回答
492 浏览

c - 如何将基于 DPDK 的应用程序移植到 Netmap?

我有一个基于 linux 系统的基于 DPDK 的网络应用程序。我想将它移植到 netmap 以克服我使用基于 Intel 的 NIC 的限制。在我基于 DPDK 的应用程序中,我使用了 DPDK 提供的一些库(如 rte_ring、rte_mempool、rte_hash 等)。有什么办法我仍然可以使用它们,还是必须用非 DPDK 库替换它们。将应用程序移植到 Netmap 的最快和最好的方法是什么?

0 投票
1 回答
1112 浏览

deep-copy - DPDK mbuf 深拷贝

我对 DPDK 很陌生。

我有一个需要多次复制的数据包,这意味着我想深度复制mbuf 我找到的唯一 mbuf api 命令:

deep-copy仅仅指向相同的数据有效负载似乎并没有。我的问题是我怎样才能正确地deep copy mbuf

0 投票
1 回答
450 浏览

linux - Docker容器与其他机器之间的连接问题

我正在使用 open vSwitch(带有 DPDK)来与我的机器通信。我有 2 台物理 PC。Nginx 正在研究其中之一,其 ip=10.10.10.6/24。打开 vSwitch,Docker 正在另一台机器上工作。我通过这个命令创建了一个桥:

我通过这个命令将一个端口添加到物理端口,该命令使用 DPDK 驱动程序并通过电缆连接到 Ngnix 机器:

并为 br0 分配一个 IP:

在此之后,我使用我的图像创建了一个容器:

Dockerfile:

并使用以下命令运行容器:

在此之后,我使用以下命令为容器分配一个端口:

在所有这些步骤之后,我的 nginx 机器 ping 容器和容器 ping nginx。

但是当我尝试时wget 10.10.10.6:80,容器无法连接。但另一方面,我的物理机(ip:10.10.10.11)可以。当我运行相同的命令 (wget) 时,它会从 10.10.10.6:80 获取页面。

我究竟做错了什么?

0 投票
1 回答
198 浏览

c - 如何在 DPDK 代码中解释这个 C 代码

我是 DPDK 的新手,所以在阅读代码时我会有些疑问。kni_misc.c 中 DPDK 中的代码如下

...

...

switch之后,定义一个宏RTE_PCI_DEV_ID_DECL_IGB(怎么用?)case之后,包括rte_pci_dev_ids.h,我也在h文件中找到了这个宏。

**

switch 和 case 之间的一个不完整的宏定义,以及在 case 后面包含的 h 文件中找到的宏。我不明白。

**

谁能帮我理解这段代码。

这段代码的语法?编译过程?工作过程?</p>

谢谢。