linux网卡驱动对XDP支持情况

各个网卡厂商对应的Linux内核驱动如下

  • Mellanox: mlx4 (4.8) and mlx5 (4.9)
  • QLogic/Cavium: qede (4.10)
  • Virtio_net: (4.10)
  • Netronome: nfp (4.10)
  • Broadcom: bnxt_en (4.11)

linux网卡驱动对XDP支持情况详见 https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md#xdp

XDP

An approximate list of drivers or components supporting XDP programs for your kernel can be retrieved with:

git grep -l XDP_SETUP_PROG drivers/

Feature / DriverKernel versionCommit
XDP core architecture4.86a773a15a1e8
Action: drop4.86a773a15a1e8
Action: pass on to stack4.86a773a15a1e8
Action: direct forwarding (on same port)4.86ce96ca348a9
Direct packet data write4.84acf6c0b84c9
Mellanox mlx4 driver4.847a38e155037
Mellanox mlx5 driver4.986994156c736
Netronome nfp driver4.10ecd63a0217d5
QLogic (Cavium) qed* drivers4.10496e05170958
virtio_net driver4.10f600b6905015
Broadcom bnxt_en driver4.11c6d30e8391b8
Intel ixgbe* drivers4.12924708081629
Cavium thunderx driver4.1205c773f52b96
Generic XDP4.12b5cdae3291f7
Intel i40e driver4.130c8493d90b6b
Action: redirect4.146453073987ba
Support for tap4.14761876c857cb
Support for veth4.14d445516966dc
Intel e1000 driverNot upstream yet
Intel e1000e driverNot planned for upstream at this time
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XDP(eXpress Data Path)是Linux内核中的一种高效、低延迟的数据包处理技术,它可以在数据包进入内核网络协议栈之前进行处理,从而避免了协议栈带来的性能开销。XDP主要用于数据包的过滤、转发、负载均衡等场景,可以在数据包处理过程中进行各种自定义操作,如修改数据包头、丢弃数据包等。 下面是Linux XDP的详细介绍: 1. XDP程序的开发 XDP程序是用C语言编写的,需要先安装相关的开发环境和依赖库,如clang、libbpf等。XDP程序需要使用eBPF技术来对数据包进行处理,因此需要熟悉eBPF的基本语法和数据结构。具体的开发步骤可以参考官方文档和相关教程。 2. XDP程序的加载 XDP程序可以通过几种方法加载到内核中,如使用iproute2工具中的ip命令、使用BPF系统调用、使用libbpf库等。加载XDP程序时需要指定网卡名称和XDP处理模式,如XDP_DROP、XDP_TX等。加载成功后,XDP程序会与网卡进行绑定,并开始处理接收到的数据包。 3. XDP程序的执行流程 当数据包到达网卡时,XDP程序会被触发进行处理。XDP程序可以访问数据包的各个字段,如源IP地址、目的IP地址、协议类型等,在此基础上进行过滤、转发等操作。XDP程序执行完成后,可以选择将数据包交给协议栈继续处理,也可以选择直接丢弃数据包。XDP程序的执行速度非常快,因此可以大大提升网络应用的性能。 4. XDP程序的应用场景 XDP程序可以应用于各种网络场景,如DDoS防护、网络监控、负载均衡等。实际应用中,可以根据具体需求编写不同的XDP程序,实现各种自定义功能。例如,在DDoS防护场景中,可以编写XDP程序对数据包进行过滤,防止恶意攻击;在负载均衡场景中,可以编写XDP程序对数据包进行分类,实现负载均衡等功能。 5. XDP程序的性能优化 为了进一步提高XDP程序的性能,可以采用一些优化技术,如使用多核CPU、使用XDP_REDIRECT模式等。多核CPU可以提高XDP程序的并发处理能力,同时使用XDP_REDIRECT模式可以将数据包发送到用户态应用程序中进行处理,从而进一步提高网络应用的性能。 以上就是Linux XDP的详细介绍,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值