一起来看看DPDK 21.02有哪些新功能和变化吧

温馨提示:英文函数名较长,为了获得更佳的阅读体验,手机上建议横屏阅读~

Note:

添加了在Linux或FreeBSD上构建DPDK的依赖:需要Python模块pyelftools(0.22版或更高版本),通常需要使用python3-pyelftools这个包。

如果没有可用的发布包,可以用以下方法安装:

pip3 install pyelftools

新功能

为 PMD 电源管理添加了新的 ethdev API。

添加了 rte_eth_get_monitor_addr(),与rte_power_monitor() 配合使用,以实现 PMD 的自动电源管理。

添加了以太网PMD电源管理helper API。

添加了新的helper API rte_power_ethdev_pmgmt_queue_enable(),让用户更容易使用以太网PMD电源管理。最初支持三种电源管理方案。

  • 基于UMWAIT指令节省功耗(仅限x86)

  • 基于rte_pause() (通用)或TPAUSE指令节省功耗(仅限x86)

  • 通过librte_power 库进行频率缩放来节省功耗

在 rte_flow 中添加了 GENEVE TLV 选项。

添加了 GENEVE TLV 选项对匹配和原始报文封装/解封装的支持。

在流API中添加了对修改字段操作的支持。

为rte_flow添加了对“修改”操作的支持RTE_FLOW_ACTION_TYPE_MODIFY_FIELD,便于对任意标头字段(以及标记、元数据或标记值)执行各种操作。支持的操作有:用另一个字段的内容覆盖一个字段,用立即数进行加减。

更新了Broadcom bnxt驱动程序。

对Broadcom bnxt驱动程序进行了修复和改进,其中包括:

  • 添加了对Stingray2设备的支持。

更新了Cisco enic驱动程序。

  • 添加了64B完成队列条目(CQE)的支持。

更新了Hisilicon hns3驱动程序。

  • 添加了对流量管理的支持。

更新了Intel i40e驱动程序。

  • 在Windows上添加了对Intel i40e驱动的支持。

更新了Intel ice驱动程序。

Intel ice驱动程序作出了以下更新和改进,其中包括:

  • 添加了对Double VLAN的支持,用于DCF switch QinQ过滤。

  • 添加了对DCF中eCPRI隧道UDP动态端口分配的支持。

更新了Intel iavf驱动程序。

iavf PMD作出了以下更新和改进,其中包括:

  • 添加了对eCPRI流的FDIR / RSS数据包转向的支持。

  • 添加了对无输入集FDIR TCP / UDP模式的支持。

更新了Mellanox mlx5驱动程序。

Mellanox mlx5驱动程序作出了以下更新和改进,其中包括:

  • 在Windows上加入了基本支持。

  • 添加了 GTP PDU session container匹配和原始报文封装/解封装。

  • 在示例子操作列表中添加了对RSS操作的支持。

  • 在同一流中添加了对E-Switch镜像和跳转动作的支持。

  • 添加了在 E-Switch 上根据镜像行为按正确顺序进行修改操作的支持。

  • 对于大于 0 的入口或出口流组以及任何传输流组,将流优先级的数量扩大到 21844 (0 - 21843)。

  • 添加了对Tx mbuf快速自由卸载的支持。

  • 添加了对流修改字段操作的支持。

更新了 Pensando ionic 驱动程序。

Pensando ionic驱动程序作出了以下更新和改进,其中包括:

  • 修复了与链路自动协商有关的错误。

  • 修复了与端口启动/停止和队列启动/停止有关的错误。

  • 添加了对探测支持的队列版本的支持。请注意,1.0之前的旧版本固件将不能继续用于PMD。

  • 删除了未使用的代码。

  • 减少了设备启动时间。

更新了Wangxun txgbe驱动程序。

Wangxun txgbe驱动程序作出了以下更新和改进,其中包括:

  • 添加对通用流API的支持。

  • 添加对流量管理器的支持。

  • 添加对IPsec的支持。

更新了GSO支持。

  • 添加了VXLAN IPv4 GSO对内层UDP / IPv4报文的支持。

为cryptodev库添加了enqueue 和 dequeue回调API。

Cryptodev库已通过enqueue 和 dequeue回调API进行了增强,使应用程序每次enqueue /dequeue操作都可以增加/删除用户回调。

更新了OCTEON TX2加密PMD。

  • 更新了 OCTEON TX2 加密 PMD lookaside 协议的卸载,用于 ESN 和反重放IPsec。

  • 更新了带有CN98xx支持的OCTEON TX2加密PMD。

  • 在OCTEON TX2加密PMD lookaside协议卸载中,为IPsec添加了对aes-cbc sha1-hmac密码组合的支持。

  • 在OCTEON TX2加密PMD lookaside协议卸载中,为IPsec添加了对aes-cbc sha256-128-hmac密码组合的支持。

添加了mlx5压缩PMD。

为Bluefield 2适配器添加了新的压缩 PMD驱动程序。

有关更多详细信息,请参见MLX5压缩驱动程序。

添加了python脚本,以运行加密性能测试并绘制结果。

添加了新的Python脚本,以自动化运行加密性能测试,并将图表结果输出到PDF文件。有关更多详细信息,请参见dpdk-test-crypto-perf应用程序指南。

在pmdinfogen中添加了对Windows的支持。

PMD信息字符串已添加到Windows以及其他操作系统中,但目前还不支持从 Windows DLL 中提取它们。使用Python重写了build-time工具pmdinfogen,因此对libelf的依赖已经被pyelftools替换。

添加了对头文件进行链接实时检查的支持。

添加了新的构建选项check_includes。启用该选项后,它将对DPDK公共头文件执行链接实时检查,以确保没有缺少依赖的头文件。此功能默认情况下处于禁用状态,主要供DPDK SDK开发者使用,目前已集成到链接脚本和自动CI中。

删除的项目

•内部头文件 rte_ethdev_driver.h, rte_ethdev_vdev.h 和 rte_ethdev_pci.h 不再作为 DPDK ninja install 动作的一部分进行安装,而是在源代码树中分别重命名为 ethdev_driver.h, ethdev_vdev.h 和 ethdev_pci.h ,以表明它们是非公共头文件。

•内部头文件rte_eventdev_pmd.h, rte_eventdev_pmd_vdev.h 和 rte_eventdev_pmd_pci.h 不再作为 DPDK ninja install 动作的一部分进行安装,而是在源代码树中分别重命名为 eventdev_pmd.h, eventdev_pmd_vdev.h 和 eventdev_pmd_pci.h ,以表明它们是非公共头文件。

• 删除了对BCM573xx and BCM5740x 系列的NetXtreme设备的支持。具体来说,已删除了对以下Broadcom PCI设备ID的支持,包括0x16c8, 0x16c9, 0x16ca, 0x16ce, 0x16cf, 0x16df, 0x16d0, 0x16d1, 0x16d2, 0x16d4, 0x16d5, 0x16e7, 0x16e8, 0x16e9。

• 删除了用于检查DPDK头文件的check-includes.sh 脚本,取而代之的是上述check_includes 链接选项。

API 变更

• config:删除了rte_config.h 中表明构建了哪些DPDK库和驱动程序的旧宏。新的宏由meson以标准化的格式生成:RTE_LIB_<NAME> 和 RTE_<CLASS>_<NAME>。其中NAME是大写的组件名称,例如 EAL, ETHDEV, VIRTIO,CLASS 是大写的驱动类型,例如 NET, CRYPTO

•cryptodev:更新了结构rte_cryptodev ,添加了enqueue和dequeue回调函数。

ABI 变更

ABI保持不变,不会破坏与20.11的兼容性。

实验函数rte_telemetry_init 已从公共API中删除,现在是仅供内部使用的函数。当telemetry库可用时,它会从rte_eal_init() 中自动调用,因此终端应用无需使用它。

经过测试的平台

Intel® platforms with Intel® NICs combinations

CPU

  • Intel® Atom™ CPU C3758 @ 2.20GHz

  • Intel® Atom™ CPU C3858 @ 2.00GHz

  • Intel® Atom™ CPU C3958 @ 2.00GHz

  • Intel® Xeon® CPU D-1541 @ 2.10GHz

  • Intel® Xeon® CPU D-1553N @ 2.30GHz

  • Intel® Xeon® CPU E5-2680 0 @ 2.70GHz

  • Intel® Xeon® CPU E5-2680 v2 @ 2.80GHz

  • Intel® Xeon® CPU E5-2699 v3 @ 2.30GHz

  • Intel® Xeon® CPU E5-2699 v4 @ 2.20GHz

  • Intel® Xeon® Gold 5218N CPU @ 2.30GHz

  • Intel® Xeon® Gold 6139 CPU @ 2.30GHz

  • Intel® Xeon® Gold 6252N CPU @ 2.30GHz

  • Intel® Xeon® Platinum 8180 CPU @ 2.50GHz

  • Intel® Xeon® Platinum 8280M CPU @ 2.70GHz

OS:

  • CentOS 8.3

  • CentOS Stream 8

  • Fedora 33

  • FreeBSD 12.1

  • OpenWRT 19.07.4

  • Red Hat Enterprise Linux Server release 8.3

  • Suse 15 SP2

  • Ubuntu 20.04

  • Ubuntu 20.10

NICs:

Intel® Ethernet Controller E810-C for SFP (4x25G)

  • Firmware version: 2.40

  • Device id (pf/vf): 8086:1593 / 8086:1889

  • Driver version: 1.4.5 (ice)

  • OS Default DDP: 1.3.21.0

  • COMMS DDP: 1.3.25.0

  • Wireless Edge DDP: 1.3.1.0

Intel® Ethernet Controller E810-C for QSFP (2x100G)

  • Firmware version: 2.40

  • Device id (pf/vf): 8086:1592 / 8086:1889

  • Driver version: 1.4.5 (ice)

  • OS Default DDP: 1.3.21.0

  • COMMS DDP: 1.3.25.0

  • Wireless Edge DDP: 1.3.1.0

Intel® 82599ES 10 Gigabit Ethernet Controller

  • Firmware version: 0x61bf0001

  • Device id (pf/vf): 8086:10fb / 8086:10ed

  • Driver version: 5.10.2 (ixgbe)

Intel® Corporation Ethernet Connection X552/X557-AT 10GBASE-T

  • Firmware version: 0x800003e7

  • Device id (pf/vf): 8086:15ad / 8086:15a8

  • Driver version: 5.1.0-k (ixgbe)

Intel® Corporation Ethernet Controller 10G X550T

  • Firmware version: 0x80000482

  • Device id (pf): 8086:1563

  • Driver version: 5.10.2 (ixgbe)

Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)

  • Firmware version: 8.00 0x80008b82 1.2766.0

  • Device id (pf/vf): 8086:1572 / 8086:154c

  • Driver version: 2.14.13 (i40e)

Intel® Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)

  • Firmware version: 5.00 0x800023c3 1.2766.0

  • Device id (pf/vf): 8086:37d0 / 8086:37cd

  • Driver version: 2.14.13 (i40e)

Intel® Corporation Ethernet Connection X722 for 10GBASE-T (2x10G)

  • Firmware version: 4.10 0x80001a7a

  • Device id (pf/vf): 8086:37d2 / 8086:37cd

  • Driver version: 2.14.13 (i40e)

Intel® Ethernet Converged Network Adapter XXV710-DA2 (2x25G)

  • Firmware version: 8.00 0x80008c1a 1.2766.0

  • Device id (pf/vf): 8086:158b / 8086:154c

  • Driver version: 2.14.13 (i40e)

Intel® Ethernet Converged Network Adapter XL710-QDA2 (2X40G)

Firmware version: 8.00 0x80008b82 1.2766.0

Device id (pf/vf): 8086:1583 / 8086:154c

Driver version: 2.14.13 (i40e)

Intel® Corporation I350 Gigabit Network Connection

  • Firmware version: 1.63, 0x80000cbc

  • Device id (pf/vf): 8086:1521 / 8086:1520

  • Driver version: 5.6.0-k (igb)

Intel® Corporation I210 Gigabit Network Connection

  • Firmware version: 3.25, 0x800006eb

  • Device id (pf): 8086:1533

  • Driver version: 5.6.0-k (igb)

Intel® Ethernet Controller 10-Gigabit X540-AT2

  • Firmware version: 0x800005f9

  • Device id (pf): 8086:1528

  • Driver version: 5.1.0-k (ixgbe)

Intel® Ethernet Converged Network Adapter X710-T2L

  • Firmware version: 8.00 0x80008d10 1.2766.0

  • Device id (pf): 8086:15ff

  • Driver version: 2.14.13 (i40e)

Intel® platforms with Mellanox® NICs combinations

CPU:

  • Intel® Xeon® Gold 6154 CPU @ 3.00GHz

  • Intel® Xeon® CPU E5-2697A v4 @ 2.60GHz

  • Intel® Xeon® CPU E5-2697 v3 @ 2.60GHz

  • Intel® Xeon® CPU E5-2680 v2 @ 2.80GHz

  • Intel® Xeon® CPU E5-2670 0 @ 2.60GHz

  • Intel® Xeon® CPU E5-2650 v4 @ 2.20GHz

  • Intel® Xeon® CPU E5-2640 @ 2.50GHz

  • Intel® Xeon® CPU E5-2650 0 @ 2.00GHz

  • Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz

OS:

  • Red Hat Enterprise Linux release 8.2 (Ootpa)

  • Red Hat Enterprise Linux Server release 7.8 (Maipo)

  • Red Hat Enterprise Linux Server release 7.6 (Maipo)

  • Red Hat Enterprise Linux Server release 7.5 (Maipo)

  • Red Hat Enterprise Linux Server release 7.4 (Maipo)

  • Red Hat Enterprise Linux Server release 7.3 (Maipo)

  • Red Hat Enterprise Linux Server release 7.2 (Maipo)

  • Ubuntu 20.04

  • Ubuntu 18.04

  • Ubuntu 16.04

  • SUSE Enterprise Linux 15 SP2

  • SUSE Enterprise Linux 12 SP4

OFED:

  • MLNX_OFED 5.2-2.2.0.0 and above

  • MLNX_OFED 5.1-2.5.8.0

upstream kernel:

  • Linux 5.11.0-rc7 and above

rdma-core:

  • rdma-core-33.1-1 and above

NICs:

Mellanox® ConnectX®-3 Pro 40G MCX354A-FCC_Ax (2x40G)

  • Host interface: PCI Express 3.0 x8

  • Device ID: 15b3:1007

  • Firmware version: 2.42.5000

Mellanox® ConnectX®-3 Pro 40G MCX354A-FCCT (2x40G)

  • Host interface: PCI Express 3.0 x8

  • Device ID: 15b3:1007

  • Firmware version: 2.42.5000

Mellanox® ConnectX®-4 Lx 25G MCX4121A-ACAT (2x25G)

  • Host interface: PCI Express 3.0 x8

  • Device ID: 15b3:1015

  • Firmware version: 14.29.2002 and above

Mellanox® ConnectX®-4 Lx 50G MCX4131A-GCAT (1x50G)

  • Host interface: PCI Express 3.0 x8

  • Device ID: 15b3:1015

  • Firmware version: 14.29.2002 and above

Mellanox® ConnectX®-5 100G MCX516A-CCAT (2x100G)

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:1017

  • Firmware version: 16.29.2002 and above

Mellanox® ConnectX®-5 100G MCX556A-ECAT (2x100G)

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:1017

  • Firmware version: 16.29.2002 and above

Mellanox® ConnectX®-5 100G MCX556A-EDAT (2x100G)

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:1017

  • Firmware version: 16.29.2002 and above

Mellanox® ConnectX®-5 Ex EN 100G MCX516A-CDAT (2x100G)

  • Host interface: PCI Express 4.0 x16

  • Device ID: 15b3:1019

  • Firmware version: 16.29.2002 and above

Mellanox® ConnectX®-6 Dx EN 100G MCX623106AN-CDAT (2x100G)

  • Host interface: PCI Express 4.0 x16

  • Device ID: 15b3:101d

  • Firmware version: 22.29.2002 and above

Mellanox® ConnectX®-6 Lx EN 25G MCX631102AN-ADAT (2x25G)

Host interface: PCI Express 4.0 x8

Device ID: 15b3:101f

Firmware version: 26.29.2002 and above

Mellanox® BlueField® SmartNIC

Mellanox® BlueField® 2 SmartNIC MT41686 - MBF2H332A-AEEOT (2x25G)

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:a2d2

  • Firmware version: 24.29.2002 and above

Embedded software:

  • CentOS Linux release 7.6.1810 (AltArch)

  • MLNX_OFED 5.2-2.2.0 and above

  • DPDK application running on Arm cores

Intel® platforms with Broadcom® NICs combinations

CPU:

  • Intel® Xeon® Gold 6154 CPU @ 3.00GHz

  • Intel® Xeon® CPU E5-2667 v3 @ 3.20GHz

  • Intel® Xeon® CPU E5-2650 v2 @ 2.60GHz

  • Intel® Xeon® Gold 6142 CPU @ 2.60GHz

  • Intel® Xeon® CPU E3-1270 v3 @ 3.50GHz

  • Intel® Xeon® Gold 6134M CPU @ 3.20GHz

OS:

  • Red Hat Enterprise Linux Server release 8.1

  • Red Hat Enterprise Linux Server release 7.6

  • Centos 8.1

  • Centos 7.8

  • Centos 7.7

upstream kernel:

  • Linux 5.3.4

NICs:

Broadcom® NetXtreme-E® Series P225p (2x25G)

  • Host interface: PCI Express 3.0 x8

  • Firmware version: 214.4.114.0 and above

Broadcom® NetXtreme-E® Series P425p (4x25G)

  • Host interface: PCI Express 3.0 x16

  • Firmware version: 218.0.124.0 and above

Broadcom® NetXtreme-E® Series P2100G (2x100G)

  • Host interface: PCI Express 3.0 x16

  • Firmware version: 218.0.124.0 and above

Broadcom® NetXtreme-E® Series P425p (4x25G)

  • Host interface: PCI Express 4.0 x16

  • Firmware version: 218.0.124.0 and above

Broadcom® NetXtreme-E® Series P2100G (2x100G)

  • Host interface: PCI Express 4.0 x16

  • Firmware version: 218.0.124.0 and above

Broadcom® NetXtreme-S® Series SmartNIC

Broadcom® NetXtreme-S® Series PS225-H16 SmartNIC (2x25G)

  • Host interface: PCI Express 3.0 x8

  • Firmware version: 218.1.143.0

Embedded software:

  • Broadcom Yocto Linux

  • Kernel version: 4.14.196

  • DPDK application running on 8 Arm Cortex-A72 cores

NXP ARMv8 SoCs (with integrated NICs)

SoC:

  • LX2xxx, LS2xxx, LS10xx

OS (based on NXP LSDK-20.04):

  • Kernel version: 4.19.90

  • Kernel version: 5.4.47

  • Ubuntu 18.04

转载须知

DPDK与SPDK开源社区公众号文章转载声明

推荐阅读

DPDK Summit APAC 2021 免费报名中

DPDK Release 20.11

点击“阅读原文,查看21.02 release note

DPDK Release 21.02相关推荐

  1. DPDK release 18.02

    DPDK18.02 重磅发布,快看看新增了哪些功能吧~ 增加了允许退出时释放内部EAL资源的功能. 在rte_eal_init()运行期间,EAL从巨页分配内存使其核心库能够执行任务.rte_eal_ ...

  2. 【更新21.02.03】百分浏览器继续使用Flash Player的临时解决方案!

    Flash已经停止维护了,大家能不用Flash就尽量不要用Flash,停止维护之后此组件会非常不安全! 21.02.03更新:还是要屏蔽一下百分浏览器的自动下载.可能百分浏览器自动下载Flash组件的 ...

  3. MT7621基于OpenWrt 21.02使用DSA配置VLAN

    MT7621基于OpenWrt 21.02使用DSA配置VLAN 21.02vlan配置 配置测试: 在openwrt 21.02版本中,swtich/vlan的配置方式发生了变化,不再使用swcon ...

  4. Maxon Cinema 4D Release 21可立即供货

    新功能.增强功能和创新的3D内容创建工作流程 德国腓特烈斯多夫--(美国商业资讯)--专业3D建模.动画和渲染解决方案的领先开发商Maxon今天宣布推出Cinema 4D Release 21(R21 ...

  5. Maxon将在Siggraph 2019公布下一代Cinema 4D RELEASE 21

    R21提供令人惊叹的新功能,单一版本的Cinema 4D和新的订阅定价选项 功能更新并且更广泛的整合了领先的技术解决方案 为专业3D人士提供创意工作流程 德国,弗里德里希斯多夫 -- (美国商业资讯) ...

  6. 【转】最新版Tinyumbrella4.21.02备份iPad SHSH教程

    转自:http://apple.178.com/201101/88976615701.html SHSH备份工具tinyumbrella升级至4.21.02版本,备份操作更加简便,下面给大家演示一下. ...

  7. 2021年中国信用卡发行量、交易规模及市场格局分析:授信总额达21.02万亿元,同比增长10.86%[图]

    一.发行规模 信用卡是指记录持卡人账户相关信息,具备银行授信额度和透支功能,并为持卡人提供相关银行服务的各类介质. 信用卡业务作为消费金融的重要组成部分,随着消费金融飞速发展也在不断演进和发展,截止2 ...

  8. openwrt 21.02 开启ntfs-3g自动挂载2T以上移动硬盘

    初始状态:openwrt 21.02原始版本 需求:需要自动挂载移动硬盘,作为简单NAS使用 遇到问题: 1) 按照网上教程mount命令不识别uuid参数,发现少安装了一个包:mount-utils ...

  9. DPDK Release 17.11

    DPDK Release 17.11 DPDK Release 17.11 主要功能如下: - IOVA awareness - PCI and VDEV buses moved to drivers ...

  10. DPDK Release 22.11

    新功能 添加了初始LoongArch架构支持. 添加了对 LoongArch 架构的 EAL 实现.在 Loongson 3A5000, Loongson 3C5000 和 Loongson 3C50 ...

最新文章

  1. Waymo正式向真正“无人车”迈进,申请DMV远程监控许可证
  2. shell脚本中获取当前所在目录地址
  3. SAP Spartacus服务器端渲染模式下的调试方法
  4. java 懒加载模式_JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载
  5. html action能跨域么,ASP.NET MVC 中设置跨域
  6. 用友报表java打不开怎么加载,点报表没反应怎么回事啊?演示账套也打不开。...
  7. 《电子元器件的可靠性》——第1章概述
  8. jquery文档就绪函数
  9. Xmind思维导图教程
  10. 税务计算机类考试题型,税务师考试题型分值分配、计算器要求及2020年考试时间...
  11. java 数组 重复数据结构_Java数据结构和算法( 二 ) ## 数组
  12. mariadb镜像使用教程(一)
  13. oracle在运行存储的时候出现:同义词转换不再有效
  14. 排序算法c语言描述---基数排序
  15. typo3 网站迁移
  16. 协调世界时转换为GPS周秒(转载)
  17. 【社交网络分析】映射主题网络:从两极分化的人群到社区集群(一)
  18. 【Golang】对接百度翻译API-golang版本sdk代码
  19. 【转载】配置文件 .yml 写法小结
  20. 逆战小白提升日記——网红时钟罗盘北京时间页代码

热门文章

  1. (一)Latex源文件的基本结构
  2. python批量提取word指定内容_python 批量提取word应聘登记表数据+情感分析
  3. 【精品】爬取 国家统计局 2020年 省市县乡村 数据
  4. 转:如何破解超星打印页数限制
  5. 计算机的ie丢失,告诉你win7内的IE给卸载了怎么找回
  6. windows通过cmd命令行下载FTP中文件的几种方式
  7. sqlite转sql2000数据库
  8. c语言怎么添加按钮,关于用C语言制作按钮的问题
  9. python图片表格转excel表格_Python办公自动化 | word 表格转excel
  10. Kettle_Spoon如何将MySQL数据抽取到ES