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.pcap
  • tx_pcap 将一个pcap文件设为Tx流。此文件将会自动创建和重写。
  • rx_iface 将一个使用Linux内核驱动的物理网口设为Rx流。如rx_iface=eth0
  • tx_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驱动收发包相关推荐

  1. Robcup2D足球学习记录【2020.01.14】

    本次主要学习了bhv_normal_dribble.cpp与bhv_pass_kick_find_receiver.cpp bhv_normal_dribble.cpp 代码个人理解与存在的问题(已经 ...

  2. 《惢客创业日记》2020.01.14(周二)从新学习《长征》

    这两天的心情极其糟糕,除了生活中的一些杂事以外,还有就是惢客公益版块的设计工作仿佛进入到了一个疲倦期.就好比一个人在长跑时,刚开始挺兴奋,挺有兴趣,但是开始后不久,就会遇到一个两腿发软.全身乏力.呼吸 ...

  3. 从 dpdk-20.11 移植 intel E810 百 G 网卡 pmd 驱动到 dpdk-16.04 中

    文章目录 前言 移植前的调研工作 dpdk-20.11 ice pmd 驱动源码的组成 移植问题与解决方案记录 16.04 使用 make 编译,20.11 使用 meson 与 ninja 方式编译 ...

  4. 【转载】语义分割综述2020.01

    转载: 作者: http://blog.csdn.net/john_bh/ 出处:https://blog.csdn.net/john_bh/article/details/107044528 论文链 ...

  5. 泰坦以太(以太流说) titan_ysl 2020.01.27

    泰坦以太(以太流说) titan_ysl 2020.01.27 从学习物理到现在,几十年来,我一直认为以太的存在能最合理地解释许多物理现象,但由于一直没人给于其适当的定义,导致其被废弃,从而让现代物理 ...

  6. dpdk pmd驱动分析

    缘起dpdk_devbind.py 运行dpdk程序之前我们一般都会使用dpdk_devbind.py程序对指定的驱动与设备进行绑定与解绑(如下命令).那么dpdk_devbind.py程序是如何实现 ...

  7. 心音数据库_小V云端数据库 | 2020.9.14—2020.9.18

    桂花的芬芳 在雨后空气中弥散开来 似为湿润的情绪 赠予了一丝甜蜜 小V云端数据库 2020.9.14-2020.9.18 资讯情报关键词 健康.示范.安全 V宝体检,助力成长 2020年9月14日上午 ...

  8. 广东省计算机行业发展程度,广东省统计局-2020年1-4月广东规模以上工业生产运行简况...

    2020年1-4月,全省规模以上工业企业累计实现增加值8658.97亿元,同比下降10.1%,降幅比一季度收窄5.0个百分点:其中,4月当月增长3.6%,增幅比3月回升8.3个百分点,实现由负转正. ...

  9. 宏碁(Acer)蜂鸟Fun 2020新款 14英寸轻薄商务笔记本使用真实评测

    宏碁(Acer)蜂鸟Fun 2020新款 14英寸轻薄商务笔记本使用真实评测 本人因为工作需要,近期想购置一台轻薄,性能过的去的笔记本,预算大概在4000元左右.去JD看了一圈,大把的AMD本,虽说近 ...

最新文章

  1. 2019.03.21 增删改
  2. AngularJS移动端页面input无法输入
  3. Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理
  4. 部署Docker----解决删除none镜像问题
  5. Hash魔法:一致性 hash 算法
  6. js中将html文档写入静态界面当中
  7. 百度之星作为座位调整java_百度之星程序设计大赛十周年算法合集20052014.PDF
  8. 有Web认证情况下的路由器设置
  9. 典型C内存空间分布图
  10. Python微信文章 抓取转PDF
  11. 【半年时光-追寻你的足迹】
  12. android entries属性,ListPreference需要设置两个属性:android:entries和android:entryValues...
  13. 微服务-分布式锁(二)-Redis方案
  14. 解决cv2.error: OpenCV(4.5.1) /tmp/pip-req-build-n_alixql/opencv/modules/highgui/问题
  15. Python环境搭建之OpenCV
  16. valgrind检测内存泄漏,gperftools,memwatch和性能优化Messy_Test
  17. OpenHarmony社区开源代码下载及编译
  18. 比例运算电路小结(电路组态 输入电阻)
  19. PS入门(1-2) 灰度色彩模式
  20. 教你如何写好商业计划书 赢得风险投资

热门文章

  1. ros中web端通过 按钮加载本地静态 pgm 地图显示在canvas画布中
  2. 全向轮移动平台参数校准
  3. python 加速方法_24种方法加速你的Python
  4. activiti bpmn 安装不上_OTC弧焊工作站问题集-Win7 64位系统安装Step7 MicroWIN
  5. 洛谷——P1146 硬币翻转
  6. 优先级(HTML、CSS)
  7. JavaScript 面试总结
  8. java中日历类的用法_java日期类的用法
  9. c java python php_php c java python 语言对比
  10. 计蒜客-最后一个单词的长度