圣诞

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=<value>,允许用户选择所需的分类方法。

更新了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与SPDK开源社区公众号文章转载声明

推荐阅读

DPDK Release 20.08

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

DPDK Release 20.11相关推荐

  1. DPDK Release 17.11

    DPDK Release 17.11 DPDK Release 17.11 主要功能如下: - IOVA awareness - PCI and VDEV buses moved to drivers ...

  2. DPDK Release 22.11

    新功能 添加了初始LoongArch架构支持. 添加了对 LoongArch 架构的 EAL 实现.在 Loongson 3A5000, Loongson 3C5000 和 Loongson 3C50 ...

  3. dpdk 20.11编译kni和igb_uio

    第一步:需要修改meson_option.txt打开kmod编译开关 第二步:从20.11开始,igb_uio不再包含在dpdk源码中,需要下载源码 git clone http://dpdk.org ...

  4. Oracle 11g Release 1 (11.1) Data Pump 导出模式

    http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#i1007114 本文内容 Data Pump 提供不同的导出模 ...

  5. Oracle 11g Release 1 (11.1) Data Pump 导入模式

    http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_import.htm#i1007324 本文内容 导入最显着的特点之一就是导入的模式, ...

  6. 定积分证明题例题_第二十天(20,11,27):积分中值定理

    之前我们讲述了一大堆的积分技巧: 槿灵兮:第十九天(20,11,26):无理代数分式的积分法​zhuanlan.zhihu.com 今天我们过渡一下下,开始涉及一点积分的证明题~ 我首先想介绍两个基本 ...

  7. HALCON 20.11:学习笔记---一维测量(Measuring)

    HALCON 20.11:学习笔记---一维测量(Measuring) 本章主要提供有关一维测量的信息. 一维测量的概念 通过一维测量可以沿着预定义的线或弧定位从亮到暗或从暗到亮的过渡边缘.这使您可以 ...

  8. HALCON 20.11:如何处理标定助手品质问题

    HALCON 20.11:如何处理标定助手品质问题 在"品质问题"选项下,您可以得到每个图像的评估,其中包括缺陷图像特征描述以及问题严重程度的质量分数百分比.结果为0%表示图像特征 ...

  9. HALCON 20.11:标定助手使用注意事项

    HALCON 20.11:标定助手使用注意事项 标定过程中需要保持相机(光圈.焦距.位姿)固定. 标定板有两种:六角形排列标定板(.cpd文件)和矩形排列标定板(.descr文件). 透明标定板可用于 ...

  10. HALCON 20.11:深度学习笔记(12)---语义分割

    HALCON 20.11:深度学习笔记(12)--- 语义分割 HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何使用基于深度学习的语义分割,包括训练和推理阶段. 通过语义分割, ...

最新文章

  1. 皮一皮:这小伙子怎么能掌握这么多高深技术!!!
  2. testNG的DataProvider返回IteratorObject[]的妙用
  3. 3.1.9 二级页表
  4. SSM中怎样使用JUnit4+spring-test编写单元测试
  5. 从淘宝数据结构来看电子商务中商品属性设计
  6. linux能挂载的文件类型,mount命令是如何自动识别挂载点的文件系统类型的
  7. SpringBoot整合themeleaf+bootstrap (五)
  8. 《JavaScript设计模式》——11.3 站长统计
  9. VC++6.0与VS2010的区别
  10. cenos7部署samba
  11. Java Class的文件结构
  12. gitlab鉴权失败
  13. windows 查看wifi密码命令
  14. Unity程序框架总结归置系列(4)——mono模块
  15. 骏马淘金~~网赚不走弯路
  16. MySQL的错误1264, 1406, 1329 ,1101 的修改方法
  17. librosa--学习笔记(1)
  18. C语言源代码系列-管理系统之单项选择题标准化考试系统设计
  19. 计算机基础之透析我家的组装机
  20. 【Caffe笔记】二.Forward and Backward(前传/反传)

热门文章

  1. 【C++沉思录】代理类
  2. 手工修复Win 7下彩影ARP防火墙驱动程序(适用于32/64位系统)
  3. 【卫朋】硬件创业:营销与开发同行
  4. js复制到剪贴板html5,移动端web 复制到剪贴板 怎么实现?
  5. 樱花大战资源分析之二 SPR文件格式不完全分析
  6. Ghostscript的介绍和移植
  7. 【常用类】字符串:String的构造方法、字符串是常量,String类的判断、 获取、转换、和其他功能、它的值在创建后不能被改变、new与不new的区别、字符串相加的情况、
  8. 量子计算机采用量子力学原理,量子力学原理及其应用.docx
  9. 红帽linux免费下载链接,redhat linux 下载大全 完全整理
  10. Httpd Forbidden:You don't have permission to access /index.html on this server.