DPDK Release 20.11

圣诞

CHRISTMAS

MERRY

快乐

一起来看看DPDK 20.11有哪些新功能和变化吧

温馨提示:英文函数名较长,为了获得更佳的阅读体验,手机上建议横屏阅读~

· 新功能 ·

添加了合并写存储API

添加了rte_write32_wc 和rte_write32_wc_relaxed  API,这些API启用写合并存储(取决于architecture))。 这些函数用作通用桩和x86的特定实现。

添加了用于编写API的预取。

添加了新的预取函数变体,如 rte_prefetch0_write,它允许程序员预取缓存行并表明写入意图。

添加了rt_cldemote API。

添加了硬件提示CLDEMOTE,它类似于反向的预取。CLDEMOTE将缓存行移到更远的缓存,期望实现高效共享。将缓存行移到远离处理器一定级别的位置,有助于加速核与核之间的通信。这个API是x86所特有的,作为其他架构的桩来实现。

添加了对限制最大SIMD位宽的支持。

添加了新的EAL配置设置max_simd_bitwidth,限制运行时的向量路径选择。 这个值可以由使用rte_vect_set_max_simd_bitwidth 函数的应用程序来进行设置,也可以由具有EAL flag--force-max-simd-bitwidth.的用户来进行设置。

为rte_ring添加了零拷贝API。

对于RTE_RING_SYNC_ST和RTE_RING_SYNC_MT_HTS 模式下生产者/消费者的ring,可以将这些API的enqueue/dequeue操作分为三个阶段(enqueue/dequeue开始,在 ring之间拷贝数据,enqueue/dequeue完成)。 除了peek API的优点之外,这些API还提供了无需临时存储,直接拷贝数据到ring 存储器的功能。

更新了网络库的CRC模块。

  • 添加了运行时针对特定架构的最佳CRC路径选择。

  • 使用AVX512和VPCLMULQDQ指令集添加了CRC32-Ethernet和CRC16-CCITT的优化实现。

引入了用于接收的扩展缓冲区描述。

Rx队列设置程序添加了扩展的Rx缓冲区描述,为每个Rx段提供了单独的设置,包括最大尺寸、缓冲区偏移量和内存池来分配数据缓冲区。

添加了 FEC API,用于通用 FEC的 查询和配置。

添加了FEC API,它提供了从设备上查询FEC功能和当前FEC模式的功能。 还提供了用于配置FEC模式的API。

在rte_flow函数中添加了线程安全性

添加了RTE_ETH_DEV_FLOW_OPS_THREAD_SAFE 设备flag,以指示PMD是否支持线程安全操作。 如果PMD没有设置这个flag,rte_flow API级别的函数将使用互斥量保护流操作。

添加了基于流的流量采样支持。

添加了一个新的操作RTE_FLOW_ACTION_TYPE_SAMPLE ,它将对传入流量进行采样,并以特定的比率向应用程序发送重复的流量,而原始数据包将继续到达target destination。

数据包的采样比例为“ 1 /比率”。 比值设置为1表示数据包将被完全镜像。 可以使用与原始数据包不同的一组操作来分配样本数据包。

在流API中添加了共享操作支持

添加了共享操作支持,以在多个流规则中使用单个流操作。 共享操作配置的更新会更改使用它的所有流规则的行为。

  • 添加了一个新操作:RTE_FLOW_ACTION_TYPE_SHARED ,以将共享操作用作流操作。

  • 添加了新的流API,以创建/更新/销毁/查询共享操作。

添加了对流规则的支持,允许私有PMD项目/操作。

流规则验证已更新,可以接受私有PMD项目和操作。

添加了一个通用API来卸载隧道流量和恢复丢失的数据包。

向流API添加了一种新的独立于硬件的帮助程序,以卸载隧道流量并恢复丢失的数据包。

更新了 ethdev 库,以支持两个端口之间的hairpin。

引入了新的API,以支持在hairpin配置中绑定/解绑 2 个端口。 hairpin Tx端的流规则可以显式插入。 添加了新的API以获取hairpin对等端口列表。

更新了Amazon ena驱动程序。

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

  • 添加了可以使用xstats读取的网络接口指标。

更新了Broadcom bnxt驱动程序。

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

  • 添加了对200G PAM4链路速度的支持。

  • 添加了对RSS哈希级别选择的支持。

  • 将HWRM structures更新为1.10.1.70版本。

  • 添加了对Stingray设备的TRUFLOW支持。

  • 在SR的MAIA内核上添加了对representors的支持。

  • 添加了使用rte_flow对VXLAN decap offload的支持。

  • 添加了对指示本地 rte_flow API 线程安全的支持。

更新了Cisco enic驱动程序。

  • 添加了对单队列Tx / Rx和流API的VF representors的支持

  • 添加了对出口PORT_ID操作的支持

  • 添加了对第0组流的非零优先级的支持

  • 添加了VXLAN decap结合VLAN pop的支持

添加了hns3 FEC PMD,以支持查询和配置FEC模式。

添加了FEC PMD,它提供了从设备上查询FEC功能和当前FEC模式的功能。 还提供了用于配置FEC模式的PMD。

更新了Intel iavf驱动程序。

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

  • 添加了对灵活的描述符元数据提取的支持。

  • 添加了对GTPC和GTPU的外部IP哈希的支持。

  • 在Rx和Tx路径中添加了对AVX512指令的支持。

  • 添加了对每个VF最多256个queue pairs的支持。

更新了Intel ixgbe驱动程序。

更新了Intel ixgbe驱动程序以使用写合并存储。

更新了Intel i40e驱动程序。

更新了Intel i40e驱动程序以使用写合并存储。

更新了Intel ice驱动程序。

  • 添加了对写合并存储的支持。

  • 添加了对Intel DCF的ACL filter支持。

更新了Mellanox mlx5驱动程序。

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

  • 添加了矢量化的多数据包Rx队列 burst。

  • 添加了对两种新miniCQE格式的支持:Flow Tag和L3 / L4标头。

  • 添加了对PMD级多线程流插入的支持。

  • 添加了对分段/非分段IPv4 / IPv6数据包匹配的支持。

  • 添加了对QinQ数据包匹配的支持。

  • 在以太网项中添加了对新VLAN字段has_vlan 的支持,在VLAN项中添加了has_more_vlan 的支持。

  • 将Age操作的支持超时更新为rte_flow API支持的最大值。

  • 添加了对Age操作查询的支持。

  • 添加了对多端口hairpin的支持。

  • 允许未知的链路速度。

更新了Mellanox mlx5 vDPA驱动程序:

添加了对vDPA VirtQ错误处理的支持。

更新了Solarflare网络PMD。

Solarflare sfc_efx 驱动程序作出了以下更新:

  • 添加了SR-IOV PF支持

  • 添加了Alveo SN1000 SmartNIC(EF100架构)支持,包括用于switch硬件卸载的流API传输规则

  • 添加了ARMv8支持

  • 认可了Flow API本机线程安全

添加了网讯txgbe PMD。

为网讯10 Gigabit Ethernet网卡添加了新的PMD驱动程序。

有关更多详细信息,请参见TXGBE Poll Mode Driver 。

更新了Virtio驱动程序

  • 针对Virtio-user PMD添加了Vhost-vDPA后端的支持。

  • 将默认链接速度更改为未知。

  • 添加了对200G链接速度的支持。

更新了Memif PMD。

  • 添加了对抽象套接字地址的支持。

  • 将默认套接字地址类型更改为抽象。

添加了对VxLAN和非VxLAN数据包的UDP / IPv4 GRO支持。

对于VxLAN数据包,添加了内部UDP / IPv4支持。 对于非VxLAN数据包,添加了UDP / IPv4支持。

扩展了flow-perf应用程序。

  • 添加了对用户顺序而非位掩码的支持。用户可以使用流性能应用程序按任意顺序创建rte_flow的任意结构。 此外,该应用程序已开始支持内部项目匹配。

  • 添加了header modify操作。

  • 添加了flag 操作

  • 添加了raw encap/decap 操作

  • 添加了VXLAN encap/decap操作

  • 添加了ICMP(代码/类型/标识符/序列号)和ICMP6(代码/类型)匹配项。

  • 添加了设置插入/删除端口掩码的选项:--portmask=N 其中N表示所使用端口的十六进制位掩码。

为cryptodev库添加了原始数据路径API。

为Cryptodev库添加了原始数据路径API,以加速外部库或应用程序。这些库或应用程序需要利用快速加密enqueue/dequeue操作,但不一定依赖于 mbufs 和cryptodev操作 mempool。

更新了aesni_mb加密PMD

  • 添加了对intel-ipsec-mb 0.55版本的支持。

  • 添加了对AES-ECB 128、192和256的支持。

  • 添加了对ZUC-EEA3 / EIA3算法的支持。

  • 添加了对SNOW3G-UEA2 / UIA2算法的支持。

  • 添加了对KASUMI-F8 / F9算法的支持。

  • 添加了对Chacha20-Poly1305的支持。

  • 添加了对AES-256 CCM算法的支持。

更新了aesni_gcm加密PMD。

  • 添加了对AES-GMAC的SGL支持。

添加了Broadcom BCMFS对称加密PMD。

为Broadcom FlexSparc加密单元添加了对称加密PMD。

有关此新PMD的更多详细信息,请参阅Broadcom FlexSparc Crypto Poll Mode Driver指南。

更新了NXP DPAA2_SEC加密PMD。

  • 添加了对cipher_only,chain和ipsec协议的DES-CBC支持。

  • 添加了对非HMAC auth算法(MD5,SHA1,SHA224,SHA256,SHA384,SHA512)的支持。

更新了Marvell NITROX对称加密PMD。

  • 添加了AES-GCM支持。

  • 添加了仅限用密码卸载的支持。

更新了Marvell OCTEON TX2加密PMD。

  • 为具有IPv6支持的IPsec更新了OCTEON TX2加密PMD lookaside协议卸载。

更新了英特尔QAT PMD。

  • 添加了原始数据路径API支持。

  • 添加了对合并写存储的支持。

添加了英特尔 ACC100 bbdev PMD。

为英特尔®ACC100加速器(又名Mount Bryce)添加了新的acc100 bbdev驱动程序。 有关此新驱动程序的更多详细信息,请参阅 Intel(R) ACC100 5G/4G FEC Poll Mode Driver BBDEV 指南。

更新了rte_security库以支持SDAP。

更新了rte_security 库中的rte_security_pdcp_xform ,以启用PMD中SDAPt头部的5G NR处理。

添加了Marvell OCTEON TX2正则表达式PMD。

为OCTEON TX2 SoC的硬件正则表达式卸载模块添加了新的PMD驱动程序。

有关更多详细信息,请参见OCTEON TX2 REE Regexdev驱动程序。

更新了软件Eventdev驱动程序。

添加了性能调整参数,允许在high core count使用情况下调整调度程序,实现更高的吞吐量。

为Intel Dynamic Load Balancer v1.0设备添加了新的驱动程序。

为Intel DLB V1.0设备添加了新的dlb eventdev驱动程序。 有关此新驱动程序的更多详细信息,请参阅Driver for the Intel® Dynamic Load Balancer (DLB) eventdev 指南。

为Intel Dynamic Load Balancer v2.0设备添加了新的驱动程序。

为Intel DLB V2.0设备添加了新的dlb2eventdev驱动程序。 有关此新驱动程序的更多详细信息,请参阅Driver for the Intel® Dynamic Load Balancer (DLB2) eventdev 指南。

添加了对Intel NTB的Ice Lake(Gen4)支持。

添加了对Intel Ice Lake平台的NTB设备支持(第4代)。

更新了ioat rawdev驱动程序。

ioat rawdev驱动程序已更新和完善,更改内容如下:

  • 增加了对Intel® Data Streaming Accelerator硬件的支持。 有关更多信息,请参阅Introducing the Intel Data Streaming Accelerator (Intel DSA)。

  • 通过API rte_ioat_enqueue_fill(),添加了对填充操作的支持,其中硬件使用重复模式填充内存区域。

  • 添加了每个设备的配置标志,以禁用用户提供的完成句柄的管理。

  • 将rte_ioat_do_copies() API重命名为rte_ioat_perform_ops()(),并将rte_ioat_completed_copies() API重命名为rte_ioat_completed_ops() ,以更好地反映API的用途,删除它们仅限于复制操作的含义。 注意:仍提供旧API,但在代码中将其标记为已弃用。

  • 添加了新的API rte_ioat_fence() 以在操作之间添加fence。 该API替换了rte_ioat_enqueue_copies() 函数中的fence 标志参数,并且会更加清晰,因为无论在fence之前的最后一个操作设置标志,还是在fence后的第一个操作上设置标志,都没有歧义。

更新了pipeline库,使之与P4语言保持一致。

添加了新的Software Switch (SWX)管道类型,该类型通过API具备更多灵活性,并与P4语言保持功能一致。 一些增强的功能包括:

  • 包头、元数据、操作、表格和管道是动态定义的,并非从预先定义的集合中选择。

  • 通过指令定义操作和管道。

  • 外部对象和功能可以注进管道。

  • 更新了面向事务的表。

为ACL库添加了新的AVX512特定分类算法。

  • 添加了新的RTE_ACL_CLASSIFY_AVX512X16 矢量实现,该实现可并行处理多达16个流。 需要AVX512支持。

  • 添加了新的RTE_ACL_CLASSIFY_AVX512X32 矢量实现,该实现可并行处理多达32个流。 需要AVX512支持。

为 FIB 添加了 AVX512 查找实现。

在 FIB 和 FIB6 库中添加了 AVX512 查找函数实现。

添加了动态更新子端口带宽的支持。

  • 添加了新的API rte_sched_port_subport_profile_add ,以便在运行时将新的子端口带宽配置文件添加到子端口配置文件表。

  • 添加了对动态更新子端口速率的支持

更新了FIPS验证示例应用程序。

  • 添加了分散收集支持。

  • 添加了NIST GCMVS complaint GMAC测试方法支持。

更新了l3wfd-acl示例应用程序。

  • 为l3fwd-acl 添加了新的可选参数--eth-dest ,允许用户为所使用的每个以太网端口指定目标mac地址。

  • 将--scalar 命令行选项替换为--alg=,允许用户选择所需的分类方法。

更新了vhost示例应用程序。

添加了 vhost 异步 API 支持,演示了应用程序如何通过 vhost 异步 API 均衡 IOAT DMA 通道。有关详细信息,请参阅 Vhost Sample Application。

·删除的项目 ·

• build:已从DPDK中删除了对Make构建系统的支持。 Meson现在是主要的构建系统。 示例应用程序仍可以使用pkg-config单独make构建

• vhost: 已删除dequeue零拷贝支持

• kernel: 模块igb_uio 已移至新目录linux/igb_uio中的git存储库dpdk-kmods中。

• 自2020年1月停用以来,已删除了对Python 2的支持。

• 删除了TEP终止示例应用程序。

• 删除了弃用的dpdk-setup.sh 脚本。

· API 变更 ·

• build macros:删除了定义RTE_MACHINE_CPUFLAG_* 的宏。这些宏提供的信息现在可以通过标准的编译器宏获得。

• eal: 将函数rte_get_master_lcore() 替换为rte_get_main_lcore(). 不推荐使用旧功能。

worker lcores的迭代也已更改:RTE_LCORE_FOREACH_SLAVE 替换为RTE_LCORE_FOREACH_WORKER。

• eal: 与包含和排除设备相关的定义已从黑名单/白名单更改为阻止/允许名单。 有兼容性宏和命令行映射可以接受旧参数,但是强烈建议将应用程序和脚本迁移到新参数。

• eal: rte_logs 结构和全局符号已设为私有,不再是API的一部分。

• eal: 将rte_dev_event 结构专用于EAL,因为没有公共API使用它。

• eal: 从20.08版本开始,不推荐使用rte_cio_rmb() 和 rte_cio_wmb() ,在这次的版本中已将其删除。

•mem:从结构 rte_memseg 和 rte_memzone中删除了联合字段 phys_addr 。字段iova 依然保留了旧的联合字段。

• mempool:从结构rte_mempool_memhdr 和 rte_mempool_objhdr中删除了联合字段phys_addr 和physaddr ,字段iova仍然保留在旧的联合字段中。删除了flag MEMPOOL_F_NO_PHYS_CONTIG ,保留了别名为MEMPOOL_F_NO_IOVA_CONTIG 的flag。

• mbuf:删除了函数rte_mbuf_data_dma_addr* 和宏rte_pktmbuf_mtophys*.在函数和宏的名称中带有 iova 而不是 dma_addr 或 mtophys时,仍具有同样的功能。

• mbuf: 从 rte_mbuf中删除了联合字段 buf_physaddr . 字段 buf_iova 仍然保留在旧的联合字段中。

• mbuf: 从结构rte_mbuf 和 rte_mbuf_ext_shared_info中删除了联合字段refcnt_atomic 。字段 refcnt仍然保留在旧的联合字段中。

• mbuf:从结构rte_mbuf中删除了联合字段userdata 和udata64 。 它被替换为动态字段。

• mbuf:从结构rte_mbuf中删除了字段seqn. 它被替换为动态字段。

• mbuf:从结构rte_mbuf中删除了字段timestamp. 它被替换为之前只用于Tx的动态字段RTE_MBUF_DYNFIELD_TIMESTAMP_NAME。

• pci:删除了rte_dev.h中定义的rte_kernel_driver 枚举,并在PCI子系统中替换为私有枚举。

• pci:从公共API(pci_map_resource 和 pci_unmap_resource)中删除了PCI资源映射API,并将其与PCI资源列表和关联结构(pci_map, pci_msix_table, mapped_pci_resource 和 mapped_pci_res_list)一起移至PCI总线驱动程序。

• ethdev:删除了ethdev rte_eth_dev_data 结构中的kdrv字段,因为它没有向应用程序提供有用的抽象信息。

• ethdev:不推荐使用rte_eth_rx_descriptor_done() API。

• ethdev:重命名每个队列的基本统计信息。 在队列号和其余xstat名称之间插入一个下划线:

  • rx_qN* -> rx_qN_*

  • tx_qN* -> tx_qN_*

• ethdev:添加了查询age流操作的功能。

• ethdev:将rte_eth_dev_stop 返回值从void更改为int,从而提供一种报告各种错误情况的方法。

• ethdev: rte_eth_dev_close()添加了 int 返回类型。

• ethdev:重新命名了内部函数

  • _rte_eth_dev_callback_process() -> rte_eth_dev_callback_process()

  • _rte_eth_dev_reset -> rte_eth_dev_internal_reset()

• ethdev: 修改了 rte_eth_dcb_tc_queue_mapping 中 base 和 nb_queue 的字段类型,从 uint8_t  改为 uint16_t。因为当一个 TC 的队列数大于 256 时,uint8_t 的数据将被截断。

• ethdev:删除了legacy filter API,包括rte_eth_dev_filter_supported() 和 rte_eth_dev_filter_ctrl().

• ethdev:删除了legacyL2隧道配置API,包括rte_eth_dev_l2_tunnel_eth_type_conf()和rte_eth_dev_l2_tunnel_offload_set().

• vhost:将 vDPA API 从实验版移至稳定版。

• vhost:添加了新函数rte_vhost_crypto_driver_start ,以代替加密应用程序调用rte_vhost_driver_start 。

• cryptodev:更新了结构rte_crypto_sym_vec 以支持cpu_crypto同步操作和异步原始数据路径API。

• cryptodev:删除了来自enum rte_crypto_aead_algorithm的RTE_CRYPTO_AEAD_LIST_END ,来自enum rte_crypto_cipher_algorithm 的RTE_CRYPTO_CIPHER_LIST_END和来自enum rte_crypto_auth_algorithm 的RTE_CRYPTO_AUTH_LIST_END  ,从而避免将来在添加新算法时出现ABI中断。

• scheduler:将函数rte_cryptodev_scheduler_slave_attach, rte_cryptodev_scheduler_slave_detach 和rte_cryptodev_scheduler_slaves_get 重命名为rte_cryptodev_scheduler_worker_attach, rte_cryptodev_scheduler_worker_detach 和 rte_cryptodev_scheduler_workers_get 

• scheduler:将配置值RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES 重命名为RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS

• security: rte_security_pdcp_xform 中的hfn_ovrd 字段已从uint32_t 改为uint8_t,以便添加一个新的字段sdap_enabled 来支持SDAP。

• security: API rte_security_session_create 已更新为采用两个mempool objects::一个用于会话,另一个用于会话私有数据。 因此,应用程序需要创建两个mempools,并使用API rte_security_session_get_size 为专用会话mempool获取会话专用数据的大小。

• ipsec:RTE_SATP_LOG2_NUM 已从enum中删除,随后将 rte_ipsec  lib 从实验版移至稳定版。

• baseband/fpga_lte_fec: 将函数 fpga_lte_fec_configure 重命名为 rte_fpga_lte_fec_configure ,将结构 fpga_lte_fec_conf 重命名为 rte_fpga_lte_fec_conf。

•baseband/fpga_5gnr_fec: 将函数fpga_5gnr_fec_configure 重命名为 rte_fpga_5gnr_fec_configure , 将结构 fpga_5gnr_fec_conf 重命名为 rte_fpga_5gnr_fec_conf.

• rawdev:在函数rte_rawdev_queue_setup(), rte_rawdev_queue_conf_get(), rte_rawdev_info_get() 和 rte_rawdev_configure()中添加了结构大小参数,从而允许有限的驱动程序类型检查和ABI兼容性。

• rawdev:将函数rte_dev_info_get() 和函数rte_rawdev_queue_conf_get() 的返回类型从void 改为 int ,允许从驱动程序返回错误代码。

• rawdev:现在可以使用 dpdk-test 二进制文件中的 rawdev_autotest 命令来运行驱动程序的 selftest() 函数。该命令可以为系统中发现的每个rawdev调用自检函数,并且不需要每种设备类型的特定命令。进行此更改之后,由于不再需要ioat_rawdev_autotest 命令,已将其删除。

•raw/ioat: 如上所述,rte_ioat_do_copies() 和 rte_ioat_completed_copies()函数 已分别重命名为rte_ioat_perform_ops() 和 rte_ioat_completed_ops() 

•stack: 实验标记已从堆栈库中删除,从DPDK 20.11开始,其接口被认为是稳定的。

•bpf: RTE_BPF_XTYPE_NUM 已从rte_bpf_xtype中删除。

•gso: 更改了rte_gso_segment behaviour和返回值:

  • 如果没有GSO,pkt不会保存到pkts_out[0] 。

  • 在上述情况下,返回0而不是1。

  • 无论是否进行了GSO操作,都不会释放pkt,而将其留给调用方。

•acl: RTE_ACL_CLASSIFY_NUM 的枚举值已被删除。该枚举值没有在DPDK内部使用,同时它阻止了新分类算法的添加,而不会造成ABI中断。

•sched: 将subport_profile_id 作为参数添加到函数rte_sched_subport_config中。

•sched: 从struct rte_sched_subport_params中删除了tb_rate, tc_rate, tc_period 和 tb_size  

· ABI 变更 ·

• eal: 删除了未实现的函数 rte_dump_registers().

• ethdev 有变化

o 以下设备操作函数指针从 struct eth_dev_ops 移至 struct rte_eth_dev。

  • eth_rx_queue_count_t       rx_queue_count;

  • eth_rx_descriptor_done_t   rx_descriptor_done;

  • eth_rx_descriptor_status_t rx_descriptor_status;

  • eth_tx_descriptor_status_t tx_descriptor_status;

o struct eth_dev_ops 不再被应用程序访问,,它已经是内部数据结构。

o ethdev内部函数用__rte_internal tag标记

o 为 struct rte_flow_item_ipv6添加了扩展的属性。在结构中增加了一组附加值,表示每个定义的扩展头类型的存在。应用程序应该使用这些新的值来标识数据包头中现有的扩展类型。

o 在rte_eth_rxconf 结构中添加了字段rx_seg 和rx_nseg ,以提供对接收缓冲区的扩展描述。

o struct rte_eth_hairpin_conf 有两个新成员:

  • uint32_t tx_explicit:1;

  • uint32_t manual_bind:1;

o 在结构 rte_flow_item_eth中增加了新字段 has_vlan ,表示数据包头至少包含一个 VLAN。

o在结构 rte_flow_item_vlan中增加了新的字段 has_more_vlan ,表示在这个 VLAN 之后,包头至少还包含一个 VLAN。

• eventdev: 修改了以下结构以支持DLB/DLB2 PMD和未来的扩展

orte_event_dev_info

orte_event_dev_config

orte_event_port_conf

•sched:向struct rte_sched_subport_port_params添加了新字段。

• lpm:从结构rte_lpm中删除了tbl24和tbl8以外的字段。 删除的字段是内部的。

· 经过测试的平台 ·

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 8.2

  • Fedora 33

  • FreeBSD 12.1

  • OpenWRT 19.07.3

  • Red Hat Enterprise Linux Server release 8.2

  • Suse 15 SP1

  • Ubuntu 18.04

  • Ubuntu 20.04

  • Ubuntu 20.10

  NICs:

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

  • Firmware version: 2.30 0x80004dcf 1.2839.0

  • Device id (pf/vf): 8086:1593 / 8086:1889

  • Driver version: 1.3.0 (ice)

  • OS Default DDP: 1.3.20.0

  • COMMS DDP: 1.3.24.0

 Intel® Ethernet Controller E810-C for QSFP (2x100G)

  • Firmware version: 2.30 0x80004dd0 1.2839.0

  • Device id (pf/vf): 8086:1592 / 8086:1889

  • Driver version: 1.3.0 (ice)

  • OS Default DDP: 1.3.20.0

  • COMMS DDP: 1.3.24.0

 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: 8.00 0x80008b82 1.2766.0

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

  • Driver version: 2.13.10 (i40e)

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

  • Firmware version: 5.00 0x800023c3 1.2766.0

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

  • Driver version: 2.13.10 (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.13.10 (i40e)

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

  • Firmware version: 8.00 0x80008c1a 1.2766.0

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

  • Driver version: 2.13.10 (i40e)

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

  • Firmware version: 8.00 0x80008b82 1.2766.0

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

  • Driver version: 2.13.10 (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: 8.00 0x80008d10 1.2766.0

  • Device id (pf): 8086:15ff

  • Driver version: 2.13.10 (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.2-0.3.3.0 and above

  • MLNX_OFED 5.1-2.5.8.0

upstream kernel:

  • Linux 5.10.0-rc2 and above

rdma-core:

  • rdma-core-31.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.29.0476 and above

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

  • Host interface: PCI Express 3.0 x8

  • Device ID: 15b3:1015

  • Firmware version: 14.29.0476 and above

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

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:1017

  • Firmware version: 16.29.0476 and above

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

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:1017

  • Firmware version: 16.29.0476 and above

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

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:1017

  • Firmware version: 16.29.0476 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.29.0476 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.29.0476 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.29.0470 and above

Mellanox® BlueField® SmartNIC

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

  • Host interface: PCI Express 3.0 x16

  • Device ID: 15b3:a2d2

  • Firmware version: 24.29.0476 and above

Embedded software:

  • CentOS Linux release 7.6.1810 (AltArch)

  • MLNX_OFED 5.2-0.3.2 and above

  • DPDK application running on Arm cores

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

  • Intel® Xeon® Silver 4110 CPU @ 2.10GHz

  • Intel® Xeon® CPU E3-1270 v3 @ 3.50GHz

  • Intel® Xeon® Gold 6134M CPU @ 3.20GHz

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.8

  • 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.114.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

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

  • Host interface: PCI Express 3.0 x8

  • Firmware version: 217.0.59.0, 218.1.63.0

Embedded software:

  • Broadcom Yocto Linux

  • Kernel version: 4.14.174

  • DPDK application running on 8 Arm Cortex-A72 cores

DPDK Release 20.11_第1张图片

转载须知

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

推荐阅读

DPDK Release 20.08

DPDK Release 20.11_第2张图片

点击“阅读原文,查看20.11 release note

你可能感兴趣的:(java,python,数据库,linux,操作系统)