DPDK Release 20.08

tech2022-08-29  118

一起来看看新版本有哪些新功能和变化吧

· 新功能 ·

添加了非 EAL 线程注册 API

添加了新的API,将非EAL线程注册为lcores。应用程序使用它之后,DPDK就能识别其线程,性能方面不会再受到以前非EAL的限制。

更新了rte_*mb APIs,以使用ARMv8的DMB指令

ARMv8内存模型已得到增强,需要其他多拷贝原子性。这样就可以用DMB指令代替DSB来实现IO屏障。用于ARMv8平台的rte_ * mb API已更改为使用DMB指令。

在mempool ring驱动程序中添加了对RTS和HTS模式的支持

添加了选择新ring同步模式的功能:通过mempool ops API实现 relaxed tail sync (ring_mt_rts) 和head/tail sync (ring_mt_hts) 

添加了对 vfio-pci 新 VF token接口的支持

从Linux 5.7开始,vfio-pci支持绑定SR-IOV PF和被创建的VF,它用共享的VF token(UUID)来表示PF和VF之间的协作。DPDK PCI驱动程序已更新,可以通过附加VF token参数来访问PF和VF设备。

添加了 RegEx 库,这是一个通用的 RegEx 服务库。

添加了RegEx库,该库提供了一个API,用于将正则表达式搜索操作卸载到硬件或软件加速器设备。

添加了Mellanox RegEx PMD,可以卸载RegEx搜索。

添加了vhost异步数据路径API

添加了4个新的API以启用vhost异步数据路径,其中包括:

异步设备通道注册/注销API

异步数据包入队/完成API(仅在split ring中实现)

添加了vDPA设备API来查询virtio队列统计信息。

添加了新的vDPA API,以查询virtio队列统计信息,获取其名称并进行重置。

更新了Mellanox mlx5 vDPA驱动程序

更新的Mellanox mlx5 vDPA驱动程序具有以下新功能,包括:

添加了对virtio队列统计信息的支持。

添加了对MTU更新的支持。

在rte_flow中添加了eCPRI协议支持。

添加了ECPRI项以支持5G网络的eCPRI数据包卸载。

引入了基于时间戳的发送数据包调度

添加了新的mbuf动态字段和标志,提供可以同步数据包传输的时间戳。添加了设备Tx卸载标志,表示PMD支持发送调度。

更新了PCAP驱动程序

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

支持软件 Tx 纳秒级的时间戳精度

更新了博通bnxt驱动程序

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

添加了对VF representors的支持。

添加了对多种设备的支持。

添加了对新资源管理器API的支持。

添加了对VXLAN encap/decap的支持。

添加了对COUNT操作的rte_flow_query的支持。

添加了对rx_burst_mode_get和tx_burst_mode_get的支持。

添加了对ARM CPU的矢量模式支持。

添加了对VLAN推送和弹出操作的支持。

添加了对NAT操作项的支持。

添加了TruFlow哈希API,以实现跨TruFlow核心功能的常见哈希使用。

更新了Cisco enic 驱动程序

添加了对VLAN推送和弹出流操作的支持。

更新了海思 hns3 驱动程序

添加了对200G 速率的支持。

添加了对铜介质类型的支持。

添加了保持CRC的支持。

添加了对LRO的支持。

添加了通过PF驱动程序设置VF PVID的功能。

更新了英特尔ice驱动程序

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

添加了对DCF数据路径配置的支持。

添加了用于switch filter的更多PPPoE数据包类型。

添加了对IPv6 32位、48位和64位前缀的RSS支持。

添加了对GTPU,L2TP,ESP,AH,PFCP和PPPoE的RSS支持。

添加了GTPU外层IPv4和IPv6对FDIR filter的支持。

更新了英特尔iavf驱动程序

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

添加了GTPU外层IPv4和IPv6对FDIR filter的支持。

添加了对GTPU的IPv6 RSS支持。

更新了英特尔i40e驱动程序

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

支持仅具有SRC端口或DST端口的IPv4/6_TCP/UDP/SCTP的cloud filter

在私有API中重新实现了get_fdir_info 和get_fdir_stat

在私有API中重新实现了set_gre_key_len 

添加了对流查询RSS的支持。

更新了英特尔ixgbe驱动程序

英特尔ixgbe驱动程序作出了以下更新和改进,其中包括:

在私有API中重新实现了get_fdir_info 和get_fdir_stat 

更新了Marvell octeontx2 ethdev PMD

Marvell octeontx2驱动程序更新了对cn98xx的支持。

更新了Mellanox mlx5网络驱动程序和公共层。

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

添加了mlx5 PCI层,可以在多个PMD之间共享PCI设备。

添加了对eCPRI协议卸载的支持。

添加了devargs选项 reclaim_mem_mode, sys_mem_en, lacp_by_user 和 decap_en

更新了NXP dpaa ethdev PMD

NXP dpaa ethdev作出了以下更新和改进,其中包括:

添加了对链接状态和中断的支持。

添加了支持使用非 EAL pthread 使用数据路径 的API。

更新了NXP dpaa2 ethdev PMD

NXP dpaa2 ethdev作出了以下更新和改进,其中包括:

添加了使用非 EAL pthread 的数据路径 API 的支持。

添加了对动态流管理的支持。

在rte_security中添加了DOCSIS 协议。

在rte_security  API中添加了支持对于DOCSIS协议的组合加密和CRC操作。

更新了AESNI MB加密PMD。

在rte_security API,添加了对DOCSIS的Lookaside协议卸载的支持。

更新了QuickAssist Technology(QAT)加密PMD。

通过 rte_security API,在QAT 加密PMD中添加了对DOCSIS的Lookaside协议卸载的支持。

在QAT 加密 PMD中添加了Chacha20-Poly1305 AEAD 算法。

改进了QAT加密和压缩PMD中的多进程处理。

添加了对Intel GEN2 QuickAssist设备200xx的支持(PF设备ID为0x18ee,VF设备ID为0x18ef)。

更新了OCTEON TX2 加密PMD

在OCTEON TX2加密PMD中,添加了Chacha20-Poly1305 AEAD算法支持。

更新了OCTEON TX2加密PMD,以支持IPsec的rte_security 后备协议卸载。

添加了对BPF_ABS / BPF_IND加载指令的支持。

添加了对两个BPF非通用指令的支持:(BPF_ABS | <size> | BPF_LD) 和 (BPF_IND | <size> | BPF_LD) 。它们可以用于安全地访问数据包数据。目前,仅限在X86中实现这些指令的JIT支持。

添加了新的testpmd转发模式。

在testpmd中添加了新的5tswap转发模式。5tswap将第2、3、4层中的源和目标交换。L3中支持ipv4和ipv6,L4支持UDP和TCP。

添加了流量性能测试应用程序。

添加了新的应用程序以测试rte_flow 性能,包括:

测量rte_flow 插入率。

测量rte_flow 删除率。

转储rte_flow 内存消耗。

测量每秒转发的数据包。

在l2fwd示例中添加了–portmap命令行参数。

添加了新的命令行选项 --portmap="(port, port)[,(port, port)]" , 以传递转发端口详细信息。有关此参数用法的更多详细信息,参见L2 Forwarding Sample Application (in Real and Virtualized Environments) 

更新了ipsec-secgw示例应用程序。

添加了基于rte_flow 的规则,该规则允许硬件解析并引导入口数据包到特定的NIC队列。有关更多详细信息,参见 IPsec Security Gateway Sample Application。

·删除的项目 ·

删除了基于RTE_KDRV_NONE 的PCI设备驱动探测。

· API 变更 ·

将rte_page_sizes 枚举替换为RTE_PGSIZE_xxx 定义。

vhost: rte_vhost_host_notifier_ctrl 的 API 更改为每个队列而不是每个设备,参数列表中增加了一个 qid 参数。

· ABI 变更 ·

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

· 已知问题 ·

mlx5 PMD在带有OFED 5.1-0.6.6.0的Power 9上不起作用

考虑使用较新的OFED版本,或者以前的OFED 5.0-2.1.8.0,或者上游rdma-core库v29及更高版本。

· 经过测试的平台 ·

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 7.7

CentOS 8.0

CentOS 8.2

Fedora 32

FreeBSD 12.1

OpenWRT 19.07

Red Hat Enterprise Linux Server release 8.2

Suse15 SP1

Ubuntu 16.04

Ubuntu 18.04

Ubuntu 20.04

  NICs:

Intel® 82599ES 10 Gigabit Ethernet Controller

Firmware version: 0x61bf0001

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

Driver version: 5.7.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-k (ixgbe)

Intel® Corporation Ethernet Controller 10G X550T

Firmware version: 0x80000482

Device id (pf): 8086:1563

Driver version: 5.7.1 (ixgbe)

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

Firmware version: 7.20 0x800079e8 1.2585.0

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

Driver version: 2.12.6 (i40e)

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

Firmware version: 4.11 0x80001def 1.1999.0

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

Driver version: 2.12.6 (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.12.6 (i40e)

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

Firmware version: 7.30 0x800080a2 1.2658.0

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

Driver version: 2.12.6 (i40e)

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

Firmware version: 7.30 0x800080ab 1.2658.0

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

Driver version: 2.12.6 (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® 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: 7.30 0x80008061 1.2585.0

Device id (pf): 8086:15ff

Driver version: 2.12.6(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.0-2.1.8.0

MLNX_OFED 5.1-0.6.6.0 and above

  upstream kernel:

Linux 5.8.0-rc6 and above

  rdma-core:

rdma-core-30.0-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.28.1002 and above

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

Host interface: PCI Express 3.0 x8

Device ID: 15b3:1015

Firmware version: 14.28.1002 and above

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

Host interface: PCI Express 3.0 x16

Device ID: 15b3:1017

Firmware version: 16.28.1002 and above

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

Host interface: PCI Express 3.0 x16

Device ID: 15b3:1017

Firmware version: 16.28.1002 and above

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

Host interface: PCI Express 3.0 x16

Device ID: 15b3:1017

Firmware version: 16.28.1002 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.28.1002 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.28.1002 and above

Mellanox® BlueField® SmartNIC

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

Host interface: PCI Express 3.0 x16

Device ID: 15b3:a2d2

Firmware version: 24.28.1002

o   Embedded software:

CentOS Linux release 7.6.1810 (AltArch)

MLNX_OFED 5.1-0.6.2

DPDK application running on Arm cores

IBM Power 9 platforms with Mellanox® NICs combinations

  CPU:

POWER9 2.2 (pvr 004e 1202) 2300MHz

  OS:

Red Hat Enterprise Linux Server release 7.6

  NICs:

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

Host interface: PCI Express 4.0 x16

Device ID: 15b3:1017

Firmware version: 16.28.1002

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

Host interface: PCI Express 4.0 x16

Device ID: 15b3:101d

Firmware version: 22.28.1002

  OFED:

MLNX_OFED 5.0-2.1.8.0

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

ntel® Xeon® Silver 4110 CPU @ 2.10GHz

  OS:

Red Hat Enterprise Linux Server release 8.1

Red Hat Enterprise Linux Server release 7.6

Red Hat Enterprise Linux Server release 7.5

Ubuntu 16.04

Centos 8.1

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.81.0 and above

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

Host interface: PCI Express 3.0 x16

Firmware version: 216.4.259.0 and above

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

Host interface: PCI Express 3.0 x16

Firmware version: 216.1.259.0 and above

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

Host interface: PCI Express 4.0 x16

Firmware version: 216.1.259.0 and above

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

Host interface: PCI Express 4.0 x16

Firmware version: 216.1.259.0 and above

Broadcom® NetXtreme-S® Series SmartNIC

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

Host interface: PCI Express 3.0 x8

Firmware version: 217.0.59.0

o Embedded software:

Broadcom Yocto Linux

Kernel version: 4.14.174

DPDK application running on 8 Arm Cortex-A72 cores

转载须知

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

相关阅读

DPDK Release 20.05

DPDK Release 20.02

我知道你在看哟

最新回复(0)