[3/3] doc: update ISA-L guide to reflect checksum support

Message ID 1539102109-9311-3-git-send-email-lee.daly@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series [1/3] compress/isal: enable checksum support in driver |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Daly, Lee Oct. 9, 2018, 4:21 p.m. UTC
  This updates the ISA-L compression driver guide on how to enable and use
checksums.

This also updates the compression drivers features matrix.

Signed-off-by: Lee Daly <lee.daly@intel.com>
---
 doc/guides/compressdevs/features/isal.ini |  2 ++
 doc/guides/compressdevs/isal.rst          | 32 +++++++++++++++++++++++++++++--
 2 files changed, 32 insertions(+), 2 deletions(-)
  

Comments

Fiona Trahe Oct. 11, 2018, 10:04 a.m. UTC | #1
Hi Lee,

> +If you request a checksum for compression, the checksum field in the operation
> +structure, ``op->input_chksum``, will be filled with the checksum of the input data.
> +
[Fiona] This is not correct - the checksum will always be in the op->output_chksum
The input_chksum field is for generating a checksum across the uncompressed data of multiple related ops

> +If you request a checksum for decompression, the checksum field in the operation
> +structure, ``op->output_chksum``, will be filled with the checksum of the output data.
> +
> +.. Note::
> +
> + For the compression case above, your output buffer will need to be large enough to hold the compressed
> data plus a scratchpad for the checksum at the end, the scratchpad is 8 bytes for CRC32 and 4 bytes for
> Adler32.
[Fiona] In the compression case is there no need for this scratchpad?
  

Patch

diff --git a/doc/guides/compressdevs/features/isal.ini b/doc/guides/compressdevs/features/isal.ini
index 919cf70..e705031 100644
--- a/doc/guides/compressdevs/features/isal.ini
+++ b/doc/guides/compressdevs/features/isal.ini
@@ -12,5 +12,7 @@  OOP SGL In SGL Out = Y
 OOP SGL In LB  Out = Y
 OOP LB  In SGL Out = Y
 Deflate            = Y
+Adler32            = Y
+Crc32              = Y
 Fixed              = Y
 Dynamic            = Y
diff --git a/doc/guides/compressdevs/isal.rst b/doc/guides/compressdevs/isal.rst
index 3bc3022..f7d3d01 100644
--- a/doc/guides/compressdevs/isal.rst
+++ b/doc/guides/compressdevs/isal.rst
@@ -27,6 +27,35 @@  Window size support:
 
     * 32K
 
+Checksum:
+
+    * CRC32
+    * ADLER32
+
+To enable a checksum in the driver, the compression and/or decompression xform
+structure, rte_comp_xform, must be filled with either of the CompressDevs
+checksum flags supported. ::
+
+ compress_xform->compress.chksum = RTE_COMP_CHECKSUM_CRC32
+
+ decompress_xform->decompress.chksum = RTE_COMP_CHECKSUM_CRC32
+
+::
+
+ compress_xform->compress.chksum = RTE_COMP_CHECKSUM_ADLER32
+
+ decompress_xform->decompress.chksum = RTE_COMP_CHECKSUM_ADLER32
+
+If you request a checksum for compression, the checksum field in the operation
+structure, ``op->input_chksum``, will be filled with the checksum of the input data.
+
+If you request a checksum for decompression, the checksum field in the operation
+structure, ``op->output_chksum``, will be filled with the checksum of the output data.
+
+.. Note::
+
+ For the compression case above, your output buffer will need to be large enough to hold the compressed data plus a scratchpad for the checksum at the end, the scratchpad is 8 bytes for CRC32 and 4 bytes for Adler32.
+
 Level guide:
 
 The ISA-L levels have been mapped to somewhat correspond to the same ZLIB level,
@@ -75,13 +104,12 @@  As a result the level mappings from the API to the PMD are shown below.
  The above table only shows mapping when API calls for dynamic compression.
  For fixed compression, regardless of API level, internally ISA-L level 0 is always used.
 
+
 Limitations
 -----------
 
 * Compressdev level 0, no compression, is not supported.
 
-* Checksums will not be supported until future release.
-
 Installation
 ------------