[v5,0/4] cryptodev: add symmetric crypto data-path APIs
Message ID | 20200713165755.61814-1-roy.fan.zhang@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B692DA0540; Mon, 13 Jul 2020 18:58:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4F5311D69F; Mon, 13 Jul 2020 18:58:02 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 00E191D69E for <dev@dpdk.org>; Mon, 13 Jul 2020 18:57:59 +0200 (CEST) IronPort-SDR: m996bMhX9TO+U2N3+MlEBy7Tyfole8dGCdoMJeAdlWxaBVkk+QkRfi6IVsE8fxzqDFu3NmVM64 BfGY/2VZGpUA== X-IronPort-AV: E=McAfee;i="6000,8403,9681"; a="210203408" X-IronPort-AV: E=Sophos;i="5.75,348,1589266800"; d="scan'208";a="210203408" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2020 09:57:58 -0700 IronPort-SDR: SuRIAqTZ9hNd+yIHY2O/RQrQx5/8Dcbm55T+LRw9PEhhjCdKbu7Ed70xXYMKwunHK8/Xf/S4XK oWow7YlOcfxQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,348,1589266800"; d="scan'208";a="281465635" Received: from silpixa00398673.ir.intel.com (HELO silpixa00398673.ger.corp.intel.com) ([10.237.223.136]) by orsmga003.jf.intel.com with ESMTP; 13 Jul 2020 09:57:57 -0700 From: Fan Zhang <roy.fan.zhang@intel.com> To: dev@dpdk.org Cc: fiona.trahe@intel.com, akhil.goyal@nxp.com, Fan Zhang <roy.fan.zhang@intel.com>, Piotr Bronowski <piotrx.bronowski@intel.com> Date: Mon, 13 Jul 2020 17:57:51 +0100 Message-Id: <20200713165755.61814-1-roy.fan.zhang@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200703124942.29171-1-roy.fan.zhang@intel.com> References: <20200703124942.29171-1-roy.fan.zhang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [dpdk-dev v5 0/4] cryptodev: add symmetric crypto data-path APIs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Message
Fan Zhang
July 13, 2020, 4:57 p.m. UTC
This patch adds symmetric crypto data-path APIs for Cryptodev. Direct symmetric crypto data-path APIs are a set of APIs that provide more HW friendly enqueue/dequeue data-path functions as an alternative approach to ``rte_cryptodev_enqueue_burst`` and ``rte_cryptodev_dequeue_burst``. The APIs are designed for external libraries/applications that want to use Cryptodev as symmetric crypto data-path accelerator but not necessarily mbuf data-path centric. With the APIs the cycle cost spent on conversion from their data structure to DPDK cryptodev operations/mbufs can be reduced, and the dependency on DPDK crypto operation mempool can be relieved. It is expected that the user can develop close-to-native performance symmetric crypto data-path implementations with the functions provided in this patchset. Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com> v5: - Changed to use rte_crypto_sym_vec as input. - Changed to use public APIs instead of use function pointer. v4: - Added missed patch. v3: - Instead of QAT only API, moved the API to cryptodev. - Added cryptodev feature flags. v2: - Used a structure to simplify parameters. - Added unit tests. - Added documentation. Fan Zhang (4): cryptodev: add data-path APIs crypto/qat: add support to direct data-path APIs test/crypto: add unit-test for cryptodev direct APIs doc: add cryptodev direct APIs guide app/test/test_cryptodev.c | 367 +++++++- app/test/test_cryptodev.h | 6 + app/test/test_cryptodev_blockcipher.c | 50 +- doc/guides/prog_guide/cryptodev_lib.rst | 53 ++ doc/guides/rel_notes/release_20_08.rst | 8 + drivers/common/qat/Makefile | 1 + drivers/common/qat/qat_qp.h | 1 + drivers/crypto/qat/meson.build | 1 + drivers/crypto/qat/qat_sym.h | 3 + drivers/crypto/qat/qat_sym_hw_dp.c | 850 ++++++++++++++++++ drivers/crypto/qat/qat_sym_pmd.c | 7 +- lib/librte_cryptodev/rte_crypto_sym.h | 27 +- lib/librte_cryptodev/rte_cryptodev.c | 118 +++ lib/librte_cryptodev/rte_cryptodev.h | 256 +++++- lib/librte_cryptodev/rte_cryptodev_pmd.h | 90 +- .../rte_cryptodev_version.map | 5 + 16 files changed, 1795 insertions(+), 48 deletions(-) create mode 100644 drivers/crypto/qat/qat_sym_hw_dp.c