DPDK Release 20.02

新功能

增加了Wait Until Equal API。

增加了新的API,等待指定位置的内存发生更新,可以是16bit, 32bit, 64Bit。

增加了rte_ring_xxx_elem APIs。

增加了新的API以支持自定义元素大小的RING。

增加mbuf pool支持被锁定的外部内存的功能。

增加了对mbuf的支持,使其可在外部设备内存中分配数据缓冲区。

更新了rte_flow API以支持L2TPv3网络层协议。

增加了新的流规则,以处理L2TPv3 网络层协议 rte_flow的匹配。

增加了DSCP重写操作。

增加了新操作“RTE_FLOW_ACTION_TYPE_SET_IPV[4/6]_DSCP”以支持重写IP头中的DSCP字段。

增加了IONIC网卡的PMD。

为Pensando以太网网络适配器增加了ionic网卡驱动程序。有关此新驱动程序的更多详细信息,请参见IONIC驱动程序网卡指南。

更新了博通bnxt驱动程序。

博通 bnxt驱动程序增加了新功能和改进,其中包括:

增加了对MARK操作的支持。

更新了海思hns3驱动程序。

海思 hns3驱动程序增加了新功能和改进,其中包括:

增加了对Rx中断的支持。

增加了通过PF驱动程序设置VF MAC地址的支持。

更新了英特尔ice驱动程序。

Intel ice驱动程序增加了新功能和改进,其中包括:

增加了对特定端口上的MAC规则的支持。

增加了交换机规则中对MAC/VLAN with TCP/UDP的支持。

增加了对1/10G设备的支持。

增加了新的API rte_eth_tx_done_cleanup()。

更新了英特尔iavf驱动程序。

Intel iavf PMD中增加了新功能和改进,其中包括:

增加了更多不同ID设备的支持。

在最新的AVF规范中更新虚拟通道。

更新了英特尔ixgbe驱动程序。

Intel ixgbe PMD中增加了新功能和改进,其中包括:

增加了对API的支持rte_eth_tx_done_cleanup()。

增加了通过PF驱动程序设置VF MAC地址的功能。

增加了设置特定网络速率的功能。

更新了英特尔i40e驱动程序。

Intel i40e PMD中增加了新功能和改进,其中包括:

增加了对L2TPv3网络层协议的支持,可以通过dynamic devicepersonalization(DDP)进行编程。

增加了对ESP-AH协议的支持,可以通过dynamic devicepersonalization(DDP)进行编程。

增加了PF对驱动程序恶意事件的捕获和通知功能。

增加了LLDP支持。

通过AQ cmd扩展PHY。

增加了对读取LPI计数器的支持。

增加了对节能以太网的支持。

增加了新的API rte_eth_tx_done_cleanup()。

增加了对VF多队列中断的支持。

增加了设置特定网络速率的功能。

更新了Mellanox mlx5驱动程序。

Mellanox mlx5驱动程序增加了新功能和改进,其中包括:

增加了对mbuf的支持,可在外部设备内存中分配数据缓冲区。

增加了仅通过源IP地址,源端口,目的IP地址,目的端口进行RSS的功能。

增加了对GTP隧道头信息匹配的支持。

删除了对标记/未标记数据包进行匹配的限制(使用DV流引擎时)。

增加了对IPv4 / IPv6 DSCP重写操作的支持。

增加了对集成BlueField-2的ConnectX-6 Dx设备的支持。

增加了基于Mellanox设备的vDPA PMD。

增加了新的Mellanox vDPA(mlx5_vdpa)PMD。有关此驱动程序的更多详细信息,请参见MLX5 vDPA驱动程序指南

(http://doc.dpdk.org/guides/vdpadevs/mlx5.html)。

增加了对virtio-PMD通知数据的支持。

增加了virtio-PMD在前端通知后端时,驱动程序传递更多数据(除了标识虚拟队列)的功能,将通知数据扩展为包括avail index和avail wrap counter(使用packed ring时,通知数据中不包含avail wrap counter)。

更新了testpmd应用程序。

在testpmd应用程序中增加了对ESP和L2TPv3网络层协议rte_flow的匹配。

在cryptodev API中增加了算法。

ECDSA(椭圆曲线数字签名算法)已增加到非对称密码库规范中。

ECPM(椭圆曲线点乘法)被增加到非对称密码库规范中。

增加了同步加密burst API。

加密库中引入了新的API以处理同步加密操作,从而使基于CPU的加密设备(例如Intel AES-NI)获得加速性能提升。提供了aesni_gcm加密设备的实现。同时更新IPsec示例程序和ipsec库用于使用这一新功能。

在QAT PMD中增加混合算法用于处理加密摘要请求。

在GEN3 QAT硬件上运行QAT PMD时,新增混合算法以同时处理加密的摘要哈希密码(生成)和密码哈希(验证)请求(例如SNOW3G + ZUC或ZUC + AES CTR)。

GEN1/GEN2硬件不支持此类算法组合,当执行此类API,将返回RTE_CRYPTO_OP_STATUS_INVALID_SESSION。

Queue-pairs在Intel QuickAssist Technology(QAT)PMD上保持thread-safe。

Queue-pairs在Intel CPU上是线程安全的,但是Queue不是(也就是说,在单个queue-pair中,队列发方向中所有的enqueue操作必须在一个线程完成,而队列收方向中所有的dequeue操作必须在一个线程完成,但enqueue和dequeue操作可以在不同的线程中完成)。

更新了ZUC PMD。

将基础库从libSSO ZUC转换为intel-ipsec-mb库(最低支持的版本为0.53)。

取消了动态库限制,因此现在可以将PMD编译为共享对象。

更新了KASUMI PMD。

将基础库从libSSO KASUMI转换为intel-ipsec-mb库(最低版本为0.53)。

更新了SNOW3G PMD。

将基础库从libSSO SNOW3G转换为intel-ipsec-mb库(最低版本为0.53)。

更改了armv8 crypto PMD外部依赖关系。

更改了armv8 crypto PMD外部依赖关系。现在,armv8 crypto PMD依赖Arm加密库,而不再使用Marvell的armv8加密库。库名称已从armv8_crypto更改为AArch64crypto。

为Marvell OCTEON TX2 PMD增加了inline IPsec的支持。

为Marvell OCTEON TX2 PMD增加了inline IPsec的支持。使用此功能,应用程序能够将整个IPsec操作卸载到硬件处理。对于已配置的sessions, 硬件将负责查询并执行解密和IPsec转换。对于outbound 方向,应用程序可以将原始数据包提交给PMD,在对数据包进行加密和IPsec转换后通过有线方式发送出去。

增加了Marvell OCTEON TX2 End Point rawdev PMD。

为End Point mode的操作增加了新的OCTEON TX2 rawdev PMD。有关此新PMD的更多详细信息,请参见Marvell OCTEON TX2端点Rawdev驱动程序

(http://doc.dpdk.org/guides/rawdevs/octeontx2_ep.html)。

向l3fwd示例应用程序增加了事件模式。

为l3fwd示例程序增加event device的支持,展示了单个应用程序的IO机制既可以基于轮询,也可以基于事件。

压缩性能测试工具新增了循环计数模式。

在压缩性能测试工具中增加周期计数模式,以帮助测量和调整硬件和软件PMD。

增加了OpenWrt操作指南。

增加了描述如何在虚拟机和物理机上的OpenWrt中启动DPDK的文档。

删除的项目

默认情况下不会编译所有内核模块。

为了消除对Linux内核编译时间的依赖,技术委员会决定从20.02版本开始,默认不编译所有内核模块。

从Intel QuickAssist Technology(QAT)PMD中删除了coalescing 功能。

删除internal tail write coalescing功能,因为它与双线程不兼容。它已被阈值功能替换。当设备处于繁忙状态时,如果只能向任务队列发送少量数据包请求,则每次向队列发送请求都会导致昂贵的MMIO写操作。因此可以通过在进程启动时使用新的阈值参数来优化这些MMIO写事件。请参阅QAT文档以了解更多详细信息。

API变更

此版本中没有任何变化。

ABI变更

保持不变,保留ABI v20。DPDK 20.02与DPDK 19.11兼容。

经过测试的平台

· Intel® platforms with Intel® NICscombinations

o 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 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

o OS:

§ CentOS 7.7

§ CentOS 8.0

§ Fedora 31

§ FreeBSD 12.1

§ Red Hat Enterprise Linux Server release 8.0

§ Red Hat Enterprise Linux Server release 7.7

§ Suse15SP1

§ Ubuntu 14.04

§ Ubuntu 16.04

§ Ubuntu 16.10

§ Ubuntu 18.04

§ Ubuntu 19.04

o NICs:

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

§ Firmware version: 1.02 0x80002b69

§ Device id (pf): 8086:1593

§ Driver version: 0.12.34 (ice)

§ Intel® Corporation Ethernet Controller E810-C for SFP (2x100G)

§ Firmware version: 1.02 0x80002b68

§ Device id (pf): 8086:1592

§ Driver version: 0.12.34 (ice)

§ Intel® 82599ES 10 Gigabit Ethernet Controller

§ Firmware version: 0x61bf0001

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

§ Driver version: 5.6.1 (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 (ixgbe)

§ Intel® Corporation Ethernet Controller 10G X550T

§ Firmware version: 0x80000482

§ Device id (pf): 8086:1563

§ Driver version: 5.6.1 (ixgbe)

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

§ Firmware version: 7.20 0x800079e8

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

§ Driver version: 2.10.19.30 (i40e)

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

§ Firmware version: 4.11 0x80001def

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

§ Driver version: 2.10.19.30 (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.10.19.30 (i40e)

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

§ Firmware version: 7.20 0x80007947

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

§ Driver version: 2.10.19.30 (i40e)

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

§ Firmware version: 7.20 0x80007948

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

§ Driver version: 2.10.19.30 (i40e)

§ Intel® Corporation I350 Gigabit Network Connection

§ Firmware version: 1.63, 0x80000cbc

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

§ Driver version: 5.4.0-k (igb)

§ Intel® Corporation I210 Gigabit Network Connection

§ Firmware version: 3.25, 0x800006eb

§ Device id (pf): 8086:1533

§ Driver version: 5.4.0-k(igb)

· Intel® platforms with Mellanox®NICs combinations

o 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-2650 v4 @ 2.20GHz

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

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

o OS:

* Red Hat Enterprise LinuxServer release 7.5 (Maipo) * Red Hat Enterprise Linux Server release 7.4(Maipo) * Red Hat Enterprise Linux Server release 7.3 (Maipo) * Red HatEnterprise Linux Server release 7.2 (Maipo) * Ubuntu 18.04 * Ubuntu 16.04

o OFED:

§ MLNX_OFED 4.7-3.2.9.0

§ MLNX_OFED 5.0-0.4.1.0 and above

o upstream kernel:

§ Linux 5.5 and above

o rdma-core:

§ rdma-core-28.0-1 and above

o 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.27.1000 and above

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

§ Host interface: PCI Express 3.0 x8

§ Device ID: 15b3:1015

§ Firmware version: 14.27.1000 and above

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

§ Host interface: PCI Express 3.0 x16

§ Device ID: 15b3:1017

§ Firmware version: 16.27.1000 and above

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

§ Host interface: PCI Express 3.0 x16

§ Device ID: 15b3:1017

§ Firmware version: 16.27.1000 and above

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

§ Host interface: PCI Express 3.0 x16

§ Device ID: 15b3:1017

§ Firmware version: 16.27.1000 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.27.1000 and above

· Mellanox® BlueField SmartNIC

o Mellanox® BlueField SmartNICMT416842 (2x25G)

§ Host interface: PCI Express 3.0 x16

§ Device ID: 15b3:a2d2

§ Firmware version: 18.27.1000

o SoC Arm cores running OS:

§ CentOS Linux release 7.5.1804 (AltArch)

§ MLNX_OFED 5.0-0.4.0.0

o DPDK application running on Armcores inside SmartNIC

· IBM Power 9 platforms withMellanox® NICs combinations

o CPU:

§ POWER9 2.2 (pvr 004e 1202) 2300MHz

o OS:

§ Ubuntu 18.04.1 LTS (Bionic Beaver)

o NICs:

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

§ Host interface: PCI Express 3.0 x16

§ Device ID: 15b3:1017

§ Firmware version: 16.27.1000

o OFED:

§ MLNX_OFED 5.0-0.4.1.0

· ARMv8 SoC combinations fromMarvell (with integrated NICs)

o SoC:

§ CN83xx, CN96xx, CN93xx

o OS (Based on Marvell OCTEON TX SDK-10.3.2.x):

§ Arch Linux

§ Buildroot 2018.11

§ Ubuntu 16.04.1 LTS

§ Ubuntu 16.10

§ Ubuntu 18.04.1

§ Ubuntu 19.04

发表评论

电子邮件地址不会被公开。 必填项已用*标注