近期,DPDK团队正式发布了21.11版本,本次发布包括1875次提交,由204位作者共同完成,具体包括2413次文件修改,259559次插入(+),87876次删除(-)。
21.11版本应至少支持两年,用于系统集成和部署。
下面是本次发布的详细内容,包含函数较多,手机上建议横屏阅读~
新功能
启用了新的devargs解析器。
启用devargs语法:bus=X, paramX=x/class=Y, paramY=y/driver=Z, paramZ=z。
添加了devargs语法的bus-level解析。
解析回调保持与旧版语法的兼容性。
更新了EAL对Linux的hugetlbfs挂载处理。
修改了EAL,允许--huge-dir选项在hugetlbfs挂载点中指定一个子目录。
添加了dmadev库。
添加了DMA设备框架,用于管理和提供DMA硬件和软件设备。
添加了通用API,支持许多不同的DMA操作。
添加了多进程支持。
更新了网络设备控制回调的默认KNI行为。
更新了KNI网络设备控制回调,默认持有rtnl内核锁运行。添加了新的 enable_bifurcated KNI 内核模块参数,可以在rtnl锁释放的情况下运行回调。
添加了HiSilicon DMA驱动程序。
HiSilicon DMA驱动程序为鲲鹏的DMA设备提供设备驱动。这个设备驱动可以通过通用的dmadev API被使用。
添加了IDXD dmadev驱动程序实现。
IDXD dmadev驱动程序为Intel DSA设备提供设备驱动。这个设备驱动可以通过通用的dmadev API被使用。
添加了IOAT dmadev驱动程序实现。
英特尔I/O加速技术(IOAT)dmadev驱动程序为英特尔IOAT设备提供了设备驱动程序,如Ice Lake、Skylake和Broadwell上的Crystal Beach DMA(CBDMA)。这个设备驱动可以通过通用的dmadev API被使用。
添加了Marvell CNXK DMA驱动程序。
为Marvell OCTEONTX2和OCTEONTX3系列SoC的DPI DMA硬件加速器添加了dmadev驱动。
添加了NXP DPAA DMA驱动程序。
为NXP DPAA平台添加了新的dmadev驱动程序。
为获取一个设备的所有MAC地址添加支持。
添加了 rte_eth_macaddrs_get,允许用户检索特定以太网端口的所有以太网地址。
引入了GPU设备类。
引入了具有初始功能的GPU设备类:
设备信息。
内存管理。
通信标志和列表。
添加了以CUDA库实现的NVIDIA GPU驱动程序。
在新的GPU设备接口下添加了用CUDA库实现的NVIDIA GPU驱动程序。
在RSS流中添加了IPv4/L4校验这个新的RSS卸载类型。
添加了ETH_RSS_IPV4_CHKSUM和ETH_RSS_L4_CHKSUM宏。IPv4和TCP/UDP/SCTP头部的校验字段现在可以用作RSS的输入集。
在流API中添加了L2TPv2和PPP协议支持。
为L2TPv2和PPP协议添加了流模式项目和头部格式。
添加了流flex项目。
可配置的流flex项目能够引入任意一种用户指定的网络协议头部,相应地配置硬件,并以所需模式和掩码在头部执行匹配。
添加了ethdev支持,可控制Rx元数据从HW到PMD的传递。
添加了新的API rte_eth_rx_metadata_negotiate()。定义了Rx 元数据的下面部分:
RTE_ETH_RX_METADATA_USER_FLAG
RTE_ETH_RX_METADATA_USER_MARK
RTE_ETH_RX_METADATA_TUNNEL_ID
添加了API来获取代理端口,管理“转移”流。
添加了新的API rte_flow_pick_transfer_proxy。
添加了对ethdev共享Rx队列的支持。
为交换信息添加了新的设备能力标志和Rx域字段。
在Rx队列配置添加了共享组和共享队列ID。
添加了testpmd支持和专用转发引擎。
更新了af_packet ethdev驱动程序。
默认的VLAN 剥离行为已经更改。除非启用DEV_RX_OFFLOAD_VLAN_STRIP卸载,否则不会剥离VLAN标签。
添加了API以获取ethdev的设备配置。
添加了ethdev API,帮助用户获取设备配置。
更新了AF_XDP PMD。
进程间共享的状态不足会造成进程崩溃,因此禁用了二级进程支持。下一个版本会修复/重新启用该功能。
更新了Amazon ENA PMD。
更新了Amazon ENA PMD。新版驱动程序(v2.5.0)对bug做了修复和改进,主要包括:
支持tx_free_thresh 和 rx_free_thresh 配置参数。
为队列辅助结构体提供NUMA感知分配。
添加看门狗定时器功能来检查缺失的Tx completions。
更新了Broadcom bnxt PMD。
为Thor添加了流卸载支持。
为TruFlow和AFM SRAM添加了分区支持。
实现了对隧道卸载的支持。
将HWRM API更新至1.10.2.68版本。
为目标IP和端口组合添加了NAT支持。
为套接字重定向添加支持。
为输入流的通配符匹配添加支持。
为GRE隧道流的内部IP头添加支持。
更新了对流规则中RSS动作的支持。
删除了统计数据积累的devargs选项。
更新了Cisco enic驱动程序。
为匹配的GTP、GTP-C和GTP-U头添加rte_flow支持。
更新了英特尔e1000模拟驱动程序。
在Windows添加了Intel e1000支持。
更新了Intel iavf驱动程序。
在Windows添加了Intel iavf支持。
在RSS流中添加了IPv4和L4(TCP/UDP/SCTP)校验哈希支持。
基于内部IP地址和TCP/UDP端口,添加了PPPoL2TPv2oUDP RSS哈希。
添加了英特尔iavf inline加密支持。
更新了Intel ice驱动程序。
在Flow Director中添加了协议无关的流卸载支持。
在RSS哈希中添加了协议无关的流卸载支持。
通过devargs添加了1PPS输出支持。
在RSS流中添加了IPv4和L4(TCP/UDP/SCTP)校验哈希支持。
添加了DEV_RX_OFFLOAD_TIMESTAMP支持。
在scalar路径下添加了timesync API支持。
添加了DCF重置API的支持。
更新了Intel ixgbe驱动程序
在Windows添加了Intel ixgbe支持。
更新了Marvell cnxk ethdev驱动程序。
为双VLAN插入和剥离动作添加rte_flow支持。
添加了 rte_tm 支持。
为CN9K事件模式、CN10K轮询模式和事件模式添加了Inline IPsec的支持。
为CN10K平台添加了对入口meter的支持。
更新了Mellanox mlx5驱动程序。
更新了Mellanox mlx5驱动程序,新功能和改进包括:
添加了隐式mempool注册,避免数据路径出现hiccup问题(选择退出)。
对Rx队列的延迟丢弃添加支持。
为Windows的PMD添加了网卡卸载(TSO、VLAN strip、CRC keep)。
添加了套接字bonding 模式支持。
添加了NXP ENETFEC PMD(实验性)。
为NXP IMX8MMEVK平台添加了新的ENETFEC驱动程序。想了解这个新驱动的更多细节,请参阅ENETFEC轮询模式网卡驱动指南(http://doc.dpdk.org/guides/nics/enetfec.html)。
更新了Solarflare network PMD。
更新了Solarflare sfc_efx驱动程序,改动包括:
在SN1000 SmartNIC上添加了端口representor支持。
添加了流API传输代理支持。
添加了SN1000虚拟功能(VF)支持。
为没有服务核的流计数器添加支持。
为SN1022 SoC上所需的区域化DMA映射添加支持。
在vhost库中添加了电源监控API。
在vhost库中添加了支持电源监控的API。
更新了vhost PMD。
在vhost PMD中添加了电源监控支持。
更新了virtio PMD。
已在Virtio PMD添加了RSS接收模式的初步支持,应用程序可以配置哈希密钥、RETA和哈希类型。Virtio哈希reporting还有待添加。
在virtio PMD中添加了电源监控支持。
更新了Wangxun ngbe驱动程序。
在RxTx添加了卸载和数据包类型。
添加了VLAN和MAC过滤。
添加了设备基本统计和扩展统计。
添加了多队列和RSS。
添加了SRIOV。
添加了流控制。
添加了IEEE 1588。
添加了基于Xilinx设备的新vDPA PMD。
添加了一个新的 Xilinx vDPA(sfc_vdpa)PMD。请参阅Xilinx vDPA 驱动程序指南(http://doc.dpdk.org/guides/vdpadevs/sfc.html),了解有关该驱动程序的更多细节。
为cryptodev库添加了telemetry回调。
添加了telemetry回调函数,允许查询加密设备、加密设备的统计信息和其他设备信息。还添加了回调功能,获取cryptodev功能。
添加telemetry到security 库。
添加了telemetry回调函数,查询加密设备的安全功能。
更新了Marvell cnxk crypto PMD。
为CN10K的lookaside协议(IPsec)添加了AES-CBC SHA1-HMAC支持。
为CN10K的lookaside协议(IPsec)添加了传输模式支持。
为CN10K的lookaside协议(IPsec)添加了UDP封装支持。
为CN9K的lookaside协议(IPsec)添加了卸载支持。
为CN10K添加了256位密钥长度的ZUC算法支持。
为CN98xx dual block添加支持。
为CN10K的lookaside协议(IPsec)添加了内部校验支持。
为CN10K的lookaside协议(IPsec)添加了AES-CBC NULL auth支持。
为CN9K的lookaside协议(IPsec)添加了ESN和防重放支持。
添加了对Marvell CN10K和CN9K的事件加密适配器的支持。
添加了事件加密适配器OP_FORWARD模式支持。
更新了Mellanox mlx5加密驱动程序。
添加了对Windows的支持。
添加了对BlueField 2和ConnectX-6 Dx的支持。
更新了NXP dpaa_sec 加密 PMD。
添加了DES-CBC、AES-XCBC-MAC、AES-CMAC和non-HMAC算法支持。
添加了PDCP短MAC-I支持。
添加了原始矢量datapath API支持。
更新了NXP dpaa2_sec 加密 PMD。
添加了PDCP短MAC-I支持。
添加了原始矢量datapath API支持。
为整合IPsec_MB 相关软件加密 PMD添加了框架。
添加了 IPsec_MB 框架,以在依赖于intel-ipsec-mb 库的Intel 软件加密 PMD 之间共享通用代码。
为整合的PMD添加了多进程支持,需要intel-ipsec-mb库的v1.1版本。
以下PMD被移到一个单一的源文件夹中,而它们的用法和EAL选项保持不变。
* AESNI_MB PMD
* AESNI_GCM PMD
* KASUMI PMD
* SNOW3G PMD
* ZUC PMD
* CHACHA20_POLY1305- 一个新的PMD。
更新了aesni_mb 加密 PMD。
添加了对ZUC-EEA3-256和ZUC-EIA3-256的支持。
为Snow3G PMD添加了摘要附加操作支持。
为out-of-place auth-cipher操作添加支持,将摘要和其他原始数据一起加密。
为进行auth-cipher操作时对部分已加密的摘要添加支持。
更新了ACC100 bbdev PMD。
添加了更全面的CRC选项支持。
更新了turbo_sw bbdev PMD。
添加了更全面的CRC选项支持。
添加了NXP LA12xx baseband PMD。
为NXP LA12xx 软件定义的radio添加了一个新的baseband PMD。
更多细节请参见NXP LA12xx 轮询模式驱动程序(http://doc.dpdk.org/guides/bbdevs/la12xx.html)。
更新了Mellano压缩驱动程序。
添加了devargs选项,允许手动设置Huffman块大小。
更新了Mellanox regex驱动程序。
为新的ROF文件格式添加支持。
更新了IPsec库。
为更多AEAD算法--AES_CCM、CHACHA20_POLY1305和AES_GMAC添加支持。
为NAT-T / UDP封装ESP添加支持。
为SA telemetry添加支持。
为设置一个非默认起始ESN值添加支持。
为inline加密模式的TSO添加支持。
添加了优化的Toeplitz哈希实现。
使用Galois Fields新指令,添加了优化的Toeplitz哈希实现。
为testpmd添加了多进程支持。
添加了命令行选项,以指定进程总数和当前进程ID。每个进程拥有一个Rx和Tx队列的子集。
为test-crypto-perf应用程序更新了新案例。
为不对称加密的吞吐量性能测试添加支持。目前只支持modex。
为lookaside IPsec协议卸载吞吐量测试添加支持。
在dpdk-test中添加了lookaside协议(IPsec)测试:
添加已知矢量测试(AES-GCM 128、192、256)。
添加验证ICV损坏时的错误报告的测试。
添加验证IV生成的测试。
添加验证UDP封装的测试。
添加验证UDP封装端口的测试。
添加验证数据包soft expiry的测试。
添加验证数据包hard expiry的测试。
添加验证IPsec入站的隧道头部的测试。
添加验证内部校验的测试。
为CHACHA20_POLY1305 PMD添加测试,包括SGL OOP的新测试案例。
更新了l3fwd示例应用程序。
所有查询模式(LPM、EM和FIB)的路由数量添加到16条。支持用多个以太网设备来验证SoC。
更新了EM模式,使用RFC2544保留的IP地址空间和RFC863 UDP丢弃协议。
更新了IPsec安全网关示例应用程序,添加新功能。
添加了TSO支持(只针对inline加密TCP数据包)。
添加了telemetry支持。
添加了更多AEAD算法支持,包括AES-GMAC, AES_CTR, AES_xcbc_MAC, AES_CCM 和CHACHA20_POLY1305。
添加了对inline 协议卸载模式的事件矢量的支持。
修订了数据包捕获框架。
新的 dpdk-dumpcap 程序具有 wireshark dumpcap 工具的大部分功能,包括:捕获多个接口,过滤,以及在一定字节数、数据包数之后停止捕获。
添加用于编写 pcapng 数据包捕获文件的新库。
增强pdump库的支持:
* 带有BPF的数据包过滤。
* 带有时间戳和元数据的Pcapng格式。
* 修复了已剥离VLAN tag的数据包捕获。
添加了ASan支持。
添加了ASan/AddressSanitizer支持。AddressSanitizer是一种广泛使用的调试工具,用于检测内存访问错误。它可以检测C/C++程序中出现的释放再使用、各种缓冲区溢出等其他类似错误,而且检测到错误时会打印出详细的调试信息。
已删除的项目
eal:删除了已弃用函数rt_get_master_lcore()和迭代宏RTE_LCORE_FOREACH_SLAVE。
eal:删除了黑名单/白名单弃用的旧API参数。用户必须使用新的分段或允许的列表参数。
mbuf:删除了卸载标志 PKT_RX_EIP_CKSUM_BAD。使用 PKT_RX_OUTER_IP_CKSUM_BAD 标志替代。
ethdev:删除了端口镜像 API。应该使用更fine-grain的流API动作RTE_FLOW_ACTION_TYPE_SAMPLE来代替。删除了 rte_eth_mirror_conf 和 rte_eth_vlan_mirror 结构体、rte_eth_mirror_rule_set 和 rte_eth_mirror_rule_reset 函数以及相关宏 ETH_MIRROR_*。
ethdev:删除了 rte_eth_rx_descriptor_done() API 函数及其驱动回调,用更完整的函数 rte_eth_rx_descriptor_status() 替代。
ethdev:删除了struct rte_flow_action_count的已弃用的shared属性。应该使用间接操作API(rte_flow_action_handle_create等)管理共享计数器。
i40e:删除了i40evf驱动程序。iavf已是i40e设备的默认VF驱动程序,因此不必再维护i40evf。
API变更
eal:lcore的FINISHED状态已从enum rte_lcore_state_t删除。Icore的状态WAIT足以代表相同状态。
eal:隐藏 rte_intr_handle 结构体定义。
kvargs:实验性函数 rte_kvargs_strcmp() 已被删除,用新函数 rte_kvargs_get_with_value() 取代。
cmdline:目前cmdline_stdin_exit() 释放了 cmdline 结构体。在它之后对 cmdline_free() 的调用需要从应用程序中删除。
cmdline:在Linux和FreeBSD上隐藏cmdline结构体定义。
cmdline:隐藏rdline结构体定义。添加了函数以支持动态分配和释放,并在回调中访问用户数据。
mempool:添加了 RTE_MEMPOOL_F_NON_IO 标志,以提示 DPDK 组件:该池中的对象将不会用于IO设备(例如 DMA)。
mempool:会在以后弃用mempool标志MEMPOOL_F_*。添加带有RTE_MEMPOOL_F_前缀的新标志进行替换。
mempool:Helper宏MEMPOOL_HEADER_SIZE()已被弃用。替代的宏RTE_MEMPOOL_HEADER_SIZE()只在内部使用。
mempool:用于注册mempool驱动程序的宏MEMPOOL_REGISTER_OPS()已被弃用。使用 RTE_MEMPOOL_REGISTER_OPS()进行替代。
mempool:mempool API 宏 MEMPOOL_PG_* 已被弃用,并将在 DPDK 22.11 中删除。
mbuf:将mbuf 卸载标志 PKT_* 重新命名为 RTE_MBUF_F_*。在 DPDK 22.11 发布前会保留兼容性。
net:分别将 rte_ether_hdr 结构体的 s_addr 和 d_addr 字段重命名为 src_addr 和 dst_addr。
net:在 rte_ipv4_hdr 结构体中添加了version和 ihl 位字段。 为了向后兼容,保留了现有的 version_ihl 字段。
ethdev:在 flow API 中添加了 PORT_REPRESENTOR, REPRESENTED_PORT 项目和操作。
ethdev:弃用了 PF, VF, PHY_PORT, PORT_ID 等项目和操作。建议用 PORT_REPRESENTOR, REPRESENTED_PORT 等代替。
ethdev:弃用了ingress/egress和transfer 结合的属性使用 。具体参见 PORT_REPRESENTOR和REPRESENTED_PORT项目。
ethdev:更新了rte_flow_action_modify_data结构体,扩展了临时数据数组,显式将数据指针字段添加到联合字段,更严格地定义了该操作行为,并更新了文档。更改了临时数据操作,应该提供完整的临时字段,从目标字段分配临时源位字段的偏移量。
vhost:vDPA 驱动接口rte_vdpa_register_device, rte_vdpa_unregister_device, rte_vhost_host_notifier_ctrl 和 rte_vdpa_relay_vring_used被标记为内部函数。
cryptodev:将API rte_cryptodev_pmd_is_valid_dev() 修改为 rte_cryptodev_is_valid_dev() ,以此通过应用程序或PMD使用该API,检查设备是否有效。
cryptodev:将rte_cryptodev_pmd.* 文件重新命名为 cryptodev_pmd.*,因为它们只用于驱动程序,是DPDK的私有文件,不能安装给应用程序使用。
cryptodev:将 rte_crypto_op 结构体中的reserved字节重命名为 aux_flags,以指示来自加密/安全操作的警告等信息。可将该字段用于沟通事件,如lookaside模式下IPsec软件到期。
cryptodev:将rte_crypto_cipher_xform结构体的字段dataunit_len移到结构体末端,并扩展为uint32_t。
cryptodev:更新了 rte_crypto_vec 结构体,添加了 tot_len 字段以支持总的缓冲区长度,方便协议卸载案例。
cryptodev:更新了 rte_crypto_sym_vec 结构体,添加了 dest_sgl 字段,以支持错位处理。
bbdev:添加了与数据字节次序处理有关的设备信息。
eventdev:将定时适配器使用的内存移至 hugepage。这可以防止TLB缺失,和其他子系统的内存结构体保持一致。
fib:在 rte_fib_conf 和 rte_fib6_conf 中添加了 rib_ext_sz 字段,以便用户指定 FIB 内的 RIB 扩展大小。
ip_frag:更新所有宏拥有RTE_IP_FRAG_前缀。仍保留过去的宏以便于兼容。更新DPDK组件,使用新命名。将实验函数 rte_frag_table_del_expired_entries() 重命名为 rte_ip_frag_table_del_expired_entries(),以符合其他公共 API 的命名规则。
ABI变更
ethdev:更新了所有枚举和宏,添加 RTE_ETH 前缀,结构体也更新拥有 rte_eth 前缀。更新了DPDK组件,使用新命名。
ethdev:变更了eth_rx_queue_count_t 的输入参数。不再使用指向 rte_eth_dev和队列索引的指针,而是将指向内部队列数据的指针作为输入参数。虽然该变更对用户而言是透明的,但因为公共inline函数 rte_eth_rx_queue_count 使用了eth_rx_queue_count_t,它仍然可算作 ABI 变更。
ethdev:将 rte_eth_dev, rte_eth_dev_data, rte_eth_rxtx_callback 变为私有数据结构体。 rte_eth_devices[] 不能再被用户直接访问。虽然这是一个ABI破损,但这个更改对于用户(不需要改变用户应用程序)和 PMD 开发者(不需要改变 PMD)来说都是透明的。
vhost:将struct vhost_device_ops 重命名为struct rte_vhost_device_ops。
cryptodev:将 rte_cryptodev, rte_cryptodev_data 变更为DPDK 内部私有结构体。虽然这是一个 ABI 破损,但这个更改对于用户(不需要改变用户应用程序)和 PMD 开发者(不需要改变 PMD)来说都是透明的。
security:inline出入站的安全处理所使用的 rte_security_set_pkt_metadata和 rte_security_get_userdata 例程更改为inline支持,并增强为支持 PMD 的简单 64 位设置/获取,这些 PMD 特定回调中没有太多的处理,只有 64 位设置/获取。此更改能够阻隔PMD每个数据包函数指针跳转的开销。
security:在rte_security_ipsec_sa_options结构体中添加了新选项iv_gen_disable,以防止PMD的IV生成,应用程序就可以为自己提供IV并测试已知的测试向量。
security:在rte_security_ipsec_sa_options结构体中添加了新选项tunnel_hdr_verify,以指示是否需要在入站IPsec处理中进行外部头部验证。
security:在结构体 rte_security_ipsec_sa_options 中添加了新选项 udp_ports_verify,以指示是否需要将 UDP 端口验证作为入站 IPsec 处理的一部分。
security:添加了新结构体 rte_security_ipsec_lifetime 来代替 IPsec 配置结构体 rte_security_ipsec_xform 中的 esn_soft_limit,以允许应用程序配置 SA 的软、硬到期限制。可以限制数据包的数量,也可以是字节的数量。
security:在rte_security_ipsec_sa_options结构体中添加了新选项ip_csum_enable和l4_csum_enable,用于指示是否需要将内部数据包IPv4头部校验和L4校验卸载到安全设备。
security:在rte_security_ipsec_xform结构体中添加了新结构体esn,用于设置初始ESN值。更改后应用程序可以从任意ESN值开始,用于调试和SA生命周期实施目的。
security:在rte_security_ipsec_xform结构体中添加了新结构体udp,允许为UDP封装的IPsec流设置源端口和目标端口。
bbdev:添加了更全面的CRC选项的相关功能,转移了rte_bbdev_op_ldpcdec_flag_bitmasks枚举的值。
eventdev:在结构体 rte_event_eth_rx_adapter_stats 中添加了新变量 rx_event_buf_count 和 rx_event_buf_size,以获取额外状态。
eventdev:添加了新结构体 rte_event_fp_ops,为 fastpath inline函数使用。rte_eventdev和rte_eventdev_data这两个结构体已更改为内部结构体。 rte_eventdevs[] 不能再被用户直接访问。这一变化对应用程序和PMD都是透明的。
eventdev:重新安排了rte_event_timer中的字段,消除漏洞。
ip_frag:将配置参数RTE_LIBRTE_IP_FRAG_MAX_FRAG的默认值从4添加到8。该参数控制IP重组表中每个数据包的最多分片数。更改后能够覆盖9000B的巨型数据包和1500B默认帧大小的常见情况。
测试平台
Intel® platforms with Intel® NICs combinations
CPU
Intel® Atom™ CPU C3758 @ 2.20GHz
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 6140M CPU @ 2.30GHz
Intel® Xeon® Gold 6139 CPU @ 2.30GHz
Intel® Xeon® Gold 6252N CPU @ 2.30GHz
Intel® Xeon® Gold 6348 CPU @ 2.60GHz
Intel® Xeon® Platinum 8180M CPU @ 2.50GHz
Intel® Xeon® Platinum 8280M CPU @ 2.70GHz
OS:
Fedora 34
OpenWRT 21.02.0
FreeBSD 13.0
Red Hat Enterprise Linux Server release 8.4
Suse 15 SP3
Ubuntu 20.04.3
Ubuntu 21.10
NICs:
Intel® Ethernet Controller E810-C for SFP (4x25G)
Firmware version: 3.10 0x8000aa86 1.3100.0
Device id (pf/vf): 8086:1593 / 8086:1889
Driver version: 1.7.11_7_g444e5edb (ice)
OS Default DDP: 1.3.27.0
COMMS DDP: 1.3.31.0
Wireless Edge DDP: 1.3.7.0
Intel® Ethernet Controller E810-C for QSFP (2x100G)
Firmware version: 3.10 0x8000aa66 1.3100.0
Device id (pf/vf): 8086:1592 / 8086:1889
Driver version: 1.7.11_7_g444e5edb (ice)
OS Default DDP: 1.3.27.0
COMMS DDP: 1.3.31.0
Wireless Edge DDP: 1.3.7.0
Intel® 82599ES 10 Gigabit Ethernet Controller
Firmware version: 0x61bf0001
Device id (pf/vf): 8086:10fb / 8086:10ed
Driver version(in-tree): 5.1.0-k (ixgbe)
Driver version(out-tree): 5.13.4 (ixgbe)
Intel® Ethernet Converged Network Adapter X710-DA4 (4x10G)
PF Firmware version: 8.30 0x8000a49d 1.2926.0
VF Firmware version: 8.50 0x8000b6d9 1.3082.0
Device id (pf/vf): 8086:1572 / 8086:154c
Driver version: 2.17.4 (i40e)
Intel® Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
Firmware version: 5.30 0x80002a29 1.2926.0
Device id (pf/vf): 8086:37d0 / 8086:37cd
Driver version: 2.17.4 (i40e)
Intel® Corporation Ethernet Connection X722 for 10GBASE-T (2x10G)
Firmware version: 5.40 0x80002e2f 1.2935.0
Device id (pf/vf): 8086:37d2 / 8086:37cd
Driver version: 2.17.4 (i40e)
Intel® Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
PF Firmware version: 8.30 0x8000a483 1.2926.0
VF Firmware version: 8.50 0x8000b703 1.3082.0
Device id (pf/vf): 8086:158b / 8086:154c
Driver version: 2.17.4 (i40e)
Intel® Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
PF Firmware version: 8.30 0x8000a4ae 1.2926.0
VF Firmware version: 8.50 0x8000b6c7 1.3082.0
Device id (pf/vf): 8086:1583 / 8086:154c
Driver version: 2.17.4 (i40e)
Intel® Ethernet Converged Network Adapter X710-T2L
Firmware version: 8.30 0x8000a489 1.2879.0
Device id (pf): 8086:15ff
Driver version: 2.17.4 (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-2650 v3 @ 2.30GHz
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.5-0.5.9.0 and above
MLNX_OFED 5.4-3.1.0.0
upstream kernel:
Linux 5.16.0-rc2 and above
rdma-core:
rdma-core-37.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.32.0570 and above
Mellanox® ConnectX®-4 Lx 50G MCX4131A-GCAT (1x50G)
Host interface: PCI Express 3.0 x8
Device ID: 15b3:1015
Firmware version: 14.32.0570 and above
Mellanox® ConnectX®-5 100G MCX516A-CCAT (2x100G)
Host interface: PCI Express 3.0 x16
Device ID: 15b3:1017
Firmware version: 16.32.0570 and above
Mellanox® ConnectX®-5 100G MCX556A-ECAT (2x100G)
Host interface: PCI Express 3.0 x16
Device ID: 15b3:1017
Firmware version: 16.32.0570 and above
Mellanox® ConnectX®-5 100G MCX556A-EDAT (2x100G)
Host interface: PCI Express 3.0 x16
Device ID: 15b3:1017
Firmware version: 16.32.0570 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.32.0570 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.32.0570 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.32.0570 and above
Mellanox® BlueField® SmartNIC
Mellanox® BlueField® 2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
Host interface: PCI Express 3.0 x16
Device ID: 15b3:a2d6
Firmware version: 24.32.0570 and above
Embedded software:
Ubuntu 20.04.3
MLNX_OFED 5.5-0.5.8 and above
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.32.0560
Mellanox® ConnectX®-6 Dx 100G MCX623106AN-CDAT (2x100G)
Host interface: PCI Express 4.0 x16
Device ID: 15b3:101d
Firmware version: 22.32.0560
OFED:
MLNX_OFED 5.5-0.5.9.0
NXP ARM SoCs (with integrated NICs)
SoC:
NXP i.MX 8M Mini with ARM Cortex A53, Cortex M4
OS (Based on NXP LF support packages):
Kernel version: 5.10
Ubuntu 18.04
转载须知
DPDK与SPDK开源社区
公众号文章转载声明
推荐阅读
基于SPDK 加速框架的高性能PMEM Bdev
SPDK的BPF Tracing
SPDK发布v21.10版本
基于TADK的应用分类
基于TADK的SQLI检测
点点“赞”和“在看”,给我充点儿电吧~