compressdev: replace mbuf scatter gather flag
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Fri, 6 Jul 2018 05:28:00 +0000 (06:28 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Tue, 10 Jul 2018 22:57:51 +0000 (00:57 +0200)
The current mbuf scatter gather feature flag is
too ambiguous, as it is not clear if input and/or output
buffers can be scatter gather mbufs or not.

Therefore, three new flags will replace this flag:
- RTE_COMP_FF_OOP_SGL_IN_SGL_OUT
- RTE_COMP_FF_OOP_SGL_IN_FB_OUT
- RTE_COMP_FF_OOP_LB_IN_SGL_OUT

Note that out-of-place flat buffers is supported by default
and in-place is not supported by the library.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Shally Verma <shally.verma@caviumnetworks.com>
doc/guides/compressdevs/features/default.ini
doc/guides/compressdevs/overview.rst
doc/guides/rel_notes/release_18_08.rst
lib/librte_compressdev/rte_comp.c
lib/librte_compressdev/rte_comp.h

index a88414d..829e4df 100644 (file)
@@ -6,19 +6,21 @@
 ; the features table in the documentation.
 ;
 [Features]
-HW Accelerated =
-CPU SSE        =
-CPU AVX        =
-CPU AVX2       =
-CPU AVX512     =
-CPU NEON       =
-Stateful       =
-Pass-through   =
-Chained mbufs  =
-Deflate        =
-LZS            =
-Adler32        =
-Crc32          =
-Adler32&Crc32  =
-Fixed          =
-Dynamic        =
+HW Accelerated      =
+CPU SSE             =
+CPU AVX             =
+CPU AVX2            =
+CPU AVX512          =
+CPU NEON            =
+Stateful            =
+Pass-through        =
+OOP SGL In SGL Out  =
+OOP SGL In LB  Out  =
+OOP LB  In SGL Out  =
+Deflate             =
+LZS                 =
+Adler32             =
+Crc32               =
+Adler32&Crc32       =
+Fixed               =
+Dynamic             =
index d01c1a9..70bbe82 100644 (file)
@@ -16,3 +16,17 @@ Supported Feature Flags
    - "Pass-through" feature flag refers to the ability of the PMD
      to let input buffers pass-through it, copying the input to the output,
      without making any modifications to it (no compression done).
+
+   - "OOP SGL In SGL Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
+     which means PMD supports different scatter-gather styled input and output buffers
+     (i.e. both can consists of multiple segments).
+
+   - "OOP SGL In LB Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Linear Buffers Output",
+     which means PMD supports input from scatter-gathered styled buffers, outputting linear buffers
+     (i.e. single segment).
+
+   - "OOP LB In SGL Out" feature flag stands for
+     "Out-of-place Linear Buffers Input, Scatter-gather list Output",
+     which means PMD supports input from linear buffer, outputting scatter-gathered styled buffers.
index da6a329..9431634 100644 (file)
@@ -82,6 +82,12 @@ API Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* compressdev: Feature flag ``RTE_COMP_FF_MBUF_SCATTER_GATHER`` is
+  replaced with the following more explicit flags:
+  - ``RTE_COMP_FF_OOP_SGL_IN_SGL_OUT``
+  - ``RTE_COMP_FF_OOP_SGL_IN_LB_OUT``
+  - ``RTE_COMP_FF_OOP_LB_IN_SGL_OUT``
+
 
 ABI Changes
 -----------
index d596ba8..97ea0d9 100644 (file)
@@ -14,8 +14,12 @@ rte_comp_get_feature_name(uint64_t flag)
                return "STATEFUL_COMPRESSION";
        case RTE_COMP_FF_STATEFUL_DECOMPRESSION:
                return "STATEFUL_DECOMPRESSION";
-       case RTE_COMP_FF_MBUF_SCATTER_GATHER:
-               return "MBUF_SCATTER_GATHER";
+       case RTE_COMP_FF_OOP_SGL_IN_SGL_OUT:
+               return "OOP_SGL_IN_SGL_OUT";
+       case RTE_COMP_FF_OOP_SGL_IN_LB_OUT:
+               return "OOP_SGL_IN_LB_OUT";
+       case RTE_COMP_FF_OOP_LB_IN_SGL_OUT:
+               return "OOP_LB_IN_SGL_OUT";
        case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
                return "MULTI_PKT_CHECKSUM";
        case RTE_COMP_FF_ADLER32_CHECKSUM:
index 5b513c7..c72207a 100644 (file)
@@ -30,23 +30,34 @@ extern "C" {
 /**< Stateful compression is supported */
 #define RTE_COMP_FF_STATEFUL_DECOMPRESSION     (1ULL << 1)
 /**< Stateful decompression is supported */
-#define        RTE_COMP_FF_MBUF_SCATTER_GATHER         (1ULL << 2)
-/**< Scatter-gather mbufs are supported */
-#define RTE_COMP_FF_ADLER32_CHECKSUM           (1ULL << 3)
+#define RTE_COMP_FF_OOP_SGL_IN_SGL_OUT         (1ULL << 2)
+/**< Out-of-place Scatter-gather (SGL) buffers,
+ * with multiple segments, are supported in input and output
+ */
+#define RTE_COMP_FF_OOP_SGL_IN_LB_OUT          (1ULL << 3)
+/**< Out-of-place Scatter-gather (SGL) buffers are supported
+ * in input, combined with linear buffers (LB), with a
+ * single segment, in output
+ */
+#define RTE_COMP_FF_OOP_LB_IN_SGL_OUT          (1ULL << 4)
+/**< Out-of-place Scatter-gather (SGL) buffers are supported
+ * in output, combined with linear buffers (LB) in input
+ */
+#define RTE_COMP_FF_ADLER32_CHECKSUM           (1ULL << 5)
 /**< Adler-32 Checksum is supported */
-#define RTE_COMP_FF_CRC32_CHECKSUM             (1ULL << 4)
+#define RTE_COMP_FF_CRC32_CHECKSUM             (1ULL << 6)
 /**< CRC32 Checksum is supported */
-#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM     (1ULL << 5)
+#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM     (1ULL << 7)
 /**< Adler-32/CRC32 Checksum is supported */
-#define RTE_COMP_FF_MULTI_PKT_CHECKSUM         (1ULL << 6)
+#define RTE_COMP_FF_MULTI_PKT_CHECKSUM         (1ULL << 8)
 /**< Generation of checksum across multiple stateless packets is supported */
-#define RTE_COMP_FF_SHA1_HASH                  (1ULL << 7)
+#define RTE_COMP_FF_SHA1_HASH                  (1ULL << 9)
 /**< SHA1 Hash is supported */
-#define RTE_COMP_FF_SHA2_SHA256_HASH           (1ULL << 8)
+#define RTE_COMP_FF_SHA2_SHA256_HASH           (1ULL << 10)
 /**< SHA256 Hash of SHA2 family is supported */
-#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS       (1ULL << 9)
+#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS       (1ULL << 11)
 /**< Creation of non-compressed blocks using RTE_COMP_LEVEL_NONE is supported */
-#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM       (1ULL << 10)
+#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM       (1ULL << 12)
 /**< Private xforms created by the PMD can be shared
  * across multiple stateless operations. If not set, then app needs
  * to create as many priv_xforms as it expects to have stateless