Hi Akhil Thanks for the review.
PSB From: Akhil Goyal > > Add all the capabilities supported by the device. > > > > Add the driver documentations. > > > > Signed-off-by: Matan Azrad <ma...@nvidia.com> > > --- > > doc/guides/compressdevs/features/mlx5.ini | 13 +++++ > > doc/guides/compressdevs/index.rst | 1 + > > doc/guides/compressdevs/mlx5.rst | 84 > > +++++++++++++++++++++++++++++++ > > doc/guides/rel_notes/release_21_02.rst | 6 +++ > > drivers/compress/mlx5/mlx5_compress.c | 24 ++++++++- > > 5 files changed, 126 insertions(+), 2 deletions(-) create mode > > 100644 doc/guides/compressdevs/features/mlx5.ini > > create mode 100644 doc/guides/compressdevs/mlx5.rst > > > > diff --git a/doc/guides/compressdevs/features/mlx5.ini > > b/doc/guides/compressdevs/features/mlx5.ini > > new file mode 100644 > > index 0000000..891ce47 > > --- /dev/null > > +++ b/doc/guides/compressdevs/features/mlx5.ini > > @@ -0,0 +1,13 @@ > > +; > > +; Refer to default.ini for the full list of available PMD features. > > +; > > +; Supported features of 'MLX5' compression driver. > > +; > > +[Features] > > +HW Accelerated = Y > > +Deflate = Y > > +Adler32 = Y > > +Crc32 = Y > > +Adler32&Crc32 = Y > > +Fixed = Y > > +Dynamic = Y > > diff --git a/doc/guides/compressdevs/index.rst > > b/doc/guides/compressdevs/index.rst > > index 1f37e26..8f9f3a5 100644 > > --- a/doc/guides/compressdevs/index.rst > > +++ b/doc/guides/compressdevs/index.rst > > @@ -14,3 +14,4 @@ Compression Device Drivers > > octeontx > > qat_comp > > zlib > > + mlx5 > > Maintain alphabetical order. > sure > Also fix compilation issues reported by CI > https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmails.dpd > k.org%2Farchives%2Ftest-report%2F2021- > January%2F173975.html&data=04%7C01%7Cmatan%40nvidia.com%7C58e > 8dd9d0a724957b66808d8bca33bd5%7C43083d15727340c1b7db39efd9ccc17a% > 7C0%7C0%7C637466756562484499%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiM > C4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000& > amp;sdata=npYG53ohqpHZMpRTZX5VFzzeF3sf082HKh3JgS9Zd2k%3D&rese > rved=0 No real issue - it is just sent when the dependency series hadn't been integrated. > There is no information about the installation and how to test this PMD in the > documentation. You can see below that I added a reference to the installation guide in net/mlx5 rst - it is the same. > > diff --git a/doc/guides/compressdevs/mlx5.rst > > b/doc/guides/compressdevs/mlx5.rst > > new file mode 100644 > > index 0000000..4ee26b0 > > --- /dev/null > > +++ b/doc/guides/compressdevs/mlx5.rst > > @@ -0,0 +1,84 @@ > > +.. SPDX-License-Identifier: BSD-3-Clause > > + Copyright 2021 Mellanox Technologies, Ltd > > + > > +.. include:: <isonum.txt> > > + > > +MLX5 compress driver > > +==================== > > + > > +The MLX5 compress driver library > > +(**librte_compress_mlx5**) provides support for **Mellanox BlueField > > +2** families of 25/50/100/200 Gb/s adapters. > > + > > +Design > > +------ > > + > > +This PMD is configuring the compress, decompress amd DMA engines. > > + > > +For security reasons and robustness, this driver only deals with > > +virtual memory addresses. The way resources allocations are handled > > +by the kernel, combined with hardware specifications that allow to > > +handle virtual memory addresses directly, ensure that DPDK > > +applications cannot access random physical memory (or memory that does > not belong to the current process). > > + > > +The PMD uses libibverbs and libmlx5 to access the device firmware or > > +directly the hardware components. > > +There are different levels of objects and bypassing abilities to get > > +the best performances: > > + > > +- Verbs is a complete high-level generic API. > > +- Direct Verbs is a device-specific API. > > +- DevX allows to access firmware objects. > > + > > +Enabling librte_compress_mlx5 causes DPDK applications to be linked > > +against libibverbs. > > + > > +Mellanox mlx5 pci device can be probed by number of different pci > > +devices, for example net / vDPA / compress. To select the compress > > +PMD > > ``class=compress`` > > +should be specified as device parameter. The compress device can be > > +probed > > and > > +used with other Mellanox classes, by adding more options in the class. > > +For example: ``class=net:compress`` will probe both the net PMD and > > +the > > compress > > +PMD. > > + > > +Features > > +-------- > > + > > +Compress mlx5 PMD has support for: > > + > > +Compression/Decompression algorithm: > > + > > +* DEFLATE. > > + > > +NULL algorithm for DMA operations. > > + > > +Huffman code type: > > + > > +* FIXED. > > +* DYNAMIC. > > + > > +Window size support: > > + > > +1KB, 2KB, 4KB, 8KB, 16KB and 32KB. > > + > > +Sharable transformation. > > + > > +Checksum generation: > > + > > +* CRC32, Adler32 and combined checksum. > > + > > +Limitations > > +----------- > > + > > +* Scatter-Gather, SHA and Stateful are not supported. > > +* Non-compressed block is not supported in compress (supported in > > decompress). > > + > > +Supported NICs > > +-------------- > > + > > +* Mellanox\ |reg| BlueField 2 SmartNIC > > + > > +Prerequisites > > +------------- > > + > > +- Mellanox OFED version: **5.2** > > + see :doc:`../../nics/mlx5` guide for more Mellanox OFED details. > > \ No newline at end of file > > diff --git a/doc/guides/rel_notes/release_21_02.rst > > b/doc/guides/rel_notes/release_21_02.rst > > index 706cbf8..f672d7f 100644 > > --- a/doc/guides/rel_notes/release_21_02.rst > > +++ b/doc/guides/rel_notes/release_21_02.rst > > @@ -51,6 +51,12 @@ New Features > > * Other libs > > * Apps, Examples, Tools (if significant) > > > > +* **Added mlx5 compress PMD.** > > + > > + Added a new compress PMD driver for Bluefield 2 adapters. > > + > > + See the :doc:`../compressdevs/mlx5` for more details. > > + > > This section is a comment. Do not overwrite or remove it. > > Also, make sure to start the actual text at the margin. > > ======================================================= > > diff --git a/drivers/compress/mlx5/mlx5_compress.c > > b/drivers/compress/mlx5/mlx5_compress.c > > index d768453..7384351 100644 > > --- a/drivers/compress/mlx5/mlx5_compress.c > > +++ b/drivers/compress/mlx5/mlx5_compress.c > > @@ -74,8 +74,28 @@ struct mlx5_compress_qp { > > > > int mlx5_compress_logtype; > > > > -const struct rte_compressdev_capabilities > > mlx5_caps[RTE_COMP_ALGO_LIST_END]; > > - > > +static const struct rte_compressdev_capabilities mlx5_caps[] = { > > + { > > + .algo = RTE_COMP_ALGO_NULL, > > + .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | > > + RTE_COMP_FF_CRC32_CHECKSUM | > > + > > RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | > > + RTE_COMP_FF_SHAREABLE_PRIV_XFORM, > > + }, > > + { > > + .algo = RTE_COMP_ALGO_DEFLATE, > > + .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | > > + RTE_COMP_FF_CRC32_CHECKSUM | > > + > > RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | > > + RTE_COMP_FF_SHAREABLE_PRIV_XFORM | > > + RTE_COMP_FF_HUFFMAN_FIXED | > > + RTE_COMP_FF_HUFFMAN_DYNAMIC, > > + .window_size = {.min = 10, .max = 15, .increment = 1}, > > + }, > > + { > > + .algo = RTE_COMP_ALGO_LIST_END, > > + } > > +}; > > > > static void > > mlx5_compress_dev_info_get(struct rte_compressdev *dev, > > -- > > 1.8.3.1