From patchwork Wed Jun 27 12:16:21 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: 41729 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 7C9EB1C29E; Wed, 27 Jun 2018 22:22:12 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id B6D261C1DD for ; Wed, 27 Jun 2018 22:22:06 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Jun 2018 13:22:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,280,1526367600"; d="scan'208";a="240846404" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by fmsmga005.fm.intel.com with ESMTP; 27 Jun 2018 13:22:01 -0700 From: Pablo de Lara To: fiona.trahe@intel.com, ashish.gupta@caviumnetworks.com, lee.daly@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Wed, 27 Jun 2018 13:16:21 +0100 Message-Id: <20180627121622.48069-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 v2 1/2] 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_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 Acked-by: Fiona Trahe --- 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