DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag
@ 2018-06-27  5:50 Pablo de Lara
  2018-06-27  5:50 ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27  5:50 [dpdk-dev] [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 ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27  5:50 [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27  5:50 ` [dpdk-dev] [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
@ 2018-06-27 12:16 ` Pablo de Lara
  2018-06-27 12:16   ` [dpdk-dev] [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
                     ` (2 more replies)
  2018-06-27 15:14 ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v2 2/2] compressdev: add huffman encoding flags
  2018-06-27 12:16 ` [dpdk-dev] [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   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27  5:50 [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27  5:50 ` [dpdk-dev] [PATCH 2/2] compressdev: add huffman encoding flags Pablo de Lara
  2018-06-27 12:16 ` [dpdk-dev] [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 ` [dpdk-dev] [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: [dpdk-dev] [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27  5:50 ` [dpdk-dev] [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: [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27 15:14 ` [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27 12:16 ` [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27 12:16   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v2 2/2] compressdev: add huffman encoding flags
  2018-06-27 12:16   ` [dpdk-dev] [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: [dpdk-dev] [PATCH 2/2] compressdev: add huffman encoding flags
  2018-06-27  5:50 ` [dpdk-dev] [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: [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag
  2018-06-27 12:16 ` [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-06-27 12:16   ` [dpdk-dev] [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
  2018-06-28  7:48   ` [dpdk-dev] [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

* [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-06-27  5:50 [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (2 preceding siblings ...)
  2018-06-27 15:14 ` [dpdk-dev] [PATCH " Trahe, Fiona
@ 2018-07-04 14:10 ` Pablo de Lara
  2018-07-04 14:10   ` [dpdk-dev] [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
                     ` (3 more replies)
  2018-07-06  2:54 ` [dpdk-dev] [PATCH v4 " Pablo de Lara
  2018-07-06  5:27 ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-04 14:10 ` [dpdk-dev] [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   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-04 14:10 ` [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-04 14:10   ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v3 4/4] compressdev: add huffman encoding flags Pablo de Lara
  2018-07-05  8:10   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v3 4/4] compressdev: add huffman encoding flags
  2018-07-04 14:10 ` [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-04 14:10   ` [dpdk-dev] [PATCH v3 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-04 14:10   ` [dpdk-dev] [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   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-04 14:10   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v3 2/4] doc: rename compress feature flag
  2018-07-04 14:10   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-07-04 14:10 ` [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
                     ` (2 preceding siblings ...)
  2018-07-04 14:10   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v3 4/4] compressdev: add huffman encoding flags
  2018-07-04 14:10   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v3 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-04 14:10   ` [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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

* [dpdk-dev] [PATCH v4 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-06-27  5:50 [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (3 preceding siblings ...)
  2018-07-04 14:10 ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
                     ` (2 more replies)
  2018-07-06  5:27 ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v4 2/4] doc: rename compress feature flag
  2018-07-06  2:54 ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag Pablo de Lara
  2018-07-06  2:54   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  2:54 ` [dpdk-dev] [PATCH v4 " Pablo de Lara
  2018-07-06  2:54   ` [dpdk-dev] [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   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v4 4/4] compressdev: add huffman encoding flags
  2018-07-06  2:54 ` [dpdk-dev] [PATCH v4 " Pablo de Lara
  2018-07-06  2:54   ` [dpdk-dev] [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-06  2:54   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-06-27  5:50 [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
                   ` (4 preceding siblings ...)
  2018-07-06  2:54 ` [dpdk-dev] [PATCH v4 " Pablo de Lara
@ 2018-07-06  5:27 ` Pablo de Lara
  2018-07-06  5:27   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v5 2/4] doc: rename compress feature flag
  2018-07-06  5:27 ` [dpdk-dev] [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   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  5:27 ` [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-06  5:27   ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v5 4/4] compressdev: add huffman encoding flags Pablo de Lara
  2018-07-09  8:11   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* [dpdk-dev] [PATCH v5 4/4] compressdev: add huffman encoding flags
  2018-07-06  5:27 ` [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
  2018-07-06  5:27   ` [dpdk-dev] [PATCH v5 2/4] doc: rename compress feature flag Pablo de Lara
  2018-07-06  5:28   ` [dpdk-dev] [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   ` [dpdk-dev] [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	[flat|nested] 45+ messages in thread

* Re: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [PATCH v4 2/4] doc: rename compress feature flag
  2018-07-06  2:54   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  2:54   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v5 3/4] compressdev: replace mbuf scatter gather flag
  2018-07-06  5:28   ` [dpdk-dev] [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: [dpdk-dev] [PATCH v5 4/4] compressdev: add huffman encoding flags
  2018-07-06  5:28   ` [dpdk-dev] [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: [dpdk-dev] [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: [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix
  2018-07-06  5:27 ` [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
                     ` (2 preceding siblings ...)
  2018-07-06  5:28   ` [dpdk-dev] [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 [dpdk-dev] [PATCH 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-06-27  5:50 ` [dpdk-dev] [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 ` [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Pablo de Lara
2018-06-27 12:16   ` [dpdk-dev] [PATCH v2 2/2] compressdev: add huffman encoding flags Pablo de Lara
2018-06-28  7:49     ` Trahe, Fiona
2018-06-28  7:48   ` [dpdk-dev] [PATCH v2 1/2] compressdev: replace mbuf scatter gather flag Trahe, Fiona
2018-06-29 10:08   ` Trahe, Fiona
2018-06-27 15:14 ` [dpdk-dev] [PATCH " Trahe, Fiona
2018-06-27 15:33   ` De Lara Guarch, Pablo
2018-07-04 14:10 ` [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
2018-07-04 14:10   ` [dpdk-dev] [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   ` [dpdk-dev] [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   ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v3 1/4] doc: cleanup ISA-L PMD feature matrix Daly, Lee
2018-07-06  2:54 ` [dpdk-dev] [PATCH v4 " Pablo de Lara
2018-07-06  2:54   ` [dpdk-dev] [PATCH v4 2/4] doc: rename compress feature flag Pablo de Lara
2018-07-06 12:17     ` Verma, Shally
2018-07-06  2:54   ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v4 4/4] compressdev: add huffman encoding flags Pablo de Lara
2018-07-06  5:27 ` [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix Pablo de Lara
2018-07-06  5:27   ` [dpdk-dev] [PATCH v5 2/4] doc: rename compress feature flag Pablo de Lara
2018-07-06  5:28   ` [dpdk-dev] [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   ` [dpdk-dev] [PATCH v5 4/4] compressdev: add huffman encoding flags Pablo de Lara
2018-07-07  6:36     ` Verma, Shally
2018-07-09  8:11   ` [dpdk-dev] [PATCH v5 1/4] doc: cleanup ISA-L PMD feature matrix De Lara Guarch, Pablo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).