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