当前位置: 首页 > news >正文

dpdk如何与内核进行交互——vdev的用法

背景

dpdk是一个用户态程序,常用来bypass内核来处理数据报文,但是有时候,我们需要进行内核交互,如何来进行处理呢?本文将介绍vdev这个参数的使用,以及如何将网卡收到的报文送到内核,以及内核发送的报文送到网卡。

典型示例场景

dpdk-l2fwd

运行参数如下:
dpdk-l2fwd -l 3-5 -n 2 --hugepage-size 1024 --socket-mem 40960,0 -a 0000:ad:00.0 --vdev=net_tap_1,iface=vtap001 – -q 2 -p3 --no-mac-updating

作用: 将 0000:ad:00.0 设备收到的报文转发到 tap设备 vtap001,将vtap001收到的报文转发到 0000:ad:00.0 设备。这样就完成了数据报文与内核的交互处理。可以通过tcpdump在vtap001口,进行数据报文的抓包处理。

其他介绍

–vdev= 是 DPDK(Data Plane Development Kit)中一个非常重要的参数,用于创建和配置虚拟设备(Virtual Device)。这些设备不是物理硬件,而是由软件实现的,用于各种高级网络功能,如虚拟网卡、加密、压缩、AF_PACKET 接口等。

常见虚拟设备类型及使用示例

  1. net_virtio:Virtio 虚拟网卡(常用于虚拟机通信)
    ● path=/tmp/vhost.sock:与 QEMU 虚拟机通信的 Unix socket。
    ● queues=2:启用 2 个队列(多队列支持)。
    ● mac=…:指定 MAC 地址。

用途:DPDK 应用与 QEMU/KVM 虚拟机之间高速通信。

  1. net_tap:TAP 设备(与宿主机网络栈交互)
    ● iface=tap0:指定 TAP 接口名称。
    ● 启动后,宿主机上会出现 tap0 接口,可配置 IP、抓包等。

用途:将 DPDK 应用接入 Linux 网络栈,用于网关、防火墙等。

  1. net_pcap:基于 PCAP 的虚拟网卡(抓包/回放)

用途:测试、调试、流量回放。

  1. net_af_packet:AF_PACKET 接口(直接访问 Linux 网络设备)
    ● iface=eth1:绑定到 eth1 接口。
    ● 通过 AF_PACKET socket 抓取/发送数据包。

用途:在不使用 DPDK PMD 驱动的情况下访问物理网卡。

  1. crypto_aesni_mb:AESNI 多缓冲加密设备

用途:高性能对称加密(如 IPsec、TLS 加速)。

  1. compress_isal:Intel ISA-L 压缩设备

用途:数据压缩/解压缩加速。

总结

–vdev= 让 DPDK 不仅能驱动物理网卡,还能与虚拟机、宿主机网络、文件、加密硬件等交互,极大扩展了其应用场景。

虚拟设备用途典型参数
net_virtio_user与虚拟机通信path=,queues=,mac=
net_tap与Linux网络栈通信iface=
net_pcap抓包/回放rx_pcap=,tx_pcap=
net_af_packet访问物理网卡(非PMD)iface=
crypto_*加密加速-
compress_*压缩加速-
http://www.dtcms.com/a/506984.html

相关文章:

  • 丝杆模组如何满足高精度加工设备的高要求?
  • 咋做网站泉州网络推广专员
  • 【STL——vector容器】
  • 如何做网站流量统计网站建设公司中企动力
  • 练习python题目小记(三)
  • 技术视角下的财务自动化:如何用最优TCO评估RPA机器人的性价比?
  • C++ 模板再升级:非类型参数、特化技巧(含全特化与偏特化)、分离编译破解
  • 京东客网站怎么做网站开发公司创业策划
  • 线性表实战:顺序表与链表的奥秘
  • 模块的波动对整个系统的影响
  • Linux服务器编程实践58-getnameinfo函数:通过socket地址获取主机名与服务名
  • Kubernetes(三) Pod 详解与 YAML 配置实战指南
  • 做网上购物网站网络培训seo
  • 电梯门禁系统及机器人乘梯功能的安装调试需要电梯公司技术人员全程配合,这主要由电梯设备的特殊性、安全规范要求及系统集成的复杂性决定。以下是具体原因及配合内容:
  • Windows安全基线、账户密码安全、账户锁定策略、审核策略
  • 介绍一下 辜朝明 的大衰退 理论
  • STM32G474单片机开发入门(二十)单片机IAP(在应用编程)详解及Ymodem实战
  • Flink中自定义序列化器
  • Linux 线程控制与同步互斥
  • 餐饮网站开发性能需求分析电商办属于哪个单位
  • 【Devops-Jenkins自动将Java Maven工程编译成jar、并打成Docker镜像,并上传Harbor】
  • 本地window10同步ubuntu上conda指定环境,并在C#项目中通过Python.NET调用自定义python接口
  • 蕲春网站建设一个网站怎么优化
  • 实战:Python爬虫如何模拟登录与维持会话状态
  • 【完整源码+数据集+部署教程】【天线&化学】航拍图屋顶异常检测系统源码&数据集全套:改进yolo11-ContextGuided
  • Blender霓虹灯牌发光标志店招门牌生成器插件 Procedural Signs V2.0.0+预设包
  • LeetCode——二分(初阶)
  • 高端网站建设公司注意什么广告公司名字大全参考
  • 哈尔滨网站建设运营网站建设优化开发公司排名
  • Linux小课堂: 输入重定向与管道操作详解