1 个不稳定版本
0.1.0 | 2023年11月22日 |
---|
#4 在 #dpdk 中
160KB
4K SLoC
运行测试用例
- 将以下行添加到
~/.cargo/config
[target.x86_64-unknown-linux-gnu]
runner = 'sudo -E'
- 测试用例必须在单个线程中运行,因此使用以下命令运行测试
cargo test -- --test-threads=1
示例
包含的示例用于测试各种DPDK相关功能的实现是否正确。
环回速度测试
使用两个服务器,其中一个启动 loopback_tx.rs
以生成流量。另一个启动 looback_rx.rs
以接收流量并在同一端口上回环流量。
Rss测试
- 使用
loopback_tx.rs
生成流量。 - 使用
rss_rx.rs
接收流量。此程序将打印出每秒钟每个队列接收到的IP/UDP流的数量。
mbuf的校验和卸载测试
- 使用
checksum_offload_tx.rs
生成流量。请注意,此示例接受0-5范围内的命令行参数(4/5生成带有尾随未使用字节的UDP数据包),并根据此参数生成不同类型的流量。 - 使用
checksum_offload_rx.rs
接收流量 - 此示例可以启用
multiseg
功能来运行。
例如,如果我们向UDP数据包的末尾添加未使用的字节,而tx卸载可以正确计算校验和值,rx校验和将报告无效的校验和。这是一个有趣的发现。
巨帧测试
- 如果我们使用Mellanox NIC,我们需要首先使用以下命令将mtu设置为9000
ip link set dev NAME mtu 9000
其中 NAME
是Linux内核中的接口名称,可以使用DPDK的 dpdk-devbind.py
脚本来检查。
DPDK设备
Intel E810
- 通过将以下行添加到
/etc/default/grub
的GRUB_CMDLINE_LINUX
字段来配置大页面和iommu
GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt hugepagesz=1G hugepages=16 default_hugepagesz=1G intel_pstate=disable"
- 运行以下命令以在grub系统中应用更改
grub-mkconfig -o /boot/grub/grub.cfg
- 重新启动系统,并使用以下命令检查内核参数是否生效
cat /proc/cmdline
Intel E810驱动程序兼容性
似乎为了正确使用Intel E810驱动程序,我们需要安装正确的设备驱动程序版本。似乎我们需要升级E810固件、升级Linux ICE驱动程序版本以及更新Intel DDP版本。
注意
仅将ICE驱动程序升级到1.11.14即可修复此问题。访问英特尔官方网站
https://www.intel.com/content/www/us/en/download/19630/intel-network-adapter-driver-for-e810-series-devices-under-linux.html
并下载最新的ICE驱动程序版本。
解压驱动程序,切换到 /src 文件夹,执行以下命令
make -j
sudo make install
sudo rmmod ice
sudo modprobe ice
要检查 ice 驱动程序版本是否正确升级,使用以下命令
modinfo ice
sudo ethtool -i DEVICE_NAME
依赖项
~0.2–2.7MB
~53K SLoC