From patchwork Fri Jul 6 02:54:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "De Lara Guarch, Pablo" X-Patchwork-Id: 42494 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 193901BBA5; Fri, 6 Jul 2018 13:00:34 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 68AD61BB86 for ; Fri, 6 Jul 2018 13:00:32 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jul 2018 04:00:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,315,1526367600"; d="scan'208";a="64689923" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by fmsmga002.fm.intel.com with ESMTP; 06 Jul 2018 04:00:07 -0700 From: Pablo de Lara To: shally.verma@caviumnetworks.com, ashish.gupta@caviumnetworks.com, fiona.trahe@intel.com, lee.daly@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Fri, 6 Jul 2018 03:54:27 +0100 Message-Id: <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180627055031.24394-1-pablo.de.lara.guarch@intel.com> References: <20180627055031.24394-1-pablo.de.lara.guarch@intel.com> Subject: [dpdk-dev] [PATCH v4 1/4] doc: cleanup ISA-L PMD feature matrix X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Lee Daly --- 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 From patchwork Fri Jul 6 02:54:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "De Lara Guarch, Pablo" X-Patchwork-Id: 42495 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5E2891BEC5; Fri, 6 Jul 2018 13:00:36 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 34D791BB86 for ; Fri, 6 Jul 2018 13:00:32 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jul 2018 04:00:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,315,1526367600"; d="scan'208";a="64690052" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by fmsmga002.fm.intel.com with ESMTP; 06 Jul 2018 04:00:08 -0700 From: Pablo de Lara To: shally.verma@caviumnetworks.com, ashish.gupta@caviumnetworks.com, fiona.trahe@intel.com, lee.daly@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Fri, 6 Jul 2018 03:54:28 +0100 Message-Id: <20180706025430.21342-2-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> References: <20180627055031.24394-1-pablo.de.lara.guarch@intel.com> <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> Subject: [dpdk-dev] [PATCH v4 2/4] doc: rename compress feature flag X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Fiona Trahe Acked-by: Shally Verma --- 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). From patchwork Fri Jul 6 02:54:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "De Lara Guarch, Pablo" X-Patchwork-Id: 42497 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4F67E1BED6; Fri, 6 Jul 2018 13:00:40 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 5F2A71BE1B for ; Fri, 6 Jul 2018 13:00:33 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jul 2018 04:00:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,315,1526367600"; d="scan'208";a="64690054" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by fmsmga002.fm.intel.com with ESMTP; 06 Jul 2018 04:00:10 -0700 From: Pablo de Lara To: shally.verma@caviumnetworks.com, ashish.gupta@caviumnetworks.com, fiona.trahe@intel.com, lee.daly@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Fri, 6 Jul 2018 03:54:29 +0100 Message-Id: <20180706025430.21342-3-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> References: <20180627055031.24394-1-pablo.de.lara.guarch@intel.com> <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> Subject: [dpdk-dev] [PATCH v4 3/4] compressdev: replace mbuf scatter gather flag X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Fiona Trahe --- 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 From patchwork Fri Jul 6 02:54:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "De Lara Guarch, Pablo" X-Patchwork-Id: 42496 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9F47C1BECF; Fri, 6 Jul 2018 13:00:38 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id D10C31BB7F for ; Fri, 6 Jul 2018 13:00:33 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jul 2018 04:00:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,315,1526367600"; d="scan'208";a="64690059" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by fmsmga002.fm.intel.com with ESMTP; 06 Jul 2018 04:00:11 -0700 From: Pablo de Lara To: shally.verma@caviumnetworks.com, ashish.gupta@caviumnetworks.com, fiona.trahe@intel.com, lee.daly@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Fri, 6 Jul 2018 03:54:30 +0100 Message-Id: <20180706025430.21342-4-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> References: <20180627055031.24394-1-pablo.de.lara.guarch@intel.com> <20180706025430.21342-1-pablo.de.lara.guarch@intel.com> Subject: [dpdk-dev] [PATCH v4 4/4] compressdev: add huffman encoding flags X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Fiona Trahe --- 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");