All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] compressdev: replace mbuf scatter gather flag
@ 2018-06-27  5:50 Pablo de Lara
  2018-06-27  5:50 ` [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
                   ` (5 more replies)
  0 siblings, 6 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-06-27  5:50 UTC (permalink / raw)
  To: fiona.trahe, ashish.gupta, lee.daly; +Cc: dev, Pablo de Lara

The current mbuf scatter gatter 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_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT
- RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
- RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_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>
---
 doc/guides/rel_notes/release_18_08.rst |  6 ++++++
 lib/librte_compressdev/rte_comp.c      |  8 ++++++--
 lib/librte_compressdev/rte_comp.h      | 30 ++++++++++++++++++++----------
 3 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
index bc0124295..1fc38418a 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -60,6 +60,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_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT``
+  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
+  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
+
 
 ABI Changes
 -----------
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index d596ba872..ea7692ae7 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -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_OUT_OF_PLACE_SGL_IN_SGL_OUT:
+		return "OUT_OF_PLACE_SGL_IN_SGL_OUT";
+	case RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT:
+		return "OUT_OF_PLACE_SGL_IN_FB_OUT";
+	case RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT:
+		return "OUT_OF_PLACE_FB_IN_SGL_OUT";
 	case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
 		return "MULTI_PKT_CHECKSUM";
 	case RTE_COMP_FF_ADLER32_CHECKSUM:
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 5b513c77e..3ce6a80e1 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -30,23 +30,33 @@ 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_OUT_OF_PLACE_SGL_IN_SGL_OUT	(1ULL << 2)
+/**< Out-of-place Scatter-gather (SGL) mbufs are
+ * supported in input and output
+ */
+#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT	(1ULL << 3)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in input, but only flat buffers (FB) are supported in output
+ */
+#define RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT	(1ULL << 4)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in output, but only flat buffers (FB) are supported 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
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-06-27  5:50 ` Pablo de Lara
  2018-06-27 15:22   ` Trahe, Fiona
  2018-06-28 10:00   ` Daly, Lee
  2018-06-27 12:16 ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-06-27  5:50 UTC (permalink / raw)
  To: fiona.trahe, ashish.gupta, lee.daly; +Cc: dev, Pablo de Lara

Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
 lib/librte_compressdev/rte_comp.c             | 4 ++++
 lib/librte_compressdev/rte_comp.h             | 4 ++++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c
index 970a0413b..585f22802 100644
--- a/drivers/compress/isal/isal_compress_pmd_ops.c
+++ b/drivers/compress/isal/isal_compress_pmd_ops.c
@@ -12,7 +12,9 @@
 static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
 	{
 		.algo = RTE_COMP_ALGO_DEFLATE,
-		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
+		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
+					RTE_COMP_FF_HUFFMAN_FIXED |
+					RTE_COMP_FF_HUFFMAN_DYNAMIC,
 		.window_size = {
 			.min = 15,
 			.max = 15,
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index ea7692ae7..9711a86c8 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
 		return "SHA2_SHA256_HASH";
 	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
 		return "SHAREABLE_PRIV_XFORM";
+	case RTE_COMP_FF_HUFFMAN_FIXED:
+		return "HUFFMAN_FIXED";
+	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
+		return "HUFFMAN_DYNAMIC";
 	default:
 		return NULL;
 	}
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 3ce6a80e1..c6a542c0c 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -62,6 +62,10 @@ extern "C" {
  * to create as many priv_xforms as it expects to have stateless
  * operations in-flight.
  */
+#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
+/**< Fixed huffman enconding is supported */
+#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
+/**< Dynamic huffman enconding is supported */
 
 /** Status of comp operation */
 enum rte_comp_op_status {
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27  5:50 ` [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-06-27 12:16 ` Pablo de Lara
  2018-06-27 12:16   ` [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
                     ` (2 more replies)
  2018-06-27 15:14 ` [PATCH " Trahe, Fiona
                   ` (3 subsequent siblings)
  5 siblings, 3 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-06-27 12:16 UTC (permalink / raw)
  To: fiona.trahe, ashish.gupta, lee.daly; +Cc: dev, Pablo de Lara

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_OUT_OF_PLACE_SGL_IN_SGL_OUT
- RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
- RTE_COMP_FF_OUT_OF_PLACE_FB_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>
---

Changes in v2:
- Fixed typos
- Rephrased comments

 doc/guides/rel_notes/release_18_08.rst |  6 ++++++
 lib/librte_compressdev/rte_comp.c      |  8 ++++++--
 lib/librte_compressdev/rte_comp.h      | 30 ++++++++++++++++++++----------
 3 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
index bc0124295..18c8b4bd1 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -60,6 +60,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_OUT_OF_PLACE_SGL_IN_SGL_OUT``
+  - ``RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
+  - ``RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
+
 
 ABI Changes
 -----------
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index d596ba872..ea7692ae7 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -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_OUT_OF_PLACE_SGL_IN_SGL_OUT:
+		return "OUT_OF_PLACE_SGL_IN_SGL_OUT";
+	case RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT:
+		return "OUT_OF_PLACE_SGL_IN_FB_OUT";
+	case RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT:
+		return "OUT_OF_PLACE_FB_IN_SGL_OUT";
 	case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
 		return "MULTI_PKT_CHECKSUM";
 	case RTE_COMP_FF_ADLER32_CHECKSUM:
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 5b513c77e..f3742dafb 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -30,23 +30,33 @@ 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_OUT_OF_PLACE_SGL_IN_SGL_OUT	(1ULL << 2)
+/**< Out-of-place Scatter-gather (SGL) mbufs are
+ * supported in input and output
+ */
+#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT	(1ULL << 3)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in input, combined with flat buffers (FB) in output
+ */
+#define RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT	(1ULL << 4)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in output, combined with flat buffers (FB) 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
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v2 2/2] compressdev: add huffman encoding flags
  2018-06-27 12:16 ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-06-27 12:16   ` Pablo de Lara
  2018-06-28  7:49     ` Trahe, Fiona
  2018-06-28  7:48   ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Trahe, Fiona
  2018-06-29 10:08   ` Trahe, Fiona
  2 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-06-27 12:16 UTC (permalink / raw)
  To: fiona.trahe, ashish.gupta, lee.daly; +Cc: dev, Pablo de Lara

Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---

Changes in v2:

- Fixed typo

 drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
 lib/librte_compressdev/rte_comp.c             | 4 ++++
 lib/librte_compressdev/rte_comp.h             | 4 ++++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c
index 970a0413b..585f22802 100644
--- a/drivers/compress/isal/isal_compress_pmd_ops.c
+++ b/drivers/compress/isal/isal_compress_pmd_ops.c
@@ -12,7 +12,9 @@
 static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
 	{
 		.algo = RTE_COMP_ALGO_DEFLATE,
-		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
+		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
+					RTE_COMP_FF_HUFFMAN_FIXED |
+					RTE_COMP_FF_HUFFMAN_DYNAMIC,
 		.window_size = {
 			.min = 15,
 			.max = 15,
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index ea7692ae7..9711a86c8 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
 		return "SHA2_SHA256_HASH";
 	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
 		return "SHAREABLE_PRIV_XFORM";
+	case RTE_COMP_FF_HUFFMAN_FIXED:
+		return "HUFFMAN_FIXED";
+	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
+		return "HUFFMAN_DYNAMIC";
 	default:
 		return NULL;
 	}
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index f3742dafb..64f41e976 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -62,6 +62,10 @@ extern "C" {
  * to create as many priv_xforms as it expects to have stateless
  * operations in-flight.
  */
+#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
+/**< Fixed huffman encoding is supported */
+#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
+/**< Dynamic huffman encoding is supported */
 
 /** Status of comp operation */
 enum rte_comp_op_status {
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* Re: [PATCH 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27  5:50 ` [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
  2018-06-27 12:16 ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-06-27 15:14 ` Trahe, Fiona
  2018-06-27 15:33   ` De Lara Guarch, Pablo
  2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 45+ messages in thread
From: Trahe, Fiona @ 2018-06-27 15:14 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, ashish.gupta, Daly, Lee; +Cc: dev, Trahe, Fiona

Hi Pablo,

> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 6:51 AM
> To: Trahe, Fiona <fiona.trahe@intel.com>; ashish.gupta@caviumnetworks.com; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH 1/2] compressdev: replace mbuf scatter gather flag
> 
> The current mbuf scatter gatter feature flag is
[Fiona] typo - gather

> 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_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT
> - RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
> - RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT
[Fiona] oops! CRYPTODEV?? Here and below in docs

> 
> 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>
> ---
>  doc/guides/rel_notes/release_18_08.rst |  6 ++++++
>  lib/librte_compressdev/rte_comp.c      |  8 ++++++--
>  lib/librte_compressdev/rte_comp.h      | 30 ++++++++++++++++++++----------
>  3 files changed, 32 insertions(+), 12 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
> index bc0124295..1fc38418a 100644
> --- a/doc/guides/rel_notes/release_18_08.rst
> +++ b/doc/guides/rel_notes/release_18_08.rst
> @@ -60,6 +60,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_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT``
> +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
> +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
> +
> 

> +#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT	(1ULL << 2)
> +/**< Out-of-place Scatter-gather (SGL) mbufs are
> + * supported in input and output
> + */
> +#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT	(1ULL << 3)
> +/**< Out-of-place Scatter-gather (SGL) mbufs are supported
> + * in input, but only flat buffers (FB) are supported in output
> + */
[Fiona] I'd replace "but only.." with "combined with FB in output" 
As a PMD can set more than one of these flags, so the but only is misleading in this case. 
Same with next flag. 

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27  5:50 ` [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-06-27 15:22   ` Trahe, Fiona
  2018-06-27 15:36     ` De Lara Guarch, Pablo
  2018-06-28 10:00   ` Daly, Lee
  1 sibling, 1 reply; 45+ messages in thread
From: Trahe, Fiona @ 2018-06-27 15:22 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, ashish.gupta, Daly, Lee; +Cc: dev, Trahe, Fiona

Hi Pablo,


> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 6:51 AM
> To: Trahe, Fiona <fiona.trahe@intel.com>; ashish.gupta@caviumnetworks.com; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH 2/2] compressdev: add huffman encoding flags
> 
> Added Huffman fixed and dynamic encoding feature flags,
> so an application can query if a device supports
> these two types, when performing DEFLATE compression.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
>  drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
>  lib/librte_compressdev/rte_comp.c             | 4 ++++
>  lib/librte_compressdev/rte_comp.h             | 4 ++++
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> b/drivers/compress/isal/isal_compress_pmd_ops.c
> index 970a0413b..585f22802 100644
> --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> @@ -12,7 +12,9 @@
>  static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
>  	{
>  		.algo = RTE_COMP_ALGO_DEFLATE,
> -		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> +		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> +					RTE_COMP_FF_HUFFMAN_FIXED |
> +					RTE_COMP_FF_HUFFMAN_DYNAMIC,
>  		.window_size = {
>  			.min = 15,
>  			.max = 15,
> diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
> index ea7692ae7..9711a86c8 100644
> --- a/lib/librte_compressdev/rte_comp.c
> +++ b/lib/librte_compressdev/rte_comp.c
> @@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
>  		return "SHA2_SHA256_HASH";
>  	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
>  		return "SHAREABLE_PRIV_XFORM";
> +	case RTE_COMP_FF_HUFFMAN_FIXED:
> +		return "HUFFMAN_FIXED";
> +	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> +		return "HUFFMAN_DYNAMIC";
[Fiona] Thanks for adding this. 
Just in case any other algos are added in future which also use Huffman encoding I'd suggest
renaming to include DEFLATE, e.g. RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC


>  	default:
>  		return NULL;
>  	}
> diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
> index 3ce6a80e1..c6a542c0c 100644
> --- a/lib/librte_compressdev/rte_comp.h
> +++ b/lib/librte_compressdev/rte_comp.h
> @@ -62,6 +62,10 @@ extern "C" {
>   * to create as many priv_xforms as it expects to have stateless
>   * operations in-flight.
>   */
> +#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
> +/**< Fixed huffman enconding is supported */
> +#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
> +/**< Dynamic huffman enconding is supported */
[Fiona] typo encoding.

>  /** Status of comp operation */
>  enum rte_comp_op_status {
> --
> 2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27 15:14 ` [PATCH " Trahe, Fiona
@ 2018-06-27 15:33   ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-06-27 15:33 UTC (permalink / raw)
  To: Trahe, Fiona, ashish.gupta, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: Trahe, Fiona
> Sent: Wednesday, June 27, 2018 4:14 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>
> Subject: RE: [PATCH 1/2] compressdev: replace mbuf scatter gather flag
> 
> Hi Pablo,
> 
> > -----Original Message-----
> > From: De Lara Guarch, Pablo
> > Sent: Wednesday, June 27, 2018 6:51 AM
> > To: Trahe, Fiona <fiona.trahe@intel.com>;
> > ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> > Cc: dev@dpdk.org; De Lara Guarch, Pablo
> > <pablo.de.lara.guarch@intel.com>
> > Subject: [PATCH 1/2] compressdev: replace mbuf scatter gather flag
> >
> > The current mbuf scatter gatter feature flag is
> [Fiona] typo - gather

Will fix.

> 
> > 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_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT
> > - RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
> > - RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT
> [Fiona] oops! CRYPTODEV?? Here and below in docs

Oops... will fix!! :P
> 
> >
> > 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>
> > ---
> >  doc/guides/rel_notes/release_18_08.rst |  6 ++++++
> >  lib/librte_compressdev/rte_comp.c      |  8 ++++++--
> >  lib/librte_compressdev/rte_comp.h      | 30 ++++++++++++++++++++----------
> >  3 files changed, 32 insertions(+), 12 deletions(-)
> >
> > diff --git a/doc/guides/rel_notes/release_18_08.rst
> > b/doc/guides/rel_notes/release_18_08.rst
> > index bc0124295..1fc38418a 100644
> > --- a/doc/guides/rel_notes/release_18_08.rst
> > +++ b/doc/guides/rel_notes/release_18_08.rst
> > @@ -60,6 +60,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_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT``
> > +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
> > +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
> > +
> >
> 
> > +#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT	(1ULL << 2)
> > +/**< Out-of-place Scatter-gather (SGL) mbufs are
> > + * supported in input and output
> > + */
> > +#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT	(1ULL << 3)
> > +/**< Out-of-place Scatter-gather (SGL) mbufs are supported
> > + * in input, but only flat buffers (FB) are supported in output  */
> [Fiona] I'd replace "but only.." with "combined with FB in output"
> As a PMD can set more than one of these flags, so the but only is misleading in
> this case.
> Same with next flag.

OK, will fix. Thanks!

> 

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27 15:22   ` Trahe, Fiona
@ 2018-06-27 15:36     ` De Lara Guarch, Pablo
  2018-06-27 17:35       ` Trahe, Fiona
  0 siblings, 1 reply; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-06-27 15:36 UTC (permalink / raw)
  To: Trahe, Fiona, ashish.gupta, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: Trahe, Fiona
> Sent: Wednesday, June 27, 2018 4:23 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>
> Subject: RE: [PATCH 2/2] compressdev: add huffman encoding flags
> 
> Hi Pablo,
> 
> 
> > -----Original Message-----
> > From: De Lara Guarch, Pablo
> > Sent: Wednesday, June 27, 2018 6:51 AM
> > To: Trahe, Fiona <fiona.trahe@intel.com>;
> > ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> > Cc: dev@dpdk.org; De Lara Guarch, Pablo
> > <pablo.de.lara.guarch@intel.com>
> > Subject: [PATCH 2/2] compressdev: add huffman encoding flags
> >
> > Added Huffman fixed and dynamic encoding feature flags, so an
> > application can query if a device supports these two types, when
> > performing DEFLATE compression.
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> > ---
> >  drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
> >  lib/librte_compressdev/rte_comp.c             | 4 ++++
> >  lib/librte_compressdev/rte_comp.h             | 4 ++++
> >  3 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> > b/drivers/compress/isal/isal_compress_pmd_ops.c
> > index 970a0413b..585f22802 100644
> > --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> > +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> > @@ -12,7 +12,9 @@
> >  static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
> >  	{
> >  		.algo = RTE_COMP_ALGO_DEFLATE,
> > -		.comp_feature_flags =
> 	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> > +		.comp_feature_flags =
> 	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> > +					RTE_COMP_FF_HUFFMAN_FIXED |
> > +					RTE_COMP_FF_HUFFMAN_DYNAMIC,
> >  		.window_size = {
> >  			.min = 15,
> >  			.max = 15,
> > diff --git a/lib/librte_compressdev/rte_comp.c
> > b/lib/librte_compressdev/rte_comp.c
> > index ea7692ae7..9711a86c8 100644
> > --- a/lib/librte_compressdev/rte_comp.c
> > +++ b/lib/librte_compressdev/rte_comp.c
> > @@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
> >  		return "SHA2_SHA256_HASH";
> >  	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
> >  		return "SHAREABLE_PRIV_XFORM";
> > +	case RTE_COMP_FF_HUFFMAN_FIXED:
> > +		return "HUFFMAN_FIXED";
> > +	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> > +		return "HUFFMAN_DYNAMIC";
> [Fiona] Thanks for adding this.
> Just in case any other algos are added in future which also use Huffman
> encoding I'd suggest renaming to include DEFLATE, e.g.
> RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC

Since these flags are set per algorithm (in capabilities),
do you think it is needed to specify DEFLATE?

> 
> 
> >  	default:
> >  		return NULL;
> >  	}
> > diff --git a/lib/librte_compressdev/rte_comp.h
> > b/lib/librte_compressdev/rte_comp.h
> > index 3ce6a80e1..c6a542c0c 100644
> > --- a/lib/librte_compressdev/rte_comp.h
> > +++ b/lib/librte_compressdev/rte_comp.h
> > @@ -62,6 +62,10 @@ extern "C" {
> >   * to create as many priv_xforms as it expects to have stateless
> >   * operations in-flight.
> >   */
> > +#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
> > +/**< Fixed huffman enconding is supported */
> > +#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
> > +/**< Dynamic huffman enconding is supported */
> [Fiona] typo encoding.

Will fix.

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27 15:36     ` De Lara Guarch, Pablo
@ 2018-06-27 17:35       ` Trahe, Fiona
  0 siblings, 0 replies; 45+ messages in thread
From: Trahe, Fiona @ 2018-06-27 17:35 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, ashish.gupta, Daly, Lee; +Cc: dev, Trahe, Fiona

> > > +	case RTE_COMP_FF_HUFFMAN_FIXED:
> > > +		return "HUFFMAN_FIXED";
> > > +	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> > > +		return "HUFFMAN_DYNAMIC";
> > [Fiona] Thanks for adding this.
> > Just in case any other algos are added in future which also use Huffman
> > encoding I'd suggest renaming to include DEFLATE, e.g.
> > RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC
> 
> Since these flags are set per algorithm (in capabilities),
> do you think it is needed to specify DEFLATE?
> 
[Fiona] You're right, I forgot that. So better not to include DEFLATE. 

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27 12:16 ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27 12:16   ` [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-06-28  7:48   ` Trahe, Fiona
  2018-06-29 10:08   ` Trahe, Fiona
  2 siblings, 0 replies; 45+ messages in thread
From: Trahe, Fiona @ 2018-06-28  7:48 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, ashish.gupta, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 1:16 PM
> To: Trahe, Fiona <fiona.trahe@intel.com>; ashish.gupta@caviumnetworks.com; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
> 
> 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_OUT_OF_PLACE_SGL_IN_SGL_OUT
> - RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
> - RTE_COMP_FF_OUT_OF_PLACE_FB_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>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v2 2/2] compressdev: add huffman encoding flags
  2018-06-27 12:16   ` [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-06-28  7:49     ` Trahe, Fiona
  0 siblings, 0 replies; 45+ messages in thread
From: Trahe, Fiona @ 2018-06-28  7:49 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, ashish.gupta, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 1:16 PM
> To: Trahe, Fiona <fiona.trahe@intel.com>; ashish.gupta@caviumnetworks.com; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v2 2/2] compressdev: add huffman encoding flags
> 
> Added Huffman fixed and dynamic encoding feature flags,
> so an application can query if a device supports
> these two types, when performing DEFLATE compression.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27  5:50 ` [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
  2018-06-27 15:22   ` Trahe, Fiona
@ 2018-06-28 10:00   ` Daly, Lee
  1 sibling, 0 replies; 45+ messages in thread
From: Daly, Lee @ 2018-06-28 10:00 UTC (permalink / raw)
  To: De Lara Guarch, Pablo; +Cc: dev, Trahe, Fiona, ashish.gupta

Hi Pablo,

> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 6:51 AM
> To: Trahe, Fiona <fiona.trahe@intel.com>;
> ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH 2/2] compressdev: add huffman encoding flags
> 
> Added Huffman fixed and dynamic encoding feature flags, so an application
> can query if a device supports these two types, when performing DEFLATE
> compression.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
>  drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
>  lib/librte_compressdev/rte_comp.c             | 4 ++++
>  lib/librte_compressdev/rte_comp.h             | 4 ++++
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> b/drivers/compress/isal/isal_compress_pmd_ops.c
> index 970a0413b..585f22802 100644
> --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> @@ -12,7 +12,9 @@
>  static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
>  	{
>  		.algo = RTE_COMP_ALGO_DEFLATE,
> -		.comp_feature_flags =
> 	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> +		.comp_feature_flags =
> 	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> +					RTE_COMP_FF_HUFFMAN_FIXED |
> +
> 	RTE_COMP_FF_HUFFMAN_DYNAMIC,
>  		.window_size = {
>  			.min = 15,
>  			.max = 15,
Acked-by: Lee Daly <lee.daly@intel.com>
Thanks,
Lee.

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27 12:16 ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27 12:16   ` [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
  2018-06-28  7:48   ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Trahe, Fiona
@ 2018-06-29 10:08   ` Trahe, Fiona
  2 siblings, 0 replies; 45+ messages in thread
From: Trahe, Fiona @ 2018-06-29 10:08 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, ashish.gupta, Daly, Lee; +Cc: dev, Trahe, Fiona

Hi Pablo,

The Chained mbufs feature in doc/guides/compressdevs/features/default.ini needs updating with this change.
Also while you're updating it I think we wanted to rename By-Pass? To Pass-thru?

Fiona

> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 1:16 PM
> To: Trahe, Fiona <fiona.trahe@intel.com>; ashish.gupta@caviumnetworks.com; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
> 
> 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_OUT_OF_PLACE_SGL_IN_SGL_OUT
> - RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
> - RTE_COMP_FF_OUT_OF_PLACE_FB_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>
> ---
> 
> Changes in v2:
> - Fixed typos
> - Rephrased comments
> 
>  doc/guides/rel_notes/release_18_08.rst |  6 ++++++
>  lib/librte_compressdev/rte_comp.c      |  8 ++++++--
>  lib/librte_compressdev/rte_comp.h      | 30 ++++++++++++++++++++----------
>  3 files changed, 32 insertions(+), 12 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
> index bc0124295..18c8b4bd1 100644
> --- a/doc/guides/rel_notes/release_18_08.rst
> +++ b/doc/guides/rel_notes/release_18_08.rst
> @@ -60,6 +60,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_OUT_OF_PLACE_SGL_IN_SGL_OUT``
> +  - ``RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
> +  - ``RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
> +
> 
>  ABI Changes
>  -----------
> diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
> index d596ba872..ea7692ae7 100644
> --- a/lib/librte_compressdev/rte_comp.c
> +++ b/lib/librte_compressdev/rte_comp.c
> @@ -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_OUT_OF_PLACE_SGL_IN_SGL_OUT:
> +		return "OUT_OF_PLACE_SGL_IN_SGL_OUT";
> +	case RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT:
> +		return "OUT_OF_PLACE_SGL_IN_FB_OUT";
> +	case RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT:
> +		return "OUT_OF_PLACE_FB_IN_SGL_OUT";
>  	case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
>  		return "MULTI_PKT_CHECKSUM";
>  	case RTE_COMP_FF_ADLER32_CHECKSUM:
> diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
> index 5b513c77e..f3742dafb 100644
> --- a/lib/librte_compressdev/rte_comp.h
> +++ b/lib/librte_compressdev/rte_comp.h
> @@ -30,23 +30,33 @@ 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_OUT_OF_PLACE_SGL_IN_SGL_OUT	(1ULL << 2)
> +/**< Out-of-place Scatter-gather (SGL) mbufs are
> + * supported in input and output
> + */
> +#define RTE_COMP_FF_OUT_OF_PLACE_SGL_IN_FB_OUT	(1ULL << 3)
> +/**< Out-of-place Scatter-gather (SGL) mbufs are supported
> + * in input, combined with flat buffers (FB) in output
> + */
> +#define RTE_COMP_FF_OUT_OF_PLACE_FB_IN_SGL_OUT	(1ULL << 4)
> +/**< Out-of-place Scatter-gather (SGL) mbufs are supported
> + * in output, combined with flat buffers (FB) 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
> --
> 2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (2 preceding siblings ...)
  2018-06-27 15:14 ` [PATCH " Trahe, Fiona
@ 2018-07-04 14:10 ` Pablo de Lara
  2018-07-04 14:10   ` [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
                     ` (3 more replies)
  2018-07-06  2:54 ` [PATCH v4 " Pablo de Lara
  2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  5 siblings, 4 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-07-04 14:10 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

In PMD feature matrices (.ini files), it is not required to
have the list of features that are not supported,
just the ones that are.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/compressdevs/features/isal.ini | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/doc/guides/compressdevs/features/isal.ini b/doc/guides/compressdevs/features/isal.ini
index ad2718df0..1d4ff1c41 100644
--- a/doc/guides/compressdevs/features/isal.ini
+++ b/doc/guides/compressdevs/features/isal.ini
@@ -9,14 +9,6 @@ CPU SSE        = Y
 CPU AVX        = Y
 CPU AVX2       = Y
 CPU AVX512     = Y
-CPU NEON       =
-Stateful       =
-By-Pass        =
-Chained mbufs  =
 Deflate        = Y
-LZS            =
-Adler32        =
-Crc32          =
-Adler32&Crc32  =
 Fixed          = Y
 Dynamic        = Y
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
@ 2018-07-04 14:10   ` Pablo de Lara
  2018-07-05  2:41     ` Verma, Shally
  2018-07-05  8:07     ` Trahe, Fiona
  2018-07-04 14:10   ` [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
                     ` (2 subsequent siblings)
  3 siblings, 2 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-07-04 14:10 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

Renamed feature "Bypass" to "Pass-through",
as it is a more explicit name, meaning that the PMD
is capable of passing the mbufs through it,
without making any modifications (i.e.. NULL algorithm).

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/compressdevs/features/default.ini | 2 +-
 doc/guides/compressdevs/overview.rst         | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index 795fc5577..a88414d23 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -13,7 +13,7 @@ CPU AVX2       =
 CPU AVX512     =
 CPU NEON       =
 Stateful       =
-By-Pass        =
+Pass-through   =
 Chained mbufs  =
 Deflate        =
 LZS            =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index ca37de175..b16c36fd6 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -10,3 +10,8 @@ Supported Feature Flags
 .. _table_compression_pmd_features:
 
 .. include:: overview_feature_table.txt
+
+.. Note::
+
+   - "Pass-through" feature flag refers to the ability of the PMD
+     to let mbufs pass-through it, without making any modifications to it.
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-04 14:10   ` [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
@ 2018-07-04 14:10   ` Pablo de Lara
  2018-07-05  8:38     ` Verma, Shally
  2018-07-04 14:10   ` [PATCH v3 4/4] compressdev: add huffman encoding flags Pablo de Lara
  2018-07-05  8:10   ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Daly, Lee
  3 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-07-04 14:10 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

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_FB_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>
---

Changes in v3:
- Replaced Out-of-place with OOP
- Added new feature flags in default.ini

Changes in v2:
- Fixed typos
- Rephrased comments

 doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
 doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
 doc/guides/rel_notes/release_18_08.rst       |  6 +++++
 lib/librte_compressdev/rte_comp.c            |  8 +++++--
 lib/librte_compressdev/rte_comp.h            | 30 ++++++++++++++++--------
 5 files changed, 64 insertions(+), 28 deletions(-)

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index a88414d23..003f3f3a5 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -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 FB  Out  =
+OOP FB  In SGL Out  =
+Deflate             =
+LZS                 =
+Adler32             =
+Crc32               =
+Adler32&Crc32       =
+Fixed               =
+Dynamic             =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index b16c36fd6..68205c77d 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -15,3 +15,17 @@ Supported Feature Flags
 
    - "Pass-through" feature flag refers to the ability of the PMD
      to let mbufs pass-through it, without making any modifications to it.
+
+   - "OOP SGL In SGL Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
+     which means that the input and output mbufs can consist of multiple segments.
+
+   - "OOP SGL In FB Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Flat Buffers Output",
+     which means that the input mbuf can consist of multiple segments combined
+     with a single segment mbuf in the output.
+
+   - "OOP FB In SGL Out" feature flag stands for
+     "Out-of-place Flat Buffers Input, Scatter-gather list Output",
+     which means that the output mbuf can consist of multiple segments combined
+     with a single segment mbuf in the input.
diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
index bc0124295..4ae37cb3b 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -60,6 +60,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_FB_OUT``
+  - ``RTE_COMP_FF_OOP_FB_IN_SGL_OUT``
+
 
 ABI Changes
 -----------
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index d596ba872..f5bd3a6c0 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -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_FB_OUT:
+		return "OOP_SGL_IN_FB_OUT";
+	case RTE_COMP_FF_OOP_FB_IN_SGL_OUT:
+		return "OOP_FB_IN_SGL_OUT";
 	case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
 		return "MULTI_PKT_CHECKSUM";
 	case RTE_COMP_FF_ADLER32_CHECKSUM:
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 5b513c77e..6660cee82 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -30,23 +30,33 @@ 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) mbufs are
+ * supported in input and output
+ */
+#define RTE_COMP_FF_OOP_SGL_IN_FB_OUT		(1ULL << 3)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in input, combined with flat buffers (FB) in output
+ */
+#define RTE_COMP_FF_OOP_FB_IN_SGL_OUT		(1ULL << 4)
+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
+ * in output, combined with flat buffers (FB) 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
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v3 4/4] compressdev: add huffman encoding flags
  2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-04 14:10   ` [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-04 14:10   ` [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-07-04 14:10   ` Pablo de Lara
  2018-07-05  8:14     ` Verma, Shally
  2018-07-05  8:10   ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Daly, Lee
  3 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-07-04 14:10 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---

Changes in v3:

- No change

Changes in v2:

- Fixed typo

 drivers/compress/isal/isal_compress_pmd_ops.c |  4 +++-
 lib/librte_compressdev/rte_comp.c             |  4 ++++
 lib/librte_compressdev/rte_comp.h             |  4 ++++
 test/test/test_compressdev.c                  | 16 ++++++++++++++++
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c
index 970a0413b..585f22802 100644
--- a/drivers/compress/isal/isal_compress_pmd_ops.c
+++ b/drivers/compress/isal/isal_compress_pmd_ops.c
@@ -12,7 +12,9 @@
 static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
 	{
 		.algo = RTE_COMP_ALGO_DEFLATE,
-		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
+		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
+					RTE_COMP_FF_HUFFMAN_FIXED |
+					RTE_COMP_FF_HUFFMAN_DYNAMIC,
 		.window_size = {
 			.min = 15,
 			.max = 15,
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index f5bd3a6c0..5ed1d0daa 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
 		return "SHA2_SHA256_HASH";
 	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
 		return "SHAREABLE_PRIV_XFORM";
+	case RTE_COMP_FF_HUFFMAN_FIXED:
+		return "HUFFMAN_FIXED";
+	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
+		return "HUFFMAN_DYNAMIC";
 	default:
 		return NULL;
 	}
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 6660cee82..c9245cce1 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -62,6 +62,10 @@ extern "C" {
  * to create as many priv_xforms as it expects to have stateless
  * operations in-flight.
  */
+#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
+/**< Fixed huffman encoding is supported */
+#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
+/**< Dynamic huffman encoding is supported */
 
 /** Status of comp operation */
 enum rte_comp_op_status {
diff --git a/test/test/test_compressdev.c b/test/test/test_compressdev.c
index 640942bac..f960963a4 100644
--- a/test/test/test_compressdev.c
+++ b/test/test/test_compressdev.c
@@ -846,6 +846,14 @@ test_compressdev_deflate_stateless_fixed(void)
 	const char *test_buffer;
 	uint16_t i;
 	int ret;
+	const struct rte_compressdev_capabilities *capab;
+
+	capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
+	TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
+
+	if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_FIXED) == 0)
+		return -ENOTSUP;
+
 	struct rte_comp_xform *compress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
 
@@ -905,6 +913,14 @@ test_compressdev_deflate_stateless_dynamic(void)
 	struct rte_comp_xform *compress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
 
+	const struct rte_compressdev_capabilities *capab;
+
+	capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
+	TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
+
+	if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_DYNAMIC) == 0)
+		return -ENOTSUP;
+
 	if (compress_xform == NULL) {
 		RTE_LOG(ERR, USER1,
 			"Compress xform could not be created\n");
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-04 14:10   ` [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
@ 2018-07-05  2:41     ` Verma, Shally
  2018-07-05 11:03       ` De Lara Guarch, Pablo
  2018-07-05  8:07     ` Trahe, Fiona
  1 sibling, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-05  2:41 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly, Sahu, Sunila; +Cc: dev



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 04 July 2018 19:41
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v3 2/4] doc: rename compress feature flag
>
>External Email
>
>Renamed feature "Bypass" to "Pass-through",
>as it is a more explicit name, meaning that the PMD
>is capable of passing the mbufs through it,
>without making any modifications (i.e.. NULL algorithm).
>
>Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>---
> doc/guides/compressdevs/features/default.ini | 2 +-
> doc/guides/compressdevs/overview.rst         | 5 +++++
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
>diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
>index 795fc5577..a88414d23 100644
>--- a/doc/guides/compressdevs/features/default.ini
>+++ b/doc/guides/compressdevs/features/default.ini
>@@ -13,7 +13,7 @@ CPU AVX2       =
> CPU AVX512     =
> CPU NEON       =
> Stateful       =
>-By-Pass        =
>+Pass-through   =
> Chained mbufs  =
> Deflate        =
> LZS            =
>diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
>index ca37de175..b16c36fd6 100644
>--- a/doc/guides/compressdevs/overview.rst
>+++ b/doc/guides/compressdevs/overview.rst
>@@ -10,3 +10,8 @@ Supported Feature Flags
> .. _table_compression_pmd_features:
>
> .. include:: overview_feature_table.txt
>+
>+.. Note::
>+
>+   - "Pass-through" feature flag refers to the ability of the PMD
>+     to let mbufs pass-through it, without making any modifications to it.
>--
>2.14.4
[Shally] Rather than mbufs, use generic name input / output buffers. As at some point, we may add alternative to mbufs.
Abd rephrase a bit, such as, in pass-through mode PMD will just copy input to output.

Thanks
Shally

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-04 14:10   ` [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-05  2:41     ` Verma, Shally
@ 2018-07-05  8:07     ` Trahe, Fiona
  1 sibling, 0 replies; 45+ messages in thread
From: Trahe, Fiona @ 2018-07-05  8:07 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, shally.verma, ashish.gupta, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, July 4, 2018 3:11 PM
> To: shally.verma@caviumnetworks.com; ashish.gupta@caviumnetworks.com; Trahe, Fiona
> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v3 2/4] doc: rename compress feature flag
> 
> Renamed feature "Bypass" to "Pass-through",
> as it is a more explicit name, meaning that the PMD
> is capable of passing the mbufs through it,
> without making any modifications (i.e.. NULL algorithm).
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
                     ` (2 preceding siblings ...)
  2018-07-04 14:10   ` [PATCH v3 4/4] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-07-05  8:10   ` Daly, Lee
  3 siblings, 0 replies; 45+ messages in thread
From: Daly, Lee @ 2018-07-05  8:10 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, shally.verma, ashish.gupta, Trahe, Fiona; +Cc: dev

> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, July 4, 2018 3:11 PM
> To: shally.verma@caviumnetworks.com;
> ashish.gupta@caviumnetworks.com; Trahe, Fiona <fiona.trahe@intel.com>;
> Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix
> 
> In PMD feature matrices (.ini files), it is not required to have the list of
> features that are not supported, just the ones that are.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
>  doc/guides/compressdevs/features/isal.ini | 8 --------
>  1 file changed, 8 deletions(-)
> 
> diff --git a/doc/guides/compressdevs/features/isal.ini
> b/doc/guides/compressdevs/features/isal.ini
> index ad2718df0..1d4ff1c41 100644
> --- a/doc/guides/compressdevs/features/isal.ini
> +++ b/doc/guides/compressdevs/features/isal.ini
> @@ -9,14 +9,6 @@ CPU SSE        = Y
>  CPU AVX        = Y
>  CPU AVX2       = Y
>  CPU AVX512     = Y
> -CPU NEON       =
> -Stateful       =
> -By-Pass        =
> -Chained mbufs  =
>  Deflate        = Y
> -LZS            =
> -Adler32        =
> -Crc32          =
> -Adler32&Crc32  =
>  Fixed          = Y
>  Dynamic        = Y
> --
> 2.14.4
Acked-by: Lee Daly <lee.daly@intel.com>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 4/4] compressdev: add huffman encoding flags
  2018-07-04 14:10   ` [PATCH v3 4/4] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-07-05  8:14     ` Verma, Shally
  2018-07-05 11:21       ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-05  8:14 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly; +Cc: dev



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 04 July 2018 19:41
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v3 4/4] compressdev: add huffman encoding flags
>
>External Email
>
>Added Huffman fixed and dynamic encoding feature flags,
>so an application can query if a device supports
>these two types, when performing DEFLATE compression.
>
>Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Acked-by: Fiona Trahe <fiona.trahe@intel.com>
>---
>
>Changes in v3:
>
>- No change
>
>Changes in v2:
>
>- Fixed typo
>
> drivers/compress/isal/isal_compress_pmd_ops.c |  4 +++-
> lib/librte_compressdev/rte_comp.c             |  4 ++++
> lib/librte_compressdev/rte_comp.h             |  4 ++++
> test/test/test_compressdev.c                  | 16 ++++++++++++++++
> 4 files changed, 27 insertions(+), 1 deletion(-)
>

//snip

>diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
>index f5bd3a6c0..5ed1d0daa 100644
>--- a/lib/librte_compressdev/rte_comp.c
>+++ b/lib/librte_compressdev/rte_comp.c
>@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
>                return "SHA2_SHA256_HASH";
>        case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
>                return "SHAREABLE_PRIV_XFORM";
>+       case RTE_COMP_FF_HUFFMAN_FIXED:
>+               return "HUFFMAN_FIXED";
>+       case RTE_COMP_FF_HUFFMAN_DYNAMIC:
>+               return "HUFFMAN_DYNAMIC";
>        default:
>                return NULL;
>        }
>diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
>index 6660cee82..c9245cce1 100644
>--- a/lib/librte_compressdev/rte_comp.h
>+++ b/lib/librte_compressdev/rte_comp.h
>@@ -62,6 +62,10 @@ extern "C" {
>  * to create as many priv_xforms as it expects to have stateless
>  * operations in-flight.
>  */
>+#define RTE_COMP_FF_HUFFMAN_FIXED              (1ULL << 13)
>+/**< Fixed huffman encoding is supported */
>+#define RTE_COMP_FF_HUFFMAN_DYNAMIC            (1ULL << 14)
>+/**< Dynamic huffman encoding is supported */
>

[Shally] As such okay to have this feature. But while looking at this, got a question:

rte_compressdev_info_get() returns feature flags of type RTE_COMPDEV_FF_xxx
and, rte_compressdev_capability_get() returns PMD capability for specific algo 
using feature flags of type RTE_COMP_FF_xxx. So,
 
1. should rte_compressdev_capability_get() and "struct rte_compressdev_capabilities" be changed to
rte_compressdev_comp_capability_get() or rte_compressdev_algo_capability_get()?

2. where does RTE_COMPDEV_FF_HW_ACCELERATED be set? in dev_info->feature flag or capability->feature_flag?
What if PMD support hw acceleration of one algo but have sw support of another. (say, deflate HW accelerated and LZS sw?)

Thanks
Shally

> /** Status of comp operation */
> enum rte_comp_op_status {
>diff --git a/test/test/test_compressdev.c b/test/test/test_compressdev.c
>index 640942bac..f960963a4 100644
>--- a/test/test/test_compressdev.c
>+++ b/test/test/test_compressdev.c
>@@ -846,6 +846,14 @@ test_compressdev_deflate_stateless_fixed(void)
>        const char *test_buffer;
>        uint16_t i;
>        int ret;
>+       const struct rte_compressdev_capabilities *capab;
>+
>+       capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
>+       TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
>+
>+       if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_FIXED) == 0)
>+               return -ENOTSUP;
>+
>        struct rte_comp_xform *compress_xform =
>                        rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
>
>@@ -905,6 +913,14 @@ test_compressdev_deflate_stateless_dynamic(void)
>        struct rte_comp_xform *compress_xform =
>                        rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
>
>+       const struct rte_compressdev_capabilities *capab;
>+
>+       capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
>+       TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
>+
>+       if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_DYNAMIC) == 0)
>+               return -ENOTSUP;
>+
>        if (compress_xform == NULL) {
>                RTE_LOG(ERR, USER1,
>                        "Compress xform could not be created\n");
>--
>2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-04 14:10   ` [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-07-05  8:38     ` Verma, Shally
  2018-07-05 11:05       ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-05  8:38 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly, Sahu, Sunila; +Cc: dev



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 04 July 2018 19:41
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>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_FB_IN_SGL_OUT
>
[Shally] Believe Out of place is default support on current compression API, so why do we need _OOP_ here?

Thanks
Shally
>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>
>---
>
>Changes in v3:
>- Replaced Out-of-place with OOP
>- Added new feature flags in default.ini
>
>Changes in v2:
>- Fixed typos
>- Rephrased comments
>
> doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
> doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
> doc/guides/rel_notes/release_18_08.rst       |  6 +++++
> lib/librte_compressdev/rte_comp.c            |  8 +++++--
> lib/librte_compressdev/rte_comp.h            | 30 ++++++++++++++++--------
> 5 files changed, 64 insertions(+), 28 deletions(-)
>
>diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
>index a88414d23..003f3f3a5 100644
>--- a/doc/guides/compressdevs/features/default.ini
>+++ b/doc/guides/compressdevs/features/default.ini
>@@ -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 FB  Out  =
>+OOP FB  In SGL Out  =
>+Deflate             =
>+LZS                 =
>+Adler32             =
>+Crc32               =
>+Adler32&Crc32       =
>+Fixed               =
>+Dynamic             =
>diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
>index b16c36fd6..68205c77d 100644
>--- a/doc/guides/compressdevs/overview.rst
>+++ b/doc/guides/compressdevs/overview.rst
>@@ -15,3 +15,17 @@ Supported Feature Flags
>
>    - "Pass-through" feature flag refers to the ability of the PMD
>      to let mbufs pass-through it, without making any modifications to it.
>+
>+   - "OOP SGL In SGL Out" feature flag stands for
>+     "Out-of-place Scatter-gather list Input, Scatter-gater list Output",
>+     which means that the input and output mbufs can consist of multiple segments.
>+
>+   - "OOP SGL In FB Out" feature flag stands for
>+     "Out-of-place Scatter-gather list Input, Flat Buffers Output",
>+     which means that the input mbuf can consist of multiple segments combined
>+     with a single segment mbuf in the output.
>+
>+   - "OOP FB In SGL Out" feature flag stands for
>+     "Out-of-place Flat Buffers Input, Scatter-gather list Output",
>+     which means that the output mbuf can consist of multiple segments combined
>+     with a single segment mbuf in the input.
>diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
>index bc0124295..4ae37cb3b 100644
>--- a/doc/guides/rel_notes/release_18_08.rst
>+++ b/doc/guides/rel_notes/release_18_08.rst
>@@ -60,6 +60,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_FB_OUT``
>+  - ``RTE_COMP_FF_OOP_FB_IN_SGL_OUT``
>+
>
> ABI Changes
> -----------
>diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
>index d596ba872..f5bd3a6c0 100644
>--- a/lib/librte_compressdev/rte_comp.c
>+++ b/lib/librte_compressdev/rte_comp.c
>@@ -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_FB_OUT:
>+               return "OOP_SGL_IN_FB_OUT";
>+       case RTE_COMP_FF_OOP_FB_IN_SGL_OUT:
>+               return "OOP_FB_IN_SGL_OUT";
>        case RTE_COMP_FF_MULTI_PKT_CHECKSUM:
>                return "MULTI_PKT_CHECKSUM";
>        case RTE_COMP_FF_ADLER32_CHECKSUM:
>diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
>index 5b513c77e..6660cee82 100644
>--- a/lib/librte_compressdev/rte_comp.h
>+++ b/lib/librte_compressdev/rte_comp.h
>@@ -30,23 +30,33 @@ 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) mbufs are
>+ * supported in input and output
>+ */
>+#define RTE_COMP_FF_OOP_SGL_IN_FB_OUT          (1ULL << 3)
>+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
>+ * in input, combined with flat buffers (FB) in output
>+ */
>+#define RTE_COMP_FF_OOP_FB_IN_SGL_OUT          (1ULL << 4)
>+/**< Out-of-place Scatter-gather (SGL) mbufs are supported
>+ * in output, combined with flat buffers (FB) 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
>--
>2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-05  2:41     ` Verma, Shally
@ 2018-07-05 11:03       ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-05 11:03 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee, Sahu, Sunila; +Cc: dev



> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 3:41 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 2/4] doc: rename compress feature flag
> 
> 
> 
> >-----Original Message-----
> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 04 July 2018 19:41
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Subject: [PATCH v3 2/4] doc: rename compress feature flag
> >
> >External Email
> >
> >Renamed feature "Bypass" to "Pass-through", as it is a more explicit
> >name, meaning that the PMD is capable of passing the mbufs through it,
> >without making any modifications (i.e.. NULL algorithm).
> >
> >Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >---
> > doc/guides/compressdevs/features/default.ini | 2 +-
> > doc/guides/compressdevs/overview.rst         | 5 +++++
> > 2 files changed, 6 insertions(+), 1 deletion(-)
> >
> >diff --git a/doc/guides/compressdevs/features/default.ini
> >b/doc/guides/compressdevs/features/default.ini
> >index 795fc5577..a88414d23 100644
> >--- a/doc/guides/compressdevs/features/default.ini
> >+++ b/doc/guides/compressdevs/features/default.ini
> >@@ -13,7 +13,7 @@ CPU AVX2       =
> > CPU AVX512     =
> > CPU NEON       =
> > Stateful       =
> >-By-Pass        =
> >+Pass-through   =
> > Chained mbufs  =
> > Deflate        =
> > LZS            =
> >diff --git a/doc/guides/compressdevs/overview.rst
> >b/doc/guides/compressdevs/overview.rst
> >index ca37de175..b16c36fd6 100644
> >--- a/doc/guides/compressdevs/overview.rst
> >+++ b/doc/guides/compressdevs/overview.rst
> >@@ -10,3 +10,8 @@ Supported Feature Flags  ..
> >_table_compression_pmd_features:
> >
> > .. include:: overview_feature_table.txt
> >+
> >+.. Note::
> >+
> >+   - "Pass-through" feature flag refers to the ability of the PMD
> >+     to let mbufs pass-through it, without making any modifications to it.
> >--
> >2.14.4
> [Shally] Rather than mbufs, use generic name input / output buffers. As at some
> point, we may add alternative to mbufs.
> Abd rephrase a bit, such as, in pass-through mode PMD will just copy input to
> output.

Ok. Will do.

> 
> Thanks
> Shally
> 

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-05  8:38     ` Verma, Shally
@ 2018-07-05 11:05       ` De Lara Guarch, Pablo
  2018-07-05 11:12         ` Verma, Shally
  0 siblings, 1 reply; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-05 11:05 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee, Sahu, Sunila; +Cc: dev



> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 9:39 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 04 July 2018 19:41
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> >
> >External Email
> >
> >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_FB_IN_SGL_OUT
> >
> [Shally] Believe Out of place is default support on current compression API, so
> why do we need _OOP_ here?

Hi Shally,

You are right, but I just wanted to clarify that the scenario is for Out of place only.

Thanks,
Pablo

> 
> Thanks
> Shally
> >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>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-05 11:05       ` De Lara Guarch, Pablo
@ 2018-07-05 11:12         ` Verma, Shally
  2018-07-05 11:25           ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-05 11:12 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Gupta, Ashish, Trahe, Fiona, Daly, Lee,
	Sahu, Sunila
  Cc: dev



>-----Original Message-----
>From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 05 July 2018 16:36
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
>Daly, Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>Cc: dev@dpdk.org
>Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>> -----Original Message-----
>> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
>> Sent: Thursday, July 5, 2018 9:39 AM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
>> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
>> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>> Cc: dev@dpdk.org
>> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>>
>>
>>
>> >-----Original Message-----
>> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>> >Sent: 04 July 2018 19:41
>> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
>> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
>> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>> >
>> >External Email
>> >
>> >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_FB_IN_SGL_OUT
>> >
>> [Shally] Believe Out of place is default support on current compression API, so
>> why do we need _OOP_ here?
>
>Hi Shally,
>
>You are right, but I just wanted to clarify that the scenario is for Out of place only.
>
Ok. But that looks redundant to me. Though not likely, tomorrow if some algo support in-place,
Then we will end up adding in_place equivalent of same. So would prefer to keep naming generic of in/out place
and specific to Scatter-gather in/out support.

>Thanks,
>Pablo
>
>>
>> Thanks
>> Shally
>> >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>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 4/4] compressdev: add huffman encoding flags
  2018-07-05  8:14     ` Verma, Shally
@ 2018-07-05 11:21       ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-05 11:21 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 9:14 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 4/4] compressdev: add huffman encoding flags
> 
> 
> 
> >-----Original Message-----
> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 04 July 2018 19:41
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Subject: [PATCH v3 4/4] compressdev: add huffman encoding flags
> >
> >External Email
> >
> >Added Huffman fixed and dynamic encoding feature flags, so an
> >application can query if a device supports these two types, when
> >performing DEFLATE compression.
> >
> >Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Acked-by: Fiona Trahe <fiona.trahe@intel.com>
> >---
> >
> >Changes in v3:
> >
> >- No change
> >
> >Changes in v2:
> >
> >- Fixed typo
> >
> > drivers/compress/isal/isal_compress_pmd_ops.c |  4 +++-
> > lib/librte_compressdev/rte_comp.c             |  4 ++++
> > lib/librte_compressdev/rte_comp.h             |  4 ++++
> > test/test/test_compressdev.c                  | 16 ++++++++++++++++
> > 4 files changed, 27 insertions(+), 1 deletion(-)
> >
> 
> //snip
> 
> >diff --git a/lib/librte_compressdev/rte_comp.c
> >b/lib/librte_compressdev/rte_comp.c
> >index f5bd3a6c0..5ed1d0daa 100644
> >--- a/lib/librte_compressdev/rte_comp.c
> >+++ b/lib/librte_compressdev/rte_comp.c
> >@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
> >                return "SHA2_SHA256_HASH";
> >        case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
> >                return "SHAREABLE_PRIV_XFORM";
> >+       case RTE_COMP_FF_HUFFMAN_FIXED:
> >+               return "HUFFMAN_FIXED";
> >+       case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> >+               return "HUFFMAN_DYNAMIC";
> >        default:
> >                return NULL;
> >        }
> >diff --git a/lib/librte_compressdev/rte_comp.h
> >b/lib/librte_compressdev/rte_comp.h
> >index 6660cee82..c9245cce1 100644
> >--- a/lib/librte_compressdev/rte_comp.h
> >+++ b/lib/librte_compressdev/rte_comp.h
> >@@ -62,6 +62,10 @@ extern "C" {
> >  * to create as many priv_xforms as it expects to have stateless
> >  * operations in-flight.
> >  */
> >+#define RTE_COMP_FF_HUFFMAN_FIXED              (1ULL << 13)
> >+/**< Fixed huffman encoding is supported */
> >+#define RTE_COMP_FF_HUFFMAN_DYNAMIC            (1ULL << 14)
> >+/**< Dynamic huffman encoding is supported */
> >
> 
> [Shally] As such okay to have this feature. But while looking at this, got a
> question:
> 
> rte_compressdev_info_get() returns feature flags of type
> RTE_COMPDEV_FF_xxx and, rte_compressdev_capability_get() returns PMD
> capability for specific algo using feature flags of type RTE_COMP_FF_xxx. So,
> 
> 1. should rte_compressdev_capability_get() and "struct
> rte_compressdev_capabilities" be changed to
> rte_compressdev_comp_capability_get() or
> rte_compressdev_algo_capability_get()?

I would prefer to leave it as it is, as it matches the function name in cryptodev, which is doing something similar.
However, I don't have an strong opinion on this. Maybe Fiona can break the tie? :)

> 
> 2. where does RTE_COMPDEV_FF_HW_ACCELERATED be set? in dev_info-
> >feature flag or capability->feature_flag?
> What if PMD support hw acceleration of one algo but have sw support of
> another. (say, deflate HW accelerated and LZS sw?)

It is set in dev_info->feature_flag.
As far as I know, this is not expected. HW_ACCELERATED should apply to the whole device.
The device will be either hardware or software. If it is hardware, but it uses software-based
Implementation for an algorithm, still the device is hardware.

> 
> Thanks
> Shally

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-05 11:12         ` Verma, Shally
@ 2018-07-05 11:25           ` De Lara Guarch, Pablo
  2018-07-05 11:58             ` Verma, Shally
  0 siblings, 1 reply; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-05 11:25 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee, Sahu, Sunila; +Cc: dev

> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 12:13 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 05 July 2018 16:36
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> >Cc: dev@dpdk.org
> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >flag
> >
> >External Email
> >
> >> -----Original Message-----
> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> >> Sent: Thursday, July 5, 2018 9:39 AM
> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
> >> <Sunila.Sahu@cavium.com>
> >> Cc: dev@dpdk.org
> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> flag
> >>
> >>
> >>
> >> >-----Original Message-----
> >> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >> >Sent: 04 July 2018 19:41
> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> >> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> >flag
> >> >
> >> >External Email
> >> >
> >> >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_FB_IN_SGL_OUT
> >> >
> >> [Shally] Believe Out of place is default support on current
> >> compression API, so why do we need _OOP_ here?
> >
> >Hi Shally,
> >
> >You are right, but I just wanted to clarify that the scenario is for Out of place
> only.
> >
> Ok. But that looks redundant to me. Though not likely, tomorrow if some algo
> support in-place, Then we will end up adding in_place equivalent of same. So
> would prefer to keep naming generic of in/out place and specific to Scatter-
> gather in/out support.

I think I am not quite following you. Actually, if in the future we support
In-place, then it is important to have OOP in the macro, to specify that SGL
is supported for Out-of-place and maybe not in-place (like in cryptodev).
Otherwise, we would need to break the API, which can be avoided now.

Thanks,
Pablo

> 
> >Thanks,
> >Pablo
> >
> >>
> >> Thanks
> >> Shally
> >> >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>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-05 11:25           ` De Lara Guarch, Pablo
@ 2018-07-05 11:58             ` Verma, Shally
  2018-07-06  8:40               ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-05 11:58 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Gupta, Ashish, Trahe, Fiona, Daly, Lee,
	Sahu, Sunila
  Cc: dev



>-----Original Message-----
>From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 05 July 2018 16:56
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
>Daly, Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>Cc: dev@dpdk.org
>Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>> -----Original Message-----
>> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
>> Sent: Thursday, July 5, 2018 12:13 PM
>> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
>> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
>> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>> Cc: dev@dpdk.org
>> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>>
>>
>>
>> >-----Original Message-----
>> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>> >Sent: 05 July 2018 16:36
>> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
>> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
>> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>> >Cc: dev@dpdk.org
>> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
>> >flag
>> >
>> >External Email
>> >
>> >> -----Original Message-----
>> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
>> >> Sent: Thursday, July 5, 2018 9:39 AM
>> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
>> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
>> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
>> >> <Sunila.Sahu@cavium.com>
>> >> Cc: dev@dpdk.org
>> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
>> >> flag
>> >>
>> >>
>> >>
>> >> >-----Original Message-----
>> >> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>> >> >Sent: 04 July 2018 19:41
>> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
>> >> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
>> >> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>> >> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
>> >> >flag
>> >> >
>> >> >External Email
>> >> >
>> >> >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_FB_IN_SGL_OUT
>> >> >
>> >> [Shally] Believe Out of place is default support on current
>> >> compression API, so why do we need _OOP_ here?
>> >
>> >Hi Shally,
>> >
>> >You are right, but I just wanted to clarify that the scenario is for Out of place
>> only.
>> >
>> Ok. But that looks redundant to me. Though not likely, tomorrow if some algo
>> support in-place, Then we will end up adding in_place equivalent of same. So
>> would prefer to keep naming generic of in/out place and specific to Scatter-
>> gather in/out support.
>
>I think I am not quite following you. Actually, if in the future we support
>In-place, then it is important to have OOP in the macro, to specify that SGL
>is supported for Out-of-place and maybe not in-place (like in cryptodev).
>Otherwise, we would need to break the API, which can be avoided now.

Ohh okay, now I get it. So these feature flags intend to show input/output mode supported
specifically for in/out of place operations.  But then still I see having OOP isn't required as compression
default support is out-of-place and it's just making feature name too big. Having in-place is exception 
and if supported, can use convention RTE_COMP_FF_INPLACE_xx

Above one comment, as I see it, use of FB in RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it mean.
May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT

Just few suggestions.
Thanks
Shally

- 



>
>Thanks,
>Pablo
>
>>
>> >Thanks,
>> >Pablo
>> >
>> >>
>> >> Thanks
>> >> Shally
>> >> >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>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* [PATCH v4 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (3 preceding siblings ...)
  2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
@ 2018-07-06  2:54 ` Pablo de Lara
  2018-07-06  2:54   ` [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
                     ` (2 more replies)
  2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  5 siblings, 3 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  2:54 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

In PMD feature matrices (.ini files), it is not required to
have the list of features that are not supported,
just the ones that are.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Lee Daly <lee.daly@intel.com>
---

v4:
- No change

 doc/guides/compressdevs/features/isal.ini | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/doc/guides/compressdevs/features/isal.ini b/doc/guides/compressdevs/features/isal.ini
index ad2718df0..1d4ff1c41 100644
--- a/doc/guides/compressdevs/features/isal.ini
+++ b/doc/guides/compressdevs/features/isal.ini
@@ -9,14 +9,6 @@ CPU SSE        = Y
 CPU AVX        = Y
 CPU AVX2       = Y
 CPU AVX512     = Y
-CPU NEON       =
-Stateful       =
-By-Pass        =
-Chained mbufs  =
 Deflate        = Y
-LZS            =
-Adler32        =
-Crc32          =
-Adler32&Crc32  =
 Fixed          = Y
 Dynamic        = Y
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v4 2/4] doc: rename compress feature flag
  2018-07-06  2:54 ` [PATCH v4 " Pablo de Lara
@ 2018-07-06  2:54   ` Pablo de Lara
  2018-07-06 12:17     ` Verma, Shally
  2018-07-06  2:54   ` [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-07-06  2:54   ` [PATCH v4 4/4] compressdev: add huffman encoding flags Pablo de Lara
  2 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  2:54 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

Renamed feature "Bypass" to "Pass-through",
as it is a more explicit name, meaning that the PMD
is capable of passing the mbufs through it,
without making any modifications (i.e.. NULL algorithm).

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---

v4:
- Rephrased pass-through feature comment (Shally)

 doc/guides/compressdevs/features/default.ini | 2 +-
 doc/guides/compressdevs/overview.rst         | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index 795fc5577..a88414d23 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -13,7 +13,7 @@ CPU AVX2       =
 CPU AVX512     =
 CPU NEON       =
 Stateful       =
-By-Pass        =
+Pass-through   =
 Chained mbufs  =
 Deflate        =
 LZS            =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index ca37de175..d01c1a966 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -10,3 +10,9 @@ Supported Feature Flags
 .. _table_compression_pmd_features:
 
 .. include:: overview_feature_table.txt
+
+.. Note::
+
+   - "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).
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  2:54 ` [PATCH v4 " Pablo de Lara
  2018-07-06  2:54   ` [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
@ 2018-07-06  2:54   ` Pablo de Lara
  2018-07-06 12:33     ` Verma, Shally
  2018-07-06  2:54   ` [PATCH v4 4/4] compressdev: add huffman encoding flags Pablo de Lara
  2 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  2:54 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

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>
---

v4:
- Replaced FB (Flat Buffers) with LB (Linear Buffers) (Shally)
- Add extra explanation on comments about Linear Buffers vs
  Scatter-gather lists

v3:
- Replaced Out-of-place with OOP
- Added new feature flags in default.ini

v2:
- Fixed typos
- Rephrased comments

 doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
 doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
 doc/guides/rel_notes/release_18_08.rst       |  6 +++++
 lib/librte_compressdev/rte_comp.c            |  8 +++++--
 lib/librte_compressdev/rte_comp.h            | 31 +++++++++++++++++--------
 5 files changed, 65 insertions(+), 28 deletions(-)

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index a88414d23..829e4df61 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -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             =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index d01c1a966..6d12c3bd6 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -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 that the input and output buffers can consist of multiple segments.
+
+   - "OOP SGL In LB Out" feature flag stands for
+     "Out-of-place Scatter-gather list Input, Flat Buffers Output",
+     which means that the input buffer can consist of multiple segments combined
+     with a single segment buffer in the output.
+
+   - "OOP LB In SGL Out" feature flag stands for
+     "Out-of-place Flat Buffers Input, Scatter-gather list Output",
+     which means that the output buffer can consist of multiple segments combined
+     with a single segment buffer in the input.
diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
index bc0124295..3487e3fb9 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -60,6 +60,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
 -----------
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index d596ba872..97ea0d922 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -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:
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 5b513c77e..274b5eadf 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -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) mbufs 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
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v4 4/4] compressdev: add huffman encoding flags
  2018-07-06  2:54 ` [PATCH v4 " Pablo de Lara
  2018-07-06  2:54   ` [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-06  2:54   ` [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-07-06  2:54   ` Pablo de Lara
  2 siblings, 0 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  2:54 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---

v4/v3:
- No change

v2:
- Fixed typo

 drivers/compress/isal/isal_compress_pmd_ops.c |  4 +++-
 lib/librte_compressdev/rte_comp.c             |  4 ++++
 lib/librte_compressdev/rte_comp.h             |  4 ++++
 test/test/test_compressdev.c                  | 16 ++++++++++++++++
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c
index 970a0413b..585f22802 100644
--- a/drivers/compress/isal/isal_compress_pmd_ops.c
+++ b/drivers/compress/isal/isal_compress_pmd_ops.c
@@ -12,7 +12,9 @@
 static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
 	{
 		.algo = RTE_COMP_ALGO_DEFLATE,
-		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
+		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
+					RTE_COMP_FF_HUFFMAN_FIXED |
+					RTE_COMP_FF_HUFFMAN_DYNAMIC,
 		.window_size = {
 			.min = 15,
 			.max = 15,
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index 97ea0d922..98ad0cfd9 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
 		return "SHA2_SHA256_HASH";
 	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
 		return "SHAREABLE_PRIV_XFORM";
+	case RTE_COMP_FF_HUFFMAN_FIXED:
+		return "HUFFMAN_FIXED";
+	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
+		return "HUFFMAN_DYNAMIC";
 	default:
 		return NULL;
 	}
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 274b5eadf..1f66945ee 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -63,6 +63,10 @@ extern "C" {
  * to create as many priv_xforms as it expects to have stateless
  * operations in-flight.
  */
+#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
+/**< Fixed huffman encoding is supported */
+#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
+/**< Dynamic huffman encoding is supported */
 
 /** Status of comp operation */
 enum rte_comp_op_status {
diff --git a/test/test/test_compressdev.c b/test/test/test_compressdev.c
index 640942bac..f960963a4 100644
--- a/test/test/test_compressdev.c
+++ b/test/test/test_compressdev.c
@@ -846,6 +846,14 @@ test_compressdev_deflate_stateless_fixed(void)
 	const char *test_buffer;
 	uint16_t i;
 	int ret;
+	const struct rte_compressdev_capabilities *capab;
+
+	capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
+	TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
+
+	if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_FIXED) == 0)
+		return -ENOTSUP;
+
 	struct rte_comp_xform *compress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
 
@@ -905,6 +913,14 @@ test_compressdev_deflate_stateless_dynamic(void)
 	struct rte_comp_xform *compress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
 
+	const struct rte_compressdev_capabilities *capab;
+
+	capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
+	TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
+
+	if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_DYNAMIC) == 0)
+		return -ENOTSUP;
+
 	if (compress_xform == NULL) {
 		RTE_LOG(ERR, USER1,
 			"Compress xform could not be created\n");
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (4 preceding siblings ...)
  2018-07-06  2:54 ` [PATCH v4 " Pablo de Lara
@ 2018-07-06  5:27 ` Pablo de Lara
  2018-07-06  5:27   ` [PATCH v5 2/4] doc: rename compress feature flag Pablo de Lara
                     ` (3 more replies)
  5 siblings, 4 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  5:27 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

In PMD feature matrices (.ini files), it is not required to
have the list of features that are not supported,
just the ones that are.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Lee Daly <lee.daly@intel.com>
---

v5:
- Removed "HW Accelerated" from isa-l feature list

v4:
- No change

 doc/guides/compressdevs/features/isal.ini | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/doc/guides/compressdevs/features/isal.ini b/doc/guides/compressdevs/features/isal.ini
index ad2718df0..7183d1034 100644
--- a/doc/guides/compressdevs/features/isal.ini
+++ b/doc/guides/compressdevs/features/isal.ini
@@ -4,19 +4,10 @@
 ; Supported features of 'ISA-L' compression driver.
 ;
 [Features]
-HW Accelerated =
 CPU SSE        = Y
 CPU AVX        = Y
 CPU AVX2       = Y
 CPU AVX512     = Y
-CPU NEON       =
-Stateful       =
-By-Pass        =
-Chained mbufs  =
 Deflate        = Y
-LZS            =
-Adler32        =
-Crc32          =
-Adler32&Crc32  =
 Fixed          = Y
 Dynamic        = Y
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v5 2/4] doc: rename compress feature flag
  2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
@ 2018-07-06  5:27   ` Pablo de Lara
  2018-07-06  5:28   ` [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  5:27 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

Renamed feature "Bypass" to "Pass-through",
as it is a more explicit name, meaning that the PMD
is capable of passing the mbufs through it,
without making any modifications (i.e.. NULL algorithm).

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>
---

v5:
- No change

v4:
- Rephrased pass-through feature comment (Shally)

 doc/guides/compressdevs/features/default.ini | 2 +-
 doc/guides/compressdevs/overview.rst         | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index 795fc5577..a88414d23 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -13,7 +13,7 @@ CPU AVX2       =
 CPU AVX512     =
 CPU NEON       =
 Stateful       =
-By-Pass        =
+Pass-through   =
 Chained mbufs  =
 Deflate        =
 LZS            =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index ca37de175..d01c1a966 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -10,3 +10,9 @@ Supported Feature Flags
 .. _table_compression_pmd_features:
 
 .. include:: overview_feature_table.txt
+
+.. Note::
+
+   - "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).
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-06  5:27   ` [PATCH v5 2/4] doc: rename compress feature flag Pablo de Lara
@ 2018-07-06  5:28   ` Pablo de Lara
  2018-07-07  6:34     ` Verma, Shally
  2018-07-06  5:28   ` [PATCH v5 4/4] compressdev: add huffman encoding flags Pablo de Lara
  2018-07-09  8:11   ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix De Lara Guarch, Pablo
  3 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  5:28 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

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>
---

v5:
- Replaced left "Flat Buffer" with "Linear Buffer" (Shally)
- Rephrased comment about new feature flags (Shally)

v4:
- Replaced FB (Flat Buffers) with LB (Linear Buffers) (Shally)
- Add extra explanation on comments about Linear Buffers vs
  Scatter-gather lists

v3:
- Replaced Out-of-place with OOP
- Added new feature flags in default.ini

v2:
- Fixed typos
- Rephrased comments

 doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
 doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
 doc/guides/rel_notes/release_18_08.rst       |  6 +++++
 lib/librte_compressdev/rte_comp.c            |  8 +++++--
 lib/librte_compressdev/rte_comp.h            | 31 +++++++++++++++++--------
 5 files changed, 65 insertions(+), 28 deletions(-)

diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
index a88414d23..829e4df61 100644
--- a/doc/guides/compressdevs/features/default.ini
+++ b/doc/guides/compressdevs/features/default.ini
@@ -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             =
diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
index d01c1a966..70bbe82b7 100644
--- a/doc/guides/compressdevs/overview.rst
+++ b/doc/guides/compressdevs/overview.rst
@@ -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.
diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
index bc0124295..3487e3fb9 100644
--- a/doc/guides/rel_notes/release_18_08.rst
+++ b/doc/guides/rel_notes/release_18_08.rst
@@ -60,6 +60,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
 -----------
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index d596ba872..97ea0d922 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -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:
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 5b513c77e..274b5eadf 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -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) mbufs 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
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* [PATCH v5 4/4] compressdev: add huffman encoding flags
  2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-06  5:27   ` [PATCH v5 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-06  5:28   ` [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-07-06  5:28   ` Pablo de Lara
  2018-07-07  6:36     ` Verma, Shally
  2018-07-09  8:11   ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix De Lara Guarch, Pablo
  3 siblings, 1 reply; 45+ messages in thread
From: Pablo de Lara @ 2018-07-06  5:28 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, fiona.trahe, lee.daly; +Cc: dev, Pablo de Lara

Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---

v5-v3:
- No change

v2:
- Fixed typo

 drivers/compress/isal/isal_compress_pmd_ops.c |  4 +++-
 lib/librte_compressdev/rte_comp.c             |  4 ++++
 lib/librte_compressdev/rte_comp.h             |  4 ++++
 test/test/test_compressdev.c                  | 16 ++++++++++++++++
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c
index 970a0413b..585f22802 100644
--- a/drivers/compress/isal/isal_compress_pmd_ops.c
+++ b/drivers/compress/isal/isal_compress_pmd_ops.c
@@ -12,7 +12,9 @@
 static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
 	{
 		.algo = RTE_COMP_ALGO_DEFLATE,
-		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
+		.comp_feature_flags =	RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
+					RTE_COMP_FF_HUFFMAN_FIXED |
+					RTE_COMP_FF_HUFFMAN_DYNAMIC,
 		.window_size = {
 			.min = 15,
 			.max = 15,
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index 97ea0d922..98ad0cfd9 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
 		return "SHA2_SHA256_HASH";
 	case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
 		return "SHAREABLE_PRIV_XFORM";
+	case RTE_COMP_FF_HUFFMAN_FIXED:
+		return "HUFFMAN_FIXED";
+	case RTE_COMP_FF_HUFFMAN_DYNAMIC:
+		return "HUFFMAN_DYNAMIC";
 	default:
 		return NULL;
 	}
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index 274b5eadf..1f66945ee 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -63,6 +63,10 @@ extern "C" {
  * to create as many priv_xforms as it expects to have stateless
  * operations in-flight.
  */
+#define RTE_COMP_FF_HUFFMAN_FIXED		(1ULL << 13)
+/**< Fixed huffman encoding is supported */
+#define RTE_COMP_FF_HUFFMAN_DYNAMIC		(1ULL << 14)
+/**< Dynamic huffman encoding is supported */
 
 /** Status of comp operation */
 enum rte_comp_op_status {
diff --git a/test/test/test_compressdev.c b/test/test/test_compressdev.c
index 640942bac..f960963a4 100644
--- a/test/test/test_compressdev.c
+++ b/test/test/test_compressdev.c
@@ -846,6 +846,14 @@ test_compressdev_deflate_stateless_fixed(void)
 	const char *test_buffer;
 	uint16_t i;
 	int ret;
+	const struct rte_compressdev_capabilities *capab;
+
+	capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
+	TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
+
+	if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_FIXED) == 0)
+		return -ENOTSUP;
+
 	struct rte_comp_xform *compress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
 
@@ -905,6 +913,14 @@ test_compressdev_deflate_stateless_dynamic(void)
 	struct rte_comp_xform *compress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
 
+	const struct rte_compressdev_capabilities *capab;
+
+	capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
+	TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
+
+	if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_DYNAMIC) == 0)
+		return -ENOTSUP;
+
 	if (compress_xform == NULL) {
 		RTE_LOG(ERR, USER1,
 			"Compress xform could not be created\n");
-- 
2.14.4

^ permalink raw reply related	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-05 11:58             ` Verma, Shally
@ 2018-07-06  8:40               ` De Lara Guarch, Pablo
  2018-07-06  8:53                 ` Verma, Shally
  0 siblings, 1 reply; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-06  8:40 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee, Sahu, Sunila; +Cc: dev



> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Thursday, July 5, 2018 12:59 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 05 July 2018 16:56
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> >Cc: dev@dpdk.org
> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >flag
> >
> >External Email
> >
> >> -----Original Message-----
> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> >> Sent: Thursday, July 5, 2018 12:13 PM
> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
> >> <Sunila.Sahu@cavium.com>
> >> Cc: dev@dpdk.org
> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> flag
> >>
> >>
> >>
> >> >-----Original Message-----
> >> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >> >Sent: 05 July 2018 16:36
> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> >> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
> >> >Daly, Lee <lee.daly@intel.com>; Sahu, Sunila
> >> ><Sunila.Sahu@cavium.com>
> >> >Cc: dev@dpdk.org
> >> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> >flag
> >> >
> >> >External Email
> >> >
> >> >> -----Original Message-----
> >> >> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> >> >> Sent: Thursday, July 5, 2018 9:39 AM
> >> >> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta,
> >> >> Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona
> >> >> <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>; Sahu,
> >> >> Sunila <Sunila.Sahu@cavium.com>
> >> >> Cc: dev@dpdk.org
> >> >> Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter
> >> >> gather flag
> >> >>
> >> >>
> >> >>
> >> >> >-----Original Message-----
> >> >> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >> >> >Sent: 04 July 2018 19:41
> >> >> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> >> >> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
> >> >> >lee.daly@intel.com
> >> >> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >> >> >Subject: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >> >> >flag
> >> >> >
> >> >> >External Email
> >> >> >
> >> >> >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_FB_IN_SGL_OUT
> >> >> >
> >> >> [Shally] Believe Out of place is default support on current
> >> >> compression API, so why do we need _OOP_ here?
> >> >
> >> >Hi Shally,
> >> >
> >> >You are right, but I just wanted to clarify that the scenario is for
> >> >Out of place
> >> only.
> >> >
> >> Ok. But that looks redundant to me. Though not likely, tomorrow if
> >> some algo support in-place, Then we will end up adding in_place
> >> equivalent of same. So would prefer to keep naming generic of in/out
> >> place and specific to Scatter- gather in/out support.
> >
> >I think I am not quite following you. Actually, if in the future we
> >support In-place, then it is important to have OOP in the macro, to
> >specify that SGL is supported for Out-of-place and maybe not in-place (like in
> cryptodev).
> >Otherwise, we would need to break the API, which can be avoided now.
> 
> Ohh okay, now I get it. So these feature flags intend to show input/output mode
> supported specifically for in/out of place operations.  But then still I see having
> OOP isn't required as compression default support is out-of-place and it's just
> making feature name too big. Having in-place is exception and if supported, can
> use convention RTE_COMP_FF_INPLACE_xx

I would still prefer having OOP, to be consistent with cryptodev. It is also not that long, it is just 3 letters.

> 
> Above one comment, as I see it, use of FB in
> RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it mean.
> May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT

Linear could be a good option, but it is missing a noun there. What about LB (linear buffer), so we keep it short too.

Pablo

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  8:40               ` De Lara Guarch, Pablo
@ 2018-07-06  8:53                 ` Verma, Shally
  2018-07-06  8:59                   ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-06  8:53 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Gupta, Ashish, Trahe, Fiona, Daly, Lee,
	Sahu, Sunila
  Cc: dev



>-----Original Message-----
>From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 06 July 2018 14:10
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>;
>Daly, Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
>Cc: dev@dpdk.org
>Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
>

//snip

>> Ohh okay, now I get it. So these feature flags intend to show input/output mode
>> supported specifically for in/out of place operations.  But then still I see having
>> OOP isn't required as compression default support is out-of-place and it's just
>> making feature name too big. Having in-place is exception and if supported, can
>> use convention RTE_COMP_FF_INPLACE_xx
>
>I would still prefer having OOP, to be consistent with cryptodev. It is also not that long, it is just 3 letters.
>
>>
>> Above one comment, as I see it, use of FB in
>> RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it mean.
>> May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT
>
>Linear could be a good option, but it is missing a noun there. What about LB (linear buffer), so we keep it short too.

Ok. LB looks fine. hopefully, that will make apparent to reader, that it's opposite of Scatter-Gather.

Thanks
Shally

>
>Pablo

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  8:53                 ` Verma, Shally
@ 2018-07-06  8:59                   ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-06  8:59 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee, Sahu, Sunila; +Cc: dev



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Verma, Shally
> Sent: Friday, July 6, 2018 9:53 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3 3/4] compressdev: replace mbuf scatter
> gather flag
> 
> 
> 
> >-----Original Message-----
> >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 06 July 2018 14:10
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly,
> >Lee <lee.daly@intel.com>; Sahu, Sunila <Sunila.Sahu@cavium.com>
> >Cc: dev@dpdk.org
> >Subject: RE: [PATCH v3 3/4] compressdev: replace mbuf scatter gather
> >flag
> >
> 
> //snip
> 
> >> Ohh okay, now I get it. So these feature flags intend to show
> >> input/output mode supported specifically for in/out of place
> >> operations.  But then still I see having OOP isn't required as
> >> compression default support is out-of-place and it's just making
> >> feature name too big. Having in-place is exception and if supported,
> >> can use convention RTE_COMP_FF_INPLACE_xx
> >
> >I would still prefer having OOP, to be consistent with cryptodev. It is also not
> that long, it is just 3 letters.
> >
> >>
> >> Above one comment, as I see it, use of FB in
> >> RTE_COMP_FF_OOP_FB_IN_SGL_OUT didn't give clear indication what it
> mean.
> >> May be replace it by RTE_COMP_FF_OOP_DIRECT/LINEAR_IN_SGL_OUT
> >
> >Linear could be a good option, but it is missing a noun there. What about LB
> (linear buffer), so we keep it short too.
> 
> Ok. LB looks fine. hopefully, that will make apparent to reader, that it's opposite
> of Scatter-Gather.

I can clarify a bit more in the comments.

Thanks,
Pablo

> 
> Thanks
> Shally
> 
> >
> >Pablo

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v4 2/4] doc: rename compress feature flag
  2018-07-06  2:54   ` [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
@ 2018-07-06 12:17     ` Verma, Shally
  0 siblings, 0 replies; 45+ messages in thread
From: Verma, Shally @ 2018-07-06 12:17 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly; +Cc: dev



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 06 July 2018 08:24
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v4 2/4] doc: rename compress feature flag
>
>External Email
>
>Renamed feature "Bypass" to "Pass-through",
>as it is a more explicit name, meaning that the PMD
>is capable of passing the mbufs through it,
>without making any modifications (i.e.. NULL algorithm).
>
>Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Acked-by: Fiona Trahe <fiona.trahe@intel.com>
>---
>
>v4:
>- Rephrased pass-through feature comment (Shally)
>
> doc/guides/compressdevs/features/default.ini | 2 +-
> doc/guides/compressdevs/overview.rst         | 6 ++++++
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
>diff --git a/doc/guides/compressdevs/features/default.ini b/doc/guides/compressdevs/features/default.ini
>index 795fc5577..a88414d23 100644
>--- a/doc/guides/compressdevs/features/default.ini
>+++ b/doc/guides/compressdevs/features/default.ini
>@@ -13,7 +13,7 @@ CPU AVX2       =
> CPU AVX512     =
> CPU NEON       =
> Stateful       =
>-By-Pass        =
>+Pass-through   =
> Chained mbufs  =
> Deflate        =
> LZS            =
>diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
>index ca37de175..d01c1a966 100644
>--- a/doc/guides/compressdevs/overview.rst
>+++ b/doc/guides/compressdevs/overview.rst
>@@ -10,3 +10,9 @@ Supported Feature Flags
> .. _table_compression_pmd_features:
>
> .. include:: overview_feature_table.txt
>+
>+.. Note::
>+
>+   - "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).
>--
>2.14.4
Acked-by: Shally Verma <shally.verma@caviumnetworks.com>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  2:54   ` [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-07-06 12:33     ` Verma, Shally
  0 siblings, 0 replies; 45+ messages in thread
From: Verma, Shally @ 2018-07-06 12:33 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly; +Cc: dev

Hi Pablo

Looks fine. Just minor comments:

>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 06 July 2018 08:24
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag
>
...

>@@ -6,19 +6,21 @@
>diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
>index d01c1a966..6d12c3bd6 100644
>--- a/doc/guides/compressdevs/overview.rst
>+++ b/doc/guides/compressdevs/overview.rst
>@@ -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 that the input and output buffers can consist of multiple segments.
>+
May be its simpler to rephrase it and following somewhat this way:

Which means " PMD support 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, Flat Buffers Output",
>+     which means that the input buffer can consist of multiple segments combined
>+     with a single segment buffer in the output.

Which means "PMD support input from scatter-gathered styled buffers , but can output to linear buffers.
And better to replace "flat" by "linear" to be consistent with name.

>+
>+   - "OOP LB In SGL Out" feature flag stands for
>+     "Out-of-place Flat Buffers Input, Scatter-gather list Output",
>+     which means that the output buffer can consist of multiple segments combined
>+     with a single segment buffer in the input.

Thanks
Shally

>diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
>index bc0124295..3487e3fb9 100644
>--- a/doc/guides/rel_notes/release_18_08.rst
>+++ b/doc/guides/rel_notes/release_18_08.rst
>@@ -60,6 +60,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
> -----------
>diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
>index d596ba872..97ea0d922 100644
>--- a/lib/librte_compressdev/rte_comp.c
>+++ b/lib/librte_compressdev/rte_comp.c
>@@ -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:
>diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
>index 5b513c77e..274b5eadf 100644
>--- a/lib/librte_compressdev/rte_comp.h
>+++ b/lib/librte_compressdev/rte_comp.h
>@@ -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) mbufs 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
>--
>2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  5:28   ` [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
@ 2018-07-07  6:34     ` Verma, Shally
  2018-07-09  8:07       ` De Lara Guarch, Pablo
  0 siblings, 1 reply; 45+ messages in thread
From: Verma, Shally @ 2018-07-07  6:34 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly; +Cc: dev



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 06 July 2018 10:58
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
>
>External Email
>
>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>
>---
>
>v5:
>- Replaced left "Flat Buffer" with "Linear Buffer" (Shally)
>- Rephrased comment about new feature flags (Shally)
>
>v4:
>- Replaced FB (Flat Buffers) with LB (Linear Buffers) (Shally)
>- Add extra explanation on comments about Linear Buffers vs
>  Scatter-gather lists
>
>v3:
>- Replaced Out-of-place with OOP
>- Added new feature flags in default.ini
>
>v2:
>- Fixed typos
>- Rephrased comments
>
> doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++-------------
> doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
> doc/guides/rel_notes/release_18_08.rst       |  6 +++++
> lib/librte_compressdev/rte_comp.c            |  8 +++++--
> lib/librte_compressdev/rte_comp.h            | 31 +++++++++++++++++--------
> 5 files changed, 65 insertions(+), 28 deletions(-)
>
...

>diff --git a/doc/guides/compressdevs/overview.rst b/doc/guides/compressdevs/overview.rst
>index d01c1a966..70bbe82b7 100644
>--- a/doc/guides/compressdevs/overview.rst
>+++ b/doc/guides/compressdevs/overview.rst
>@@ -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.

....

>diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
>index 5b513c77e..274b5eadf 100644
>--- a/lib/librte_compressdev/rte_comp.h
>+++ b/lib/librte_compressdev/rte_comp.h
>@@ -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) mbufs are supported
>+ * in output, combined with linear buffers (LB) in input
>+ */
[Shally] Similar rephrase here please.

Rest,
Acked-by: Shally Verma <shally.verma@caviumnetworks.com>

Thanks
Shally

>+#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
>--
>2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v5 4/4] compressdev: add huffman encoding flags
  2018-07-06  5:28   ` [PATCH v5 4/4] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-07-07  6:36     ` Verma, Shally
  0 siblings, 0 replies; 45+ messages in thread
From: Verma, Shally @ 2018-07-07  6:36 UTC (permalink / raw)
  To: Pablo de Lara, Gupta, Ashish, fiona.trahe, lee.daly; +Cc: dev



>-----Original Message-----
>From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
>Sent: 06 July 2018 10:58
>To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>; fiona.trahe@intel.com;
>lee.daly@intel.com
>Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
>Subject: [PATCH v5 4/4] compressdev: add huffman encoding flags
>
>External Email
>
>Added Huffman fixed and dynamic encoding feature flags,
>so an application can query if a device supports
>these two types, when performing DEFLATE compression.
>
>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>

Thanks
Shally

>---
>
>v5-v3:
>- No change
>
>v2:
>- Fixed typo
>
> drivers/compress/isal/isal_compress_pmd_ops.c |  4 +++-
> lib/librte_compressdev/rte_comp.c             |  4 ++++
> lib/librte_compressdev/rte_comp.h             |  4 ++++
> test/test/test_compressdev.c                  | 16 ++++++++++++++++
> 4 files changed, 27 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c b/drivers/compress/isal/isal_compress_pmd_ops.c
>index 970a0413b..585f22802 100644
>--- a/drivers/compress/isal/isal_compress_pmd_ops.c
>+++ b/drivers/compress/isal/isal_compress_pmd_ops.c
>@@ -12,7 +12,9 @@
> static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
>        {
>                .algo = RTE_COMP_ALGO_DEFLATE,
>-               .comp_feature_flags =   RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
>+               .comp_feature_flags =   RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
>+                                       RTE_COMP_FF_HUFFMAN_FIXED |
>+                                       RTE_COMP_FF_HUFFMAN_DYNAMIC,
>                .window_size = {
>                        .min = 15,
>                        .max = 15,
>diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
>index 97ea0d922..98ad0cfd9 100644
>--- a/lib/librte_compressdev/rte_comp.c
>+++ b/lib/librte_compressdev/rte_comp.c
>@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
>                return "SHA2_SHA256_HASH";
>        case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
>                return "SHAREABLE_PRIV_XFORM";
>+       case RTE_COMP_FF_HUFFMAN_FIXED:
>+               return "HUFFMAN_FIXED";
>+       case RTE_COMP_FF_HUFFMAN_DYNAMIC:
>+               return "HUFFMAN_DYNAMIC";
>        default:
>                return NULL;
>        }
>diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
>index 274b5eadf..1f66945ee 100644
>--- a/lib/librte_compressdev/rte_comp.h
>+++ b/lib/librte_compressdev/rte_comp.h
>@@ -63,6 +63,10 @@ extern "C" {
>  * to create as many priv_xforms as it expects to have stateless
>  * operations in-flight.
>  */
>+#define RTE_COMP_FF_HUFFMAN_FIXED              (1ULL << 13)
>+/**< Fixed huffman encoding is supported */
>+#define RTE_COMP_FF_HUFFMAN_DYNAMIC            (1ULL << 14)
>+/**< Dynamic huffman encoding is supported */
>
> /** Status of comp operation */
> enum rte_comp_op_status {
>diff --git a/test/test/test_compressdev.c b/test/test/test_compressdev.c
>index 640942bac..f960963a4 100644
>--- a/test/test/test_compressdev.c
>+++ b/test/test/test_compressdev.c
>@@ -846,6 +846,14 @@ test_compressdev_deflate_stateless_fixed(void)
>        const char *test_buffer;
>        uint16_t i;
>        int ret;
>+       const struct rte_compressdev_capabilities *capab;
>+
>+       capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
>+       TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
>+
>+       if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_FIXED) == 0)
>+               return -ENOTSUP;
>+
>        struct rte_comp_xform *compress_xform =
>                        rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
>
>@@ -905,6 +913,14 @@ test_compressdev_deflate_stateless_dynamic(void)
>        struct rte_comp_xform *compress_xform =
>                        rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
>
>+       const struct rte_compressdev_capabilities *capab;
>+
>+       capab = rte_compressdev_capability_get(0, RTE_COMP_ALGO_DEFLATE);
>+       TEST_ASSERT(capab != NULL, "Failed to retrieve device capabilities");
>+
>+       if ((capab->comp_feature_flags & RTE_COMP_FF_HUFFMAN_DYNAMIC) == 0)
>+               return -ENOTSUP;
>+
>        if (compress_xform == NULL) {
>                RTE_LOG(ERR, USER1,
>                        "Compress xform could not be created\n");
>--
>2.14.4

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-07  6:34     ` Verma, Shally
@ 2018-07-09  8:07       ` De Lara Guarch, Pablo
  0 siblings, 0 replies; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-09  8:07 UTC (permalink / raw)
  To: Verma, Shally, Gupta, Ashish, Trahe, Fiona, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: Verma, Shally [mailto:Shally.Verma@cavium.com]
> Sent: Saturday, July 7, 2018 7:34 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Gupta, Ashish
> <Ashish.Gupta@cavium.com>; Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
> 
> 
> 
> >-----Original Message-----
> >From: Pablo de Lara [mailto:pablo.de.lara.guarch@intel.com]
> >Sent: 06 July 2018 10:58
> >To: Verma, Shally <Shally.Verma@cavium.com>; Gupta, Ashish
> ><Ashish.Gupta@cavium.com>; fiona.trahe@intel.com; lee.daly@intel.com
> >Cc: dev@dpdk.org; Pablo de Lara <pablo.de.lara.guarch@intel.com>
> >Subject: [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
> >
> >External Email
> >
> >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>
> >---
> >
> >v5:
> >- Replaced left "Flat Buffer" with "Linear Buffer" (Shally)
> >- Rephrased comment about new feature flags (Shally)
> >
> >v4:
> >- Replaced FB (Flat Buffers) with LB (Linear Buffers) (Shally)
> >- Add extra explanation on comments about Linear Buffers vs
> >  Scatter-gather lists
> >
> >v3:
> >- Replaced Out-of-place with OOP
> >- Added new feature flags in default.ini
> >
> >v2:
> >- Fixed typos
> >- Rephrased comments
> >
> > doc/guides/compressdevs/features/default.ini | 34 +++++++++++++++----------
> ---
> > doc/guides/compressdevs/overview.rst         | 14 ++++++++++++
> > doc/guides/rel_notes/release_18_08.rst       |  6 +++++
> > lib/librte_compressdev/rte_comp.c            |  8 +++++--
> > lib/librte_compressdev/rte_comp.h            | 31 +++++++++++++++++--------
> > 5 files changed, 65 insertions(+), 28 deletions(-)
> >
> ...
> 
> >diff --git a/doc/guides/compressdevs/overview.rst
> >b/doc/guides/compressdevs/overview.rst
> >index d01c1a966..70bbe82b7 100644
> >--- a/doc/guides/compressdevs/overview.rst
> >+++ b/doc/guides/compressdevs/overview.rst
> >@@ -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.
> 
> ....
> 
> >diff --git a/lib/librte_compressdev/rte_comp.h
> >b/lib/librte_compressdev/rte_comp.h
> >index 5b513c77e..274b5eadf 100644
> >--- a/lib/librte_compressdev/rte_comp.h
> >+++ b/lib/librte_compressdev/rte_comp.h
> >@@ -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) mbufs are supported
> >+ * in output, combined with linear buffers (LB) in input  */
> [Shally] Similar rephrase here please.

Ok, I am replacing "mbufs" with "buffers". I won't clarify what SGL and LB means,
as it is done in the previous macros.

I will make this change on the fly as I am applying this patch, as it is the last comment,
I believe.

Thanks,
Pablo

> 
> Rest,
> Acked-by: Shally Verma <shally.verma@caviumnetworks.com>

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
                     ` (2 preceding siblings ...)
  2018-07-06  5:28   ` [PATCH v5 4/4] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-07-09  8:11   ` De Lara Guarch, Pablo
  3 siblings, 0 replies; 45+ messages in thread
From: De Lara Guarch, Pablo @ 2018-07-09  8:11 UTC (permalink / raw)
  To: shally.verma, ashish.gupta, Trahe, Fiona, Daly, Lee; +Cc: dev



> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Friday, July 6, 2018 6:28 AM
> To: shally.verma@caviumnetworks.com; ashish.gupta@caviumnetworks.com;
> Trahe, Fiona <fiona.trahe@intel.com>; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix
> 
> In PMD feature matrices (.ini files), it is not required to have the list of features
> that are not supported, just the ones that are.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> Acked-by: Lee Daly <lee.daly@intel.com>
> ---

Patchset applied to dpdk-next-crypto, with Shally's last comment addressed.

Thanks,
Pablo

^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2018-07-09  8:11 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-27  5:50 [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-06-27  5:50 ` [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
2018-06-27 15:22   ` Trahe, Fiona
2018-06-27 15:36     ` De Lara Guarch, Pablo
2018-06-27 17:35       ` Trahe, Fiona
2018-06-28 10:00   ` Daly, Lee
2018-06-27 12:16 ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-06-27 12:16   ` [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
2018-06-28  7:49     ` Trahe, Fiona
2018-06-28  7:48   ` [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Trahe, Fiona
2018-06-29 10:08   ` Trahe, Fiona
2018-06-27 15:14 ` [PATCH " Trahe, Fiona
2018-06-27 15:33   ` De Lara Guarch, Pablo
2018-07-04 14:10 ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
2018-07-04 14:10   ` [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
2018-07-05  2:41     ` Verma, Shally
2018-07-05 11:03       ` De Lara Guarch, Pablo
2018-07-05  8:07     ` Trahe, Fiona
2018-07-04 14:10   ` [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-07-05  8:38     ` Verma, Shally
2018-07-05 11:05       ` De Lara Guarch, Pablo
2018-07-05 11:12         ` Verma, Shally
2018-07-05 11:25           ` De Lara Guarch, Pablo
2018-07-05 11:58             ` Verma, Shally
2018-07-06  8:40               ` De Lara Guarch, Pablo
2018-07-06  8:53                 ` Verma, Shally
2018-07-06  8:59                   ` De Lara Guarch, Pablo
2018-07-04 14:10   ` [PATCH v3 4/4] compressdev: add huffman encoding flags Pablo de Lara
2018-07-05  8:14     ` Verma, Shally
2018-07-05 11:21       ` De Lara Guarch, Pablo
2018-07-05  8:10   ` [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Daly, Lee
2018-07-06  2:54 ` [PATCH v4 " Pablo de Lara
2018-07-06  2:54   ` [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
2018-07-06 12:17     ` Verma, Shally
2018-07-06  2:54   ` [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-07-06 12:33     ` Verma, Shally
2018-07-06  2:54   ` [PATCH v4 4/4] compressdev: add huffman encoding flags Pablo de Lara
2018-07-06  5:27 ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
2018-07-06  5:27   ` [PATCH v5 2/4] doc: rename compress feature flag Pablo de Lara
2018-07-06  5:28   ` [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-07-07  6:34     ` Verma, Shally
2018-07-09  8:07       ` De Lara Guarch, Pablo
2018-07-06  5:28   ` [PATCH v5 4/4] compressdev: add huffman encoding flags Pablo de Lara
2018-07-07  6:36     ` Verma, Shally
2018-07-09  8:11   ` [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix De Lara Guarch, Pablo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.