From patchwork Wed Oct 19 14:15:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejasree Kondoj X-Patchwork-Id: 118578 X-Patchwork-Delegate: gakhil@marvell.com 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 A146BA06C8; Wed, 19 Oct 2022 16:15:51 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 877ED42BE2; Wed, 19 Oct 2022 16:15:34 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 6776842BDB for ; Wed, 19 Oct 2022 16:15:31 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29J8B51F010696 for ; Wed, 19 Oct 2022 07:15:30 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=cQwAShIUxXBt76X6RiogqrNfQvMrppqmB4RYln+ImpI=; b=Vj7AOUZyfYKf+BKp6puMuQ9/zeLtnJ16vYtvmfjAcQyG7oLT8PLdUsxgIQMSj2VRbH+K WVDVrGxYeB/pCgZcGhCNDUv0N6XDSrfe0pE8EtGgxiR/BhXGry6YaZGeHdxokVGnHWV/ xhfq1xmcH2OP1+4oSIK9U7OZzAfuQHykvwfmEgbr3OqH9hdnGoVKg01thTzLYoeI570V LkKsgT+0Dl1asKS96K8VSiKpSvGt09pInmIoPFoIeBMN22vnt7d6CWMpj3+jis9Leix0 S3owX/9/+Kr1Y6Oj4dtLNi232PuuhmOmzx3Hu+NciLFAJD8SuKBnAwPMhS5raBoF5pFt GQ== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3kadg59ca5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 19 Oct 2022 07:15:30 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Wed, 19 Oct 2022 07:15:28 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Wed, 19 Oct 2022 07:15:28 -0700 Received: from hyd1554.marvell.com (unknown [10.29.57.11]) by maili.marvell.com (Postfix) with ESMTP id 3BF653F7059; Wed, 19 Oct 2022 07:15:26 -0700 (PDT) From: Tejasree Kondoj To: Akhil Goyal CC: Vidya Sagar Velumuri , Anoob Joseph , Subject: [PATCH 06/13] crypto/cnxk: update rlen calculation for lookaside mode Date: Wed, 19 Oct 2022 19:45:06 +0530 Message-ID: <20221019141513.1969052-7-ktejasree@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221019141513.1969052-1-ktejasree@marvell.com> References: <20221019141513.1969052-1-ktejasree@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: nEcBcgAad8pz3aJyN8e865hi2qCpNHAU X-Proofpoint-ORIG-GUID: nEcBcgAad8pz3aJyN8e865hi2qCpNHAU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-19_08,2022-10-19_03,2022-06-22_01 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 From: Vidya Sagar Velumuri For transport mode, IP header will not be part of encryption. Update the response len calculation accordingly for transport mode Signed-off-by: Vidya Sagar Velumuri --- drivers/crypto/cnxk/cn9k_ipsec.c | 42 ------------------------- drivers/crypto/cnxk/cn9k_ipsec_la_ops.h | 10 ++++-- 2 files changed, 7 insertions(+), 45 deletions(-) diff --git a/drivers/crypto/cnxk/cn9k_ipsec.c b/drivers/crypto/cnxk/cn9k_ipsec.c index 55a13570ad..9ae7c73b37 100644 --- a/drivers/crypto/cnxk/cn9k_ipsec.c +++ b/drivers/crypto/cnxk/cn9k_ipsec.c @@ -211,50 +211,8 @@ cn9k_ipsec_xform_verify(struct rte_security_ipsec_xform *ipsec, plt_err("Transport mode AES-256-GCM is not supported"); return -ENOTSUP; } - } else { - struct rte_crypto_cipher_xform *cipher; - struct rte_crypto_auth_xform *auth; - - if (crypto->type == RTE_CRYPTO_SYM_XFORM_CIPHER) { - cipher = &crypto->cipher; - auth = &crypto->next->auth; - } else { - cipher = &crypto->next->cipher; - auth = &crypto->auth; - } - - if ((cipher->algo == RTE_CRYPTO_CIPHER_AES_CBC) && - (auth->algo == RTE_CRYPTO_AUTH_SHA256_HMAC)) { - plt_err("Transport mode AES-CBC SHA2 HMAC 256 is not supported"); - return -ENOTSUP; - } - - if ((cipher->algo == RTE_CRYPTO_CIPHER_AES_CBC) && - (auth->algo == RTE_CRYPTO_AUTH_SHA384_HMAC)) { - plt_err("Transport mode AES-CBC SHA2 HMAC 384 is not supported"); - return -ENOTSUP; - } - - if ((cipher->algo == RTE_CRYPTO_CIPHER_AES_CBC) && - (auth->algo == RTE_CRYPTO_AUTH_SHA512_HMAC)) { - plt_err("Transport mode AES-CBC SHA2 HMAC 512 is not supported"); - return -ENOTSUP; - } - - if ((cipher->algo == RTE_CRYPTO_CIPHER_AES_CBC) && - (auth->algo == RTE_CRYPTO_AUTH_AES_XCBC_MAC)) { - plt_err("Transport mode AES-CBC AES-XCBC is not supported"); - return -ENOTSUP; - } - - if ((cipher->algo == RTE_CRYPTO_CIPHER_3DES_CBC) && - (auth->algo == RTE_CRYPTO_AUTH_AES_XCBC_MAC)) { - plt_err("Transport mode 3DES-CBC AES-XCBC is not supported"); - return -ENOTSUP; - } } } - return 0; } diff --git a/drivers/crypto/cnxk/cn9k_ipsec_la_ops.h b/drivers/crypto/cnxk/cn9k_ipsec_la_ops.h index 52618e8840..724fc525ad 100644 --- a/drivers/crypto/cnxk/cn9k_ipsec_la_ops.h +++ b/drivers/crypto/cnxk/cn9k_ipsec_la_ops.h @@ -16,11 +16,15 @@ static __rte_always_inline int32_t ipsec_po_out_rlen_get(struct cn9k_sec_session *sess, uint32_t plen) { uint32_t enc_payload_len; + int adj_len = 0; - enc_payload_len = RTE_ALIGN_CEIL(plen + sess->rlens.roundup_len, - sess->rlens.roundup_byte); + if (sess->sa.out_sa.common_sa.ctl.ipsec_mode == ROC_IE_SA_MODE_TRANSPORT) + adj_len = ROC_CPT_TUNNEL_IPV4_HDR_LEN; - return sess->custom_hdr_len + sess->rlens.partial_len + enc_payload_len; + enc_payload_len = + RTE_ALIGN_CEIL(plen + sess->rlens.roundup_len - adj_len, sess->rlens.roundup_byte); + + return sess->custom_hdr_len + sess->rlens.partial_len + enc_payload_len + adj_len; } static __rte_always_inline int