2020-01-14 转载【dpdk】使用libpcap-PMD驱动收发包
https://doc.dpdk.org/guides/nics/pcap_ring.html
中文资料
转自 https://www.cnblogs.com/zzqcn/p/4902373.html
所有dpdk应用程序都运行在EAL之上,而EAL提供了-vdev
选项,可能通过它来指定使用libpcap pmd。格式如下:
app -c f -n 4 \
--vdev='net_pcap0,stream_opt0=..,stream_opt1=..' \
--vdev='net_pcap1,stream_opt0=..'
可以配置多个伪设备(pseudo-ethernet device),每个设备的名称必须以net_pcap开头,然后跟数字或字母。每个设备都可以配置多个流选项(stream options),流选项之前使用逗号隔开,不能有空格符。
2.2.1 流选项
流选项包括:
rx_pcap
将一个pcap文件设为Rx流,参数为pcap文件路径。Libpcap pmd驱动会读取文件中的每个包,就好像从实际网口读一样。这个pcap文件必须存在且有效。如 rx_pcap=/home/dev/test.pcaptx_pcap
将一个pcap文件设为Tx流。此文件将会自动创建和重写。rx_iface
将一个使用Linux内核驱动的物理网口设为Rx流。如rx_iface=eth0tx_iface
将一个使用Linux内核驱动的物理网口设为Tx流。- 直接使用
iface
可以同时映射一个物理网口的tx和rx数据,libpcap pmd驱动将从此口读写报文。如 iface=eth0
由上可见,libpcap pmd不仅支持将pcap文件模拟为Rx/Tx的功能,也支持Linux驱动的普通网卡。在使用中我们可以随意组合,比如Rx设为eth0,而Tx设为tx.pcap,或者两者都是eth0或pcap文件。
2.2.2 命令举例
Testpmd:
./testpmd -c 3 -n 4 \--vdev='net_pcap0,rx_pcap=/tmp/tcp.pcap,tx_pcap=/tmp/tx0.pcap' \--vdev='net_pcap1,rx_pcap=/tmp/tcp.pcap,tx_pcap=/tmp/tx1.pcap' \-- \--port-topology=chained \--no-flush-rx -i --nb-ports=2
据之前的官方文档中说,testpmd在开始报文转发前会从每个Rx口收512个报文并丢弃,而使用libpcap pmd时,可以通过—no-flush-rx选项来禁用这个特性。另外,据我试用,--nb-ports=2将port数设为2,否则多个port之间会有影响,不利于测试。
运行后,net_pcap1的Tx对应文件将保存net_pcap0的Rx对应文件中的报文,net_pcap0的Tx对应文件将保存net_pcap1的Rx对应文件中的报文。Rx对应的文件都只会读取一轮。
L2fwd:
./l2fwd -c 3 -n 4 \
--vdev='net_pcap0,rx_pcap=/tmp/tcp.pcap,tx_pcap=/tmp/tx0.pcap' \
--vdev='net_pcap1,rx_pcap=/tmp/tcp.pcap,tx_pcap=/tmp/tx1.pcap' \
-- -p 3
再强调一下:--vdev的值字符串,即单引号括起来的内容中,不能有空格,否则会出错。
https://www.cnblogs.com/zzqcn/p/4902373.html
2020-01-14 转载【dpdk】使用libpcap-PMD驱动收发包相关推荐
- Robcup2D足球学习记录【2020.01.14】
本次主要学习了bhv_normal_dribble.cpp与bhv_pass_kick_find_receiver.cpp bhv_normal_dribble.cpp 代码个人理解与存在的问题(已经 ...
- 《惢客创业日记》2020.01.14(周二)从新学习《长征》
这两天的心情极其糟糕,除了生活中的一些杂事以外,还有就是惢客公益版块的设计工作仿佛进入到了一个疲倦期.就好比一个人在长跑时,刚开始挺兴奋,挺有兴趣,但是开始后不久,就会遇到一个两腿发软.全身乏力.呼吸 ...
- 从 dpdk-20.11 移植 intel E810 百 G 网卡 pmd 驱动到 dpdk-16.04 中
文章目录 前言 移植前的调研工作 dpdk-20.11 ice pmd 驱动源码的组成 移植问题与解决方案记录 16.04 使用 make 编译,20.11 使用 meson 与 ninja 方式编译 ...
- 【转载】语义分割综述2020.01
转载: 作者: http://blog.csdn.net/john_bh/ 出处:https://blog.csdn.net/john_bh/article/details/107044528 论文链 ...
- 泰坦以太(以太流说) titan_ysl 2020.01.27
泰坦以太(以太流说) titan_ysl 2020.01.27 从学习物理到现在,几十年来,我一直认为以太的存在能最合理地解释许多物理现象,但由于一直没人给于其适当的定义,导致其被废弃,从而让现代物理 ...
- dpdk pmd驱动分析
缘起dpdk_devbind.py 运行dpdk程序之前我们一般都会使用dpdk_devbind.py程序对指定的驱动与设备进行绑定与解绑(如下命令).那么dpdk_devbind.py程序是如何实现 ...
- 心音数据库_小V云端数据库 | 2020.9.14—2020.9.18
桂花的芬芳 在雨后空气中弥散开来 似为湿润的情绪 赠予了一丝甜蜜 小V云端数据库 2020.9.14-2020.9.18 资讯情报关键词 健康.示范.安全 V宝体检,助力成长 2020年9月14日上午 ...
- 广东省计算机行业发展程度,广东省统计局-2020年1-4月广东规模以上工业生产运行简况...
2020年1-4月,全省规模以上工业企业累计实现增加值8658.97亿元,同比下降10.1%,降幅比一季度收窄5.0个百分点:其中,4月当月增长3.6%,增幅比3月回升8.3个百分点,实现由负转正. ...
- 宏碁(Acer)蜂鸟Fun 2020新款 14英寸轻薄商务笔记本使用真实评测
宏碁(Acer)蜂鸟Fun 2020新款 14英寸轻薄商务笔记本使用真实评测 本人因为工作需要,近期想购置一台轻薄,性能过的去的笔记本,预算大概在4000元左右.去JD看了一圈,大把的AMD本,虽说近 ...
最新文章
- 2019.03.21 增删改
- AngularJS移动端页面input无法输入
- Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理
- 部署Docker----解决删除none镜像问题
- Hash魔法:一致性 hash 算法
- js中将html文档写入静态界面当中
- 百度之星作为座位调整java_百度之星程序设计大赛十周年算法合集20052014.PDF
- 有Web认证情况下的路由器设置
- 典型C内存空间分布图
- Python微信文章 抓取转PDF
- 【半年时光-追寻你的足迹】
- android entries属性,ListPreference需要设置两个属性:android:entries和android:entryValues...
- 微服务-分布式锁(二)-Redis方案
- 解决cv2.error: OpenCV(4.5.1) /tmp/pip-req-build-n_alixql/opencv/modules/highgui/问题
- Python环境搭建之OpenCV
- valgrind检测内存泄漏,gperftools,memwatch和性能优化Messy_Test
- OpenHarmony社区开源代码下载及编译
- 比例运算电路小结(电路组态 输入电阻)
- PS入门(1-2) 灰度色彩模式
- 教你如何写好商业计划书 赢得风险投资