一起来看看新版本有哪些新功能和变化吧
· 新功能 ·
添加了非 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
我知道你在看哟