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 91DC2A050B; Thu, 7 Apr 2022 12:31:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1E9B04111B; Thu, 7 Apr 2022 12:31:14 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 0EB37410DD for ; Thu, 7 Apr 2022 12:31:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649327472; x=1680863472; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=5skEZ5xCWBWcshgUala0FrGcn6z8K9YjWeRbpVzzg6U=; b=RrjY6ds4X7bMh+PeE7p7G9HYQ8Xam7ICcpItFBYyF02YhD326dfQuG48 7921rzkuOF7RJWHokMFKymmCKUD/9n15TJjOUDsjjNZtA0KaWZVmMqECc Lp9GhWh8ItM9lrX5l0/7S73V0vcrKmKAwrYY12SD6OGcdaOVD7lVstyhS F2QZT5sdkVY5JtegEi/OppiLpXgkfrjSJLloUHg62j70235b3UUtbq8kI CJjQyimt9vuQEvD6qqiil33Og/gwwmd4yZjYrpkrNov4XK2TVQZJTMh6c T566sYf5X/vlBvCGdsyR/gBjIHN0p8Y3CsufPHFxStSGOCoD7Rz0i6Y67 g==; X-IronPort-AV: E=McAfee;i="6200,9189,10309"; a="258880008" X-IronPort-AV: E=Sophos;i="5.90,241,1643702400"; d="scan'208";a="258880008" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2022 03:31:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,241,1643702400"; d="scan'208";a="549988965" Received: from silpixa00400355.ir.intel.com (HELO silpixa00400355.ger.corp.intel.com) ([10.237.222.49]) by orsmga007.jf.intel.com with ESMTP; 07 Apr 2022 03:31:09 -0700 From: Ciara Power To: dev@dpdk.org Cc: roy.fan.zhang@intel.com, kai.ji@intel.com, Ciara Power , Pablo de Lara Subject: [PATCH 2/3] crypto/ipsec_mb: add chachapoly SGL support to aesni_mb Date: Thu, 7 Apr 2022 10:30:40 +0000 Message-Id: <20220407103041.4037942-3-ciara.power@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220407103041.4037942-1-ciara.power@intel.com> References: <20220407103041.4037942-1-ciara.power@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Add SGL support for chacha20_poly1305 algorithm through JOB API. Supports IN-PLACE SGL, OOP SGL IN and LB OUT, and OOP SGL IN and SGL OUT. Feature flags not added, as the PMD does not support SGL for all other algorithms. Signed-off-by: Ciara Power --- drivers/crypto/ipsec_mb/pmd_aesni_mb.c | 9 ++++++++- drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c index 09a0cc5ace..606c8a0caf 100644 --- a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c +++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c @@ -1289,6 +1289,12 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp, job->u.CHACHA20_POLY1305.aad = op->sym->aead.aad.data; job->u.CHACHA20_POLY1305.aad_len_in_bytes = session->aead.aad_len; + if (sgl) { + job->u.CHACHA20_POLY1305.ctx = + &session->aead.chacha_sgl_ctx; + job->cipher_mode = IMB_CIPHER_CHACHA20_POLY1305_SGL; + job->hash_alg = IMB_AUTH_CHACHA20_POLY1305_SGL; + } job->enc_keys = session->cipher.expanded_aes_keys.encode; job->dec_keys = session->cipher.expanded_aes_keys.encode; break; @@ -1394,6 +1400,7 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp, break; case IMB_AUTH_GCM_SGL: + case IMB_AUTH_CHACHA20_POLY1305_SGL: job->hash_start_src_offset_in_bytes = 0; job->msg_len_to_hash_in_bytes = 0; job->iv = rte_crypto_op_ctod_offset(op, uint8_t *, @@ -1405,7 +1412,6 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp, op->sym->aead.data.offset; job->msg_len_to_hash_in_bytes = op->sym->aead.data.length; - job->iv = rte_crypto_op_ctod_offset(op, uint8_t *, session->iv.offset); break; @@ -1491,6 +1497,7 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp, job->msg_len_to_cipher_in_bytes = op->sym->aead.data.length; break; case IMB_CIPHER_GCM_SGL: + case IMB_CIPHER_CHACHA20_POLY1305_SGL: job->msg_len_to_cipher_in_bytes = 0; job->cipher_start_src_offset_in_bytes = 0; break; diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h index 1d1e9dde00..f7fce7c39f 100644 --- a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h +++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h @@ -947,7 +947,10 @@ struct aesni_mb_session { /* * AAD data length */ uint16_t aad_len; - struct gcm_context_data gcm_sgl_ctx; + union { + struct gcm_context_data gcm_sgl_ctx; + struct chacha20_poly1305_context_data chacha_sgl_ctx; + }; } aead; } __rte_cache_aligned; -- 2.25.1