From patchwork Fri Feb 11 09:29:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ciara Power X-Patchwork-Id: 107360 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D630FA00BE; Fri, 11 Feb 2022 10:29:22 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 96C524270A; Fri, 11 Feb 2022 10:29:22 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 709AA40042 for ; Fri, 11 Feb 2022 10:29:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644571760; x=1676107760; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=k+ScP8X246eNjrA+z7e+/fH317Xcpk2lL98C23k78CA=; b=DZUKgNJCh9ntskbpqkzdz0nb36g8clOdSwEf6vFcNmY/a8b08uqRBTt+ glaI+uUUWvmDdOnH2XNKaYJ0Mj0reRXigKfpbcL9O6vKW3DLvM0zVDyYJ G+f0TJ4aTG52xw1tCqdSB06xJ1qR1APeApqoF7EFF2NKIHXBwhNGSpHj0 1df36sN5iUZnXY4fvRzPCVExau4/7csb7uHsXA8RSOaOpbNpwukvLJWIf sInrkkJVVq4Hhny3/LjJNUTLMq+Qf6KeD7RnbgFDq8gAypGf1iENrPuvN G3b/sVYaQGUwv6JPsx7DVu1jlIugx+VQWeurMk3LPSYeZl+9J059FT7tD Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10254"; a="249449903" X-IronPort-AV: E=Sophos;i="5.88,360,1635231600"; d="scan'208";a="249449903" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Feb 2022 01:29:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,360,1635231600"; d="scan'208";a="526889832" Received: from silpixa00400355.ir.intel.com (HELO silpixa00400355.ger.corp.intel.com) ([10.237.222.49]) by orsmga007.jf.intel.com with ESMTP; 11 Feb 2022 01:29:17 -0800 From: Ciara Power To: dev@dpdk.org Cc: roy.fan.zhang@intel.com, gakhil@marvell.com, anoobj@marvell.com, mdr@ashroe.eu, Ciara Power Subject: [PATCH v7 0/5] crypto: improve asym session usage Date: Fri, 11 Feb 2022 09:29:04 +0000 Message-Id: <20220211092909.4169919-1-ciara.power@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220209153854.2740455-1-ciara.power@intel.com> References: <20220209153854.2740455-1-ciara.power@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This patchset includes improvements for the asymmetric session. The main change is to the session structure, which is now a single mempool object, rather than having pointers to private data elsewhere. This session structure is now hidden in an internal header, so the app will never use it directly. Some other changes include adding a user data API, and modifying the return value for the create session function. This create session function now also initialises the session, and subsequently the clear/free functions have been merged into one. Sample code in the programmer's guide that showed basic steps for using Asymmetric crypto in DPDK has been replaced with literal includes in the first patch of this patchset. This ensures all subsequent code changes in the patchset are automatically reflected in the documentation. v7: Removed unused parameter to avoid compilation warning. v6: - Reordered variable declarations to follow cnxk file format. - Added fix for crypto perf app asymmetric modex operation, there is no longer a need for private mempool, and the rte_cryptodev_asym_session_pool_create API should be used. v5: - Modified which patch the sess parameter is passed to session create trace function. - Reworded create session function description. - Removed get API for session private data, can be accessed directly. - Modified test application to create a session mempool for TEST_NUM_SESSIONS rather than TEST_NUM_SESSIONS * 2. v4: - Added new patch to add literal includes usage in programmer's guide. - Merged asym crypto session clear and free functions. - Reordered some function parameters. - Updated trace function for asym crypto session create. - Fixed cnxk clear, the PMD no longer needs to put private data back into a mempool. - Renamed struct field for max private session size. - Replaced __extension__ with RTE_STD_C11. - Moved some parameter validity checks to before functional code. - Reworded release note. - Removed mempool parameter from session configure function. - Removed docs code additions, these are included due to patch 1 changing sample doc to use literal includes. - Initialised session variables as NULL. - Added possible error return values in user data API comment. v3: - Added documentation in relevant patches. - Fixed setting user data size. - Fixed hiding structure, it should not be hidden from PMDs. - Fixed some other small formatting issues. - Increased size of max_priv_session_sz to uint16_t. - Removed trace for asym session init function that was previously removed. Ciara Power (5): doc: replace asym crypto code with literal includes crypto: use single buffer for asymmetric session crypto: hide asym session structure crypto: add asym session user data API crypto: modify return value for asym session create app/test-crypto-perf/cperf_ops.c | 22 +- app/test-crypto-perf/cperf_test_throughput.c | 8 +- app/test-crypto-perf/main.c | 31 +- app/test/test_cryptodev_asym.c | 380 ++++++------------- app/test/test_cryptodev_mod_test_vectors.h | 4 + doc/guides/prog_guide/cryptodev_lib.rst | 212 +++-------- doc/guides/rel_notes/release_22_03.rst | 14 + drivers/crypto/cnxk/cn10k_cryptodev_ops.c | 8 +- drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 8 +- drivers/crypto/cnxk/cnxk_cryptodev_ops.c | 22 +- drivers/crypto/cnxk/cnxk_cryptodev_ops.h | 3 +- drivers/crypto/octeontx/otx_cryptodev_ops.c | 32 +- drivers/crypto/openssl/rte_openssl_pmd.c | 4 +- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 24 +- drivers/crypto/qat/qat_asym.c | 54 +-- drivers/crypto/qat/qat_asym.h | 5 +- lib/cryptodev/cryptodev_pmd.h | 36 +- lib/cryptodev/cryptodev_trace_points.c | 9 +- lib/cryptodev/rte_cryptodev.c | 258 ++++++++----- lib/cryptodev/rte_cryptodev.h | 136 ++++--- lib/cryptodev/rte_cryptodev_trace.h | 38 +- lib/cryptodev/version.map | 9 +- 22 files changed, 528 insertions(+), 789 deletions(-) Acked-by: Akhil Goyal