【dpdk】NVIDIA MLX5 Compress Driver

From

3. NVIDIA MLX5 Compress Driver — Data Plane Development Kit 23.11.0 documentation (dpdk.org)

1. NVIDIA MLX5 Compress Driver

Note

NVIDIA acquired Mellanox Technologies in 2020. The DPDK documentation and code might still include instances of or references to Mellanox trademarks (like BlueField and ConnectX) that are now NVIDIA trademarks.

The mlx5 compress driver library (librte_compress_mlx5) provides support for NVIDIA BlueField-2, and NVIDIA BlueField-3 families of 25/50/100/200/400 Gb/s adapters.

1.1. Design

This PMD is configuring the compress, decompress amd DMA engines.

GGAs (Generic Global Accelerators) are offload engines that can be used to do memory to memory tasks on data. These engines are part of the ARM complex of the BlueField chip, and as such they do not use NIC related resources (e.g. RX/TX bandwidth). They do share the same PCI and memory bandwidth.

So, using the BlueField device (starting from BlueField-2), the compress class operations can be supported in parallel to the net, vDPA and RegEx class operations.

See NVIDIA MLX5 Common Driver guide for more design details.

3.2. Features

Compress mlx5 PMD has support for:

  • Compression
  • Decompression
  • DMA

3.3. Algorithms

3.3.1. NULL algorithm

NULL algorithm is the way to perform DMA operations. It works through either compress or decompress operation.

Shareable transformation.

Checksum generation:

  • CRC32, Adler32 and combined checksum.

3.3.2. DEFLATE algorithm

Huffman code type:

  • FIXED.
  • DYNAMIC.

Window size support:

1KB, 2KB, 4KB, 8KB, 16KB and 32KB.

Shareable transformation.

Checksum generation:

  • CRC32, Adler32 and combined checksum.

3.3.3. LZ4 algorithm

Support for flags:

  • RTE_COMP_LZ4_FLAG_BLOCK_CHECKSUM
  • RTE_COMP_LZ4_FLAG_BLOCK_INDEPENDENCE

Window size support:

1KB, 2KB, 4KB, 8KB, 16KB and 32KB.

Shareable transformation.

Checksum generation:

  • xxHash-32 checksum.

3.4. Limitations

  • Scatter-Gather, SHA and Stateful are not supported.
  • Non-compressed block is not supported in compress (supported in decompress).
  • Compress operation is not supported by BlueField-3.
  • LZ4 algorithm is not supported by BlueField-2.

3.5. Driver options

Please refer to mlx5 common options for an additional list of options shared with other mlx5 drivers.

  • log-block-size parameter [int]

    Log of the Huffman block size in the Deflate algorithm. Values from [4-15]; value x means block size is 2x. The default value is 15.

3.6. Supported NICs

  • NVIDIA® BlueField-2 SmartNIC
  • NVIDIA® BlueField-3 SmartNIC

3.7. Prerequisites

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DPDK是数据平面开发工具包(Data Plane Development Kit)的简称,是一种轻量级的数据平面框架,用于加速数据包处理。而mlx5是一种在DPDK中的驱动程序,专门用于与Mellanox的网络适配器进行通信和数据包处理。 DPDKmlx5驱动程序具有以下特点和功能: 1. 高性能:mlx5驱动程序充分利用了Mellanox的硬件加速功能,通过与硬件适配器紧密集成,能够提供优异的数据包处理性能。该驱动程序采用了零拷贝技术和事件模型,减少了很多传统网络协议栈中的开销,实现了低延迟和高吞吐量。 2. 多队列支持:mlx5驱动程序支持多队列技术,允许应用程序并行处理多个网络队列。这样可以充分利用多核处理器的计算能力,并实现更好的负载均衡和并发性能。 3. 硬件加速功能:mlx5驱动程序通过与Mellanox网络适配器紧密集成,能够充分利用硬件的加速功能,如RSS(Receive Side Scaling)和TSS(Transmit Side Scaling),提高数据包的处理效率。 4. 协议支持:mlx5驱动程序支持多种网络协议,如Ethernet、IPv4/IPv6、TCP、UDP等。它能够对网络协议进行解析和处理,并提供相应的接口供应用程序使用。 5. 灵活性:mlx5驱动程序提供了丰富的配置选项,可以根据具体的需求进行灵活的配置和调优。例如,它支持灵活的RSS配置,可以根据不同的数据包字段进行负载均衡,以实现更好的性能。 总之,DPDKmlx5驱动程序是一种高性能的数据包处理驱动程序,通过与Mellanox的网络适配器协同工作,能够实现高吞吐量、低延迟的数据包处理,提供了丰富的配置选项和协议支持,适用于高性能的网络应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值