DPDK Release 21.11

近期,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 Release 21.11_第1张图片

转载须知

DPDK与SPDK开源社区

公众号文章转载声明

推荐阅读

基于SPDK 加速框架的高性能PMEM Bdev

SPDK的BPF Tracing

SPDK发布v21.10版本

基于TADK的应用分类

基于TADK的SQLI检测

DPDK Release 21.11_第2张图片

DPDK Release 21.11_第3张图片

点点“赞”“在看”,给我充点儿电吧~

你可能感兴趣的:(java,linux,python,大数据,小程序)