xref: /dpdk/doc/guides/compressdevs/mlx5.rst (revision 665b49c51639a10c553433bc2bcd85c7331c631e)
1.. SPDX-License-Identifier: BSD-3-Clause
2   Copyright 2021 Mellanox Technologies, Ltd
3
4.. include:: <isonum.txt>
5
6NVIDIA MLX5 Compress Driver
7===========================
8
9.. note::
10
11   NVIDIA acquired Mellanox Technologies in 2020.
12   The DPDK documentation and code might still include instances
13   of or references to Mellanox trademarks (like BlueField and ConnectX)
14   that are now NVIDIA trademarks.
15
16The mlx5 compress driver library
17(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**,
18and **NVIDIA BlueField-3** families of 25/50/100/200/400 Gb/s adapters.
19
20Design
21------
22
23This PMD is configuring the compress, decompress amd DMA engines.
24
25GGAs (Generic Global Accelerators) are offload engines that can be used
26to do memory to memory tasks on data.
27These engines are part of the ARM complex of the BlueField chip, and as
28such they do not use NIC related resources (e.g. RX/TX bandwidth).
29They do share the same PCI and memory bandwidth.
30
31So, using the BlueField device (starting from BlueField-2), the compress
32class operations can be supported in parallel to the net, vDPA and
33RegEx class operations.
34
35See :doc:`../../platform/mlx5` guide for more design details.
36
37Features
38--------
39
40Compress mlx5 PMD has support for:
41
42Compression/Decompression algorithm:
43
44* DEFLATE.
45
46NULL algorithm for DMA operations.
47
48Huffman code type:
49
50* FIXED.
51* DYNAMIC.
52
53Window size support:
54
551KB, 2KB, 4KB, 8KB, 16KB and 32KB.
56
57Shareable transformation.
58
59Checksum generation:
60
61* CRC32, Adler32 and combined checksum.
62
63Limitations
64-----------
65
66* Scatter-Gather, SHA and Stateful are not supported.
67* Non-compressed block is not supported in compress (supported in decompress).
68
69Driver options
70--------------
71
72Please refer to :ref:`mlx5 common options <mlx5_common_driver_options>`
73for an additional list of options shared with other mlx5 drivers.
74
75- ``log-block-size`` parameter [int]
76
77  Log of the Huffman block size in the Deflate algorithm.
78  Values from [4-15]; value x means block size is 2^x.
79  The default value is 15.
80
81
82Supported NICs
83--------------
84
85* NVIDIA\ |reg| BlueField-2 SmartNIC
86* NVIDIA\ |reg| BlueField-3 SmartNIC
87
88Prerequisites
89-------------
90
91- NVIDIA MLNX_OFED version: **5.2**
92  See :ref:`mlx5 common prerequisites <mlx5_linux_prerequisites>` for more details.
93