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 42- Compression 43- Decompression 44- DMA 45 46Algorithms 47---------- 48 49NULL algorithm 50~~~~~~~~~~~~~~ 51 52NULL algorithm is the way to perform DMA operations. 53It works through either compress or decompress operation. 54 55Shareable transformation. 56 57Checksum generation: 58 59* CRC32, Adler32 and combined checksum. 60 61DEFLATE algorithm 62~~~~~~~~~~~~~~~~~ 63 64Huffman code type: 65 66* FIXED. 67* DYNAMIC. 68 69Window size support: 70 711KB, 2KB, 4KB, 8KB, 16KB and 32KB. 72 73Shareable transformation. 74 75Checksum generation: 76 77* CRC32, Adler32 and combined checksum. 78 79LZ4 algorithm 80~~~~~~~~~~~~~ 81 82Support for flags: 83 84* ``RTE_COMP_LZ4_FLAG_BLOCK_CHECKSUM`` 85* ``RTE_COMP_LZ4_FLAG_BLOCK_INDEPENDENCE`` 86 87Window size support: 88 891KB, 2KB, 4KB, 8KB, 16KB and 32KB. 90 91Shareable transformation. 92 93Checksum generation: 94 95* xxHash-32 checksum. 96 97Limitations 98----------- 99 100* Scatter-Gather, SHA and Stateful are not supported. 101* Non-compressed block is not supported in compress (supported in decompress). 102* Compress operation is not supported by BlueField-3. 103* LZ4 algorithm is not supported by BlueField-2. 104 105Driver options 106-------------- 107 108Please refer to :ref:`mlx5 common options <mlx5_common_driver_options>` 109for an additional list of options shared with other mlx5 drivers. 110 111- ``log-block-size`` parameter [int] 112 113 Log of the Huffman block size in the Deflate algorithm. 114 Values from [4-15]; value x means block size is 2\ :sup:`x`. 115 The default value is 15. 116 117 118Supported NICs 119-------------- 120 121* NVIDIA\ |reg| BlueField-2 SmartNIC 122* NVIDIA\ |reg| BlueField-3 SmartNIC 123 124Prerequisites 125------------- 126 127- NVIDIA MLNX_OFED version: **5.2** 128 See :ref:`mlx5 common prerequisites <mlx5_linux_prerequisites>` for more details. 129