From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BDDACA0C45; Fri, 15 Oct 2021 16:40:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A770D410F1; Fri, 15 Oct 2021 16:40:18 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id DD39540040 for ; Fri, 15 Oct 2021 16:40:16 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10137"; a="227816094" X-IronPort-AV: E=Sophos;i="5.85,376,1624345200"; d="scan'208";a="227816094" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2021 07:40:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,376,1624345200"; d="scan'208";a="442542762" Received: from silpixa00400355.ir.intel.com (HELO silpixa00400355.ger.corp.intel.com) ([10.237.222.87]) by orsmga006.jf.intel.com with ESMTP; 15 Oct 2021 07:40:13 -0700 From: Ciara Power To: dev@dpdk.org Cc: roy.fan.zhang@intel.com, piotrx.bronowski@intel.com, gakhil@marvell.com, pablo.de.lara.guarch@intel.com, mdr@ashroe.eu, Ciara Power Date: Fri, 15 Oct 2021 14:39:43 +0000 Message-Id: <20211015143957.842499-1-ciara.power@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210618121803.1189857-1-piotrx.bronowski@intel.com> References: <20210618121803.1189857-1-piotrx.bronowski@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v4 00/14] drivers/crypto: introduce ipsec_mb framework 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 Sender: "dev" This set of patches introduces a new framework, making all common code of SW crypto PMD implementations built on top of intel-ipsec-mb library sharable. This helps to reduce future effort on the code maintenance and future updates. It also moves all SW PMD implementation specific details into single files located in the crypto/ipsec_mb folder. A CHACHA20_POLY1305 SW PMD is added based on this framework. Multi-process support for the PMDs is added for intel-ipsec-mb v1.1. The minimum intel-ipsec-mb version required is bumped to 1.0. ZUC-256 support is added for the aesni_mb PMD, with relevant tests. v4: - Renamed general files and functions to remove "_pmd_" and "rte_". - Fixed copyright years in many files. - Fixed some documentation errors. - Split sections of the PMD files into header files. - Fixed other small comments left on v3. - Dropped release note patch from v3, added release notes incrementally throughout the set. - Updated CHACHA20_POLY1305 AAD max size for AESNI_MB. - Removed unnecessary enqueue count variables and calls to enqueue when processing ops for SNOW3G, ZUC, KASUMI. - Removed some unnecessary includes for security headers in PMD files. - Added call to release queue pairs in the remove function. - Split CHACHA20_POLY1305 patch into two, (1) PMD addition and (2) test app changes. - Added 4 new patches for ZUC-256 support and tests, based on a patch previously sent to the mailing list: https://patchwork.dpdk.org/project/dpdk/patch/20210910164516.807659-1-pablo.de.lara.guarch@intel.com/ v3: - Added multiprocess support for v1.1 of intel-ipsec-mb. - Fixed some formatting and comments. - Added detail to some commit logs. - Updated macros to use intel-ipsec-mb v1.0 supported macros. - Added use of intel-ipsec-mb API to auto initialise IMB_MGR based on CPU vector support. v2: - Added qp NULL check in get stats function. - Updated maintainers file. - Replaced use of strlcpy with rte_strlcpy. - Fixed enum for GCM key length. - Updated release notes. - Added Chacha20_poly1305 PMD documentation. Ciara Power (1): crypto/ipsec_mb: add multiprocess support Fan Zhang (1): drivers/crypto: introduce IPsec-mb framework Kai Ji (2): crypto/ipsec_mb: add chacha20-poly1305 PMD to framework test/crypto: add test for chacha20_poly1305 PMD Pablo de Lara (4): crypto/ipsec_mb: support ZUC-256 for aesni_mb test/crypto: check cipher parameters test/crypto: check auth parameters test/crypto: add ZUC-256 vectors Piotr Bronowski (6): drivers/crypto: move aesni-mb PMD to IPsec-mb framework drivers/crypto: move aesni-gcm PMD to IPsec-mb framework drivers/crypto: move kasumi PMD to IPsec-mb framework drivers/crypto: move snow3g PMD to IPsec-mb framework crypto/ipsec_mb: add snow3g digest appended ops support drivers/crypto: move zuc PMD to IPsec-mb framework MAINTAINERS | 41 +- app/test/test_cryptodev.c | 170 ++- app/test/test_cryptodev.h | 1 + app/test/test_cryptodev_aead_test_vectors.h | 114 ++ app/test/test_cryptodev_zuc_test_vectors.h | 286 ++++ doc/guides/cryptodevs/aesni_gcm.rst | 4 +- doc/guides/cryptodevs/aesni_mb.rst | 5 +- doc/guides/cryptodevs/chacha20_poly1305.rst | 99 ++ .../cryptodevs/features/chacha20_poly1305.ini | 35 + doc/guides/cryptodevs/features/snow3g.ini | 1 + doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/kasumi.rst | 3 +- doc/guides/cryptodevs/snow3g.rst | 3 +- doc/guides/cryptodevs/zuc.rst | 3 +- doc/guides/rel_notes/release_21_11.rst | 31 + drivers/crypto/aesni_gcm/aesni_gcm_ops.h | 104 -- drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 984 ------------- drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c | 333 ----- .../crypto/aesni_gcm/aesni_gcm_pmd_private.h | 123 -- drivers/crypto/aesni_gcm/meson.build | 24 - .../crypto/aesni_mb/aesni_mb_pmd_private.h | 337 ----- drivers/crypto/aesni_mb/meson.build | 25 - drivers/crypto/aesni_mb/version.map | 3 - drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 370 +++++ drivers/crypto/ipsec_mb/ipsec_mb_private.c | 176 +++ drivers/crypto/ipsec_mb/ipsec_mb_private.h | 455 ++++++ drivers/crypto/ipsec_mb/meson.build | 33 + drivers/crypto/ipsec_mb/pmd_aesni_gcm.c | 837 +++++++++++ drivers/crypto/ipsec_mb/pmd_aesni_gcm_priv.h | 169 +++ .../pmd_aesni_mb.c} | 1235 +++++++---------- .../pmd_aesni_mb_priv.h} | 681 ++++----- drivers/crypto/ipsec_mb/pmd_chacha_poly.c | 408 ++++++ .../crypto/ipsec_mb/pmd_chacha_poly_priv.h | 74 + drivers/crypto/ipsec_mb/pmd_kasumi.c | 476 +++++++ drivers/crypto/ipsec_mb/pmd_kasumi_priv.h | 81 ++ .../pmd_snow3g.c} | 543 ++++---- drivers/crypto/ipsec_mb/pmd_snow3g_priv.h | 85 ++ drivers/crypto/ipsec_mb/pmd_zuc.c | 403 ++++++ drivers/crypto/ipsec_mb/pmd_zuc_priv.h | 85 ++ .../{aesni_gcm => ipsec_mb}/version.map | 0 drivers/crypto/kasumi/kasumi_pmd_private.h | 81 -- drivers/crypto/kasumi/meson.build | 24 - drivers/crypto/kasumi/rte_kasumi_pmd.c | 642 --------- drivers/crypto/kasumi/rte_kasumi_pmd_ops.c | 316 ----- drivers/crypto/kasumi/version.map | 3 - drivers/crypto/meson.build | 6 +- drivers/crypto/snow3g/meson.build | 24 - drivers/crypto/snow3g/rte_snow3g_pmd_ops.c | 323 ----- drivers/crypto/snow3g/snow3g_pmd_private.h | 84 -- drivers/crypto/snow3g/version.map | 3 - drivers/crypto/zuc/meson.build | 24 - drivers/crypto/zuc/rte_zuc_pmd.c | 583 -------- drivers/crypto/zuc/rte_zuc_pmd_ops.c | 322 ----- drivers/crypto/zuc/version.map | 3 - drivers/crypto/zuc/zuc_pmd_private.h | 83 -- 55 files changed, 5412 insertions(+), 5950 deletions(-) create mode 100644 doc/guides/cryptodevs/chacha20_poly1305.rst create mode 100644 doc/guides/cryptodevs/features/chacha20_poly1305.ini delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_ops.h delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd.c delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c delete mode 100644 drivers/crypto/aesni_gcm/aesni_gcm_pmd_private.h delete mode 100644 drivers/crypto/aesni_gcm/meson.build delete mode 100644 drivers/crypto/aesni_mb/aesni_mb_pmd_private.h delete mode 100644 drivers/crypto/aesni_mb/meson.build delete mode 100644 drivers/crypto/aesni_mb/version.map create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_ops.c create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_private.c create mode 100644 drivers/crypto/ipsec_mb/ipsec_mb_private.h create mode 100644 drivers/crypto/ipsec_mb/meson.build create mode 100644 drivers/crypto/ipsec_mb/pmd_aesni_gcm.c create mode 100644 drivers/crypto/ipsec_mb/pmd_aesni_gcm_priv.h rename drivers/crypto/{aesni_mb/rte_aesni_mb_pmd.c => ipsec_mb/pmd_aesni_mb.c} (60%) rename drivers/crypto/{aesni_mb/rte_aesni_mb_pmd_ops.c => ipsec_mb/pmd_aesni_mb_priv.h} (55%) create mode 100644 drivers/crypto/ipsec_mb/pmd_chacha_poly.c create mode 100644 drivers/crypto/ipsec_mb/pmd_chacha_poly_priv.h create mode 100644 drivers/crypto/ipsec_mb/pmd_kasumi.c create mode 100644 drivers/crypto/ipsec_mb/pmd_kasumi_priv.h rename drivers/crypto/{snow3g/rte_snow3g_pmd.c => ipsec_mb/pmd_snow3g.c} (51%) create mode 100644 drivers/crypto/ipsec_mb/pmd_snow3g_priv.h create mode 100644 drivers/crypto/ipsec_mb/pmd_zuc.c create mode 100644 drivers/crypto/ipsec_mb/pmd_zuc_priv.h rename drivers/crypto/{aesni_gcm => ipsec_mb}/version.map (100%) delete mode 100644 drivers/crypto/kasumi/kasumi_pmd_private.h delete mode 100644 drivers/crypto/kasumi/meson.build delete mode 100644 drivers/crypto/kasumi/rte_kasumi_pmd.c delete mode 100644 drivers/crypto/kasumi/rte_kasumi_pmd_ops.c delete mode 100644 drivers/crypto/kasumi/version.map delete mode 100644 drivers/crypto/snow3g/meson.build delete mode 100644 drivers/crypto/snow3g/rte_snow3g_pmd_ops.c delete mode 100644 drivers/crypto/snow3g/snow3g_pmd_private.h delete mode 100644 drivers/crypto/snow3g/version.map delete mode 100644 drivers/crypto/zuc/meson.build delete mode 100644 drivers/crypto/zuc/rte_zuc_pmd.c delete mode 100644 drivers/crypto/zuc/rte_zuc_pmd_ops.c delete mode 100644 drivers/crypto/zuc/version.map delete mode 100644 drivers/crypto/zuc/zuc_pmd_private.h -- 2.25.1