From patchwork Sat May 16 09:26:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 70353 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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 22C05A00C3; Sat, 16 May 2020 11:27:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 709D71D98E; Sat, 16 May 2020 11:27:22 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id BECA51D98D for ; Sat, 16 May 2020 11:27:21 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04G9QBst020926; Sat, 16 May 2020 02:27:21 -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=pfpt0818; bh=YxiYAEwVJd2F7GjIiiyZZt6hob1sYddu60FsmpLjCy0=; b=kBXP6fEQznVzvq/JPbRmHnVOzK9+sEHgkoucQBKBjD7fGA19R0H6p7+XeoWbiwZmB9iH N3h0t692xVlblsEo8kMkL7yOvci3LfuWJvBZzfNA3xgEN7vuQgZqwwjCXUKwNUwIFgPg LmA3N/z2KvLHRvnzS8kMJijv1716jw+16cKho7zXheI/EbvBE+zCAimTGDA/0nuZM5mL r/HoyTq4GRmR0HTImh4xbLeR1k9NgeMR9UfunBn4lQnyb3nQ48+jPTlez7RYkD168ON3 jpL/Qn+hrcF5XmQbtT2CMfMSd11Lbp4QvIGIvmZ3e/xyS/v648EsggEuo9e8F4jnZMGw RA== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 3100xkbre3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 May 2020 02:27:21 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:18 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 16 May 2020 02:27:18 -0700 Received: from ajoseph83.caveonetworks.com (ajoseph83.caveonetworks.com [10.29.45.60]) by maili.marvell.com (Postfix) with ESMTP id 41F513F7043; Sat, 16 May 2020 02:27:16 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal CC: Anoob Joseph , Thomas Monjalon , Jerin Jacob , Narayana Prasad , Ankur Dwivedi , Tejasree Kondoj , Date: Sat, 16 May 2020 14:56:53 +0530 Message-ID: <1589621218-25339-2-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589621218-25339-1-git-send-email-anoobj@marvell.com> References: <1589621218-25339-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-16_05:2020-05-15, 2020-05-16 signatures=0 Subject: [dpdk-dev] [PATCH 1/6] common/octeontx2: fix out of bounds access X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Coverity issue: 354230, 354231 Fixes: f44e71637755 ("net/octeontx2: add security session operations") Fixes: 3fe4d07d1678 ("crypto/octeontx2: enable CPT to share QP with ethdev") Signed-off-by: Anoob Joseph --- drivers/common/octeontx2/otx2_sec_idev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/common/octeontx2/otx2_sec_idev.c b/drivers/common/octeontx2/otx2_sec_idev.c index 4e65ce2..6e9643c 100644 --- a/drivers/common/octeontx2/otx2_sec_idev.c +++ b/drivers/common/octeontx2/otx2_sec_idev.c @@ -55,7 +55,7 @@ otx2_sec_idev_tx_cpt_qp_add(uint16_t port_id, struct otx2_cpt_qp *qp) struct otx2_sec_idev_cfg *cfg; int i, ret; - if (qp == NULL || port_id > OTX2_MAX_INLINE_PORTS) + if (qp == NULL || port_id >= OTX2_MAX_INLINE_PORTS) return -EINVAL; cfg = &sec_cfg[port_id]; @@ -126,7 +126,7 @@ otx2_sec_idev_tx_cpt_qp_get(uint16_t port_id, struct otx2_cpt_qp **qp) uint16_t index; int i, ret; - if (port_id > OTX2_MAX_INLINE_PORTS || qp == NULL) + if (port_id >= OTX2_MAX_INLINE_PORTS || qp == NULL) return -EINVAL; cfg = &sec_cfg[port_id]; From patchwork Sat May 16 09:26:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 70354 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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 422E9A00C3; Sat, 16 May 2020 11:27:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2C1401D999; Sat, 16 May 2020 11:27:28 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id C49571D717 for ; Sat, 16 May 2020 11:27:26 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04G9QZw3006275; Sat, 16 May 2020 02:27:26 -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=pfpt0818; bh=p46HgMGWL+6vWnAOnb2Ac7yqiFtaD4ZPebfSTGO/4Kg=; b=NxGkCM2Rg38AdUrj5CT7mPlLoMN07m5C/9a8YadoV8UXfwR8OGs1bdWLu3v4fHSM2jfm MuJYbl0dUcjzKQC0kw7zcQnfxTOTJtouiAtnjKeRqfwdJ4CvNlaYqTN8z/VQumph50U0 iLqLpWk9TgwV31GB/NF2Z/rJOKr2VR1F21PrzI9yZep8BQKaj/rjhSA++G2Jb+5Mhbid Roq8FpurCYdMI1crElEk3BMSpr1jcMaSzmE2xhPjWKnlzvCxRNv7NM2sdSnOKSbqMGSi IfpmhAmdL0RkW0A6hyXKc19hbwmg/Xp3Q+Wge1rlyidzOHsc4dxECxTGfk8x+GKx/WWy hA== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 312dhq8050-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 May 2020 02:27:25 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:24 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 16 May 2020 02:27:24 -0700 Received: from ajoseph83.caveonetworks.com (ajoseph83.caveonetworks.com [10.29.45.60]) by maili.marvell.com (Postfix) with ESMTP id D6ABD3F7040; Sat, 16 May 2020 02:27:21 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal CC: Tejasree Kondoj , Thomas Monjalon , Jerin Jacob , Narayana Prasad , Ankur Dwivedi , , Anoob Joseph Date: Sat, 16 May 2020 14:56:54 +0530 Message-ID: <1589621218-25339-3-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589621218-25339-1-git-send-email-anoobj@marvell.com> References: <1589621218-25339-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-16_05:2020-05-15, 2020-05-16 signatures=0 Subject: [dpdk-dev] [PATCH 2/6] net/octeontx2: increase max packet length for Inline IPsec Rx X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Tejasree Kondoj Update max packet length supported by Inline IPsec Rx to NIX_MAX_FRS Signed-off-by: Anoob Joseph Signed-off-by: Tejasree Kondoj --- drivers/net/octeontx2/otx2_ethdev_sec.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/octeontx2/otx2_ethdev_sec.c b/drivers/net/octeontx2/otx2_ethdev_sec.c index 3858218..5f6140f 100644 --- a/drivers/net/octeontx2/otx2_ethdev_sec.c +++ b/drivers/net/octeontx2/otx2_ethdev_sec.c @@ -20,8 +20,6 @@ #include "otx2_ipsec_fp.h" #include "otx2_sec_idev.h" -#define ETH_SEC_MAX_PKT_LEN 1450 - #define AH_HDR_LEN 12 #define AES_GCM_IV_LEN 8 #define AES_GCM_MAC_LEN 16 @@ -745,7 +743,7 @@ eth_sec_ipsec_cfg(struct rte_eth_dev *eth_dev, uint8_t tt) req->ipsec_cfg0.sa_pow2_size = rte_log2_u32(sizeof(struct otx2_ipsec_fp_in_sa)); - req->ipsec_cfg0.lenm1_max = ETH_SEC_MAX_PKT_LEN - 1; + req->ipsec_cfg0.lenm1_max = NIX_MAX_FRS - 1; req->ipsec_cfg1.sa_idx_w = rte_log2_u32(dev->ipsec_in_max_spi); req->ipsec_cfg1.sa_idx_max = dev->ipsec_in_max_spi - 1; From patchwork Sat May 16 09:26:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 70355 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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 6EACBA00C3; Sat, 16 May 2020 11:27:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7BF4F1D996; Sat, 16 May 2020 11:27:33 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id D81AA1D98D for ; Sat, 16 May 2020 11:27:32 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04G9Q6wY020879; Sat, 16 May 2020 02:27:32 -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=pfpt0818; bh=Eh34J2DmRFMocG40zKTJcm2nxCHcjFamNoxWyDxHSn0=; b=w6UGKnwB/SmDzd8nerUMn19ibBchp+6w86yhL3nnpHBT+hpuGcE+y7D9fNFwA5Dnm9uu 1D9C0Kw83HW8YULxux9E46WqYryArLe2FCMoNXVVBc7RzN8IKcKhV7ZuwFf90Azp0USf nU4WhDbzw7/VY245EdzGgWZ7M30qY/JEtHNxSHh4FB4ZCSfy2j+ZPMRPbtxBjYIuZAmx 5AaJu8Vo40AWBn6zcc9/lsMB2/RSwlZMJTDgh91VACq3H59pyG5BQTHOSyFpXFbkiat/ Nyha+9sWE+0pCIZtXeQKia12wkhlQwslJXNYochaHszDB/MjLKVPBzxdg8TPwtZWqfxo 6A== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 3100xkbrf5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 May 2020 02:27:32 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:30 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:29 -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.2 via Frontend Transport; Sat, 16 May 2020 02:27:29 -0700 Received: from ajoseph83.caveonetworks.com (ajoseph83.caveonetworks.com [10.29.45.60]) by maili.marvell.com (Postfix) with ESMTP id CF2C43F7040; Sat, 16 May 2020 02:27:26 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal CC: Ankur Dwivedi , Thomas Monjalon , Jerin Jacob , Narayana Prasad , Tejasree Kondoj , , Anoob Joseph Date: Sat, 16 May 2020 14:56:55 +0530 Message-ID: <1589621218-25339-4-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589621218-25339-1-git-send-email-anoobj@marvell.com> References: <1589621218-25339-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-16_05:2020-05-15, 2020-05-16 signatures=0 Subject: [dpdk-dev] [PATCH 3/6] crypto/octeontx2: enable non-byte aligned data feature X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Ankur Dwivedi The OCTEON TX2 crypto PMD supports non-byte aligned data as input for SNOW and ZUC algos. Adding the same to the feature list. Signed-off-by: Ankur Dwivedi Signed-off-by: Anoob Joseph --- doc/guides/cryptodevs/features/octeontx2.ini | 1 + drivers/crypto/octeontx2/otx2_cryptodev.c | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/guides/cryptodevs/features/octeontx2.ini b/doc/guides/cryptodevs/features/octeontx2.ini index e9ce26c..cdcaf70 100644 --- a/doc/guides/cryptodevs/features/octeontx2.ini +++ b/doc/guides/cryptodevs/features/octeontx2.ini @@ -13,6 +13,7 @@ OOP SGL In LB Out = Y OOP SGL In SGL Out = Y RSA PRIV OP KEY QT = Y Symmetric sessionless = Y +Non-Byte aligned data = Y ; ; Supported crypto algorithms of 'octeontx2' crypto driver. diff --git a/drivers/crypto/octeontx2/otx2_cryptodev.c b/drivers/crypto/octeontx2/otx2_cryptodev.c index 7cda077..6ffbc2e 100644 --- a/drivers/crypto/octeontx2/otx2_cryptodev.c +++ b/drivers/crypto/octeontx2/otx2_cryptodev.c @@ -104,6 +104,7 @@ otx2_cpt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT | RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO | RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT | + RTE_CRYPTODEV_FF_NON_BYTE_ALIGNED_DATA | RTE_CRYPTODEV_FF_SYM_SESSIONLESS; return 0; From patchwork Sat May 16 09:26:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 70356 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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 3FA9BA00C3; Sat, 16 May 2020 11:27:58 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D6B151D99E; Sat, 16 May 2020 11:27:38 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 760E71D99E for ; Sat, 16 May 2020 11:27:37 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04G9QBsu020926; Sat, 16 May 2020 02:27:36 -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=pfpt0818; bh=to3A/0gLekc6wyl9bHF7uTF+QxVL3MddDPRz9HJWNPI=; b=irJP/zZKE760K81JdVKS+6CihzpGHYkKE4W7JDls9zr/8NevHNz44dXwAAnNUFImOrwJ 9q3hn+ujKpL/C67Hk8zthmKlJ/g9urSuXDQ/cY6m1U0xO8v+iDiGnGXCg0fVS2yGWMDF 8vZ8utnirwlaf80dPMneOl6CCFWK0xzMfPZVu3oCEr15UWT3yHIe4waMD1sBLaKOnAlZ BcYUFNlo1n7RcV2mkuOMu4aC40aFuQvBcWPaTMSDE6mJNK/Wy76fW44f4AXDwDn82ili HW3DnMBywS1lwUsjFeWUHEPrJDM6B3Hfqgy0RTCANJkNfDnkYt+59EIaXuxWPLuQ+8mq 8A== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3100xkbrfc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 May 2020 02:27:36 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:34 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:34 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 16 May 2020 02:27:33 -0700 Received: from ajoseph83.caveonetworks.com (ajoseph83.caveonetworks.com [10.29.45.60]) by maili.marvell.com (Postfix) with ESMTP id 638443F703F; Sat, 16 May 2020 02:27:31 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal CC: Anoob Joseph , Thomas Monjalon , Jerin Jacob , Narayana Prasad , Ankur Dwivedi , Tejasree Kondoj , Date: Sat, 16 May 2020 14:56:56 +0530 Message-ID: <1589621218-25339-5-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589621218-25339-1-git-send-email-anoobj@marvell.com> References: <1589621218-25339-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-16_05:2020-05-15, 2020-05-16 signatures=0 Subject: [dpdk-dev] [PATCH 4/6] crypto/octeontx2: improve error handling in session configure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Session configure should return -ENOTSUP in case of unsupported xform requests. Moving the validation of combinations out of cpt, as the feature support will not be same across OCTEON TX and OCTEON TX2. Signed-off-by: Ankur Dwivedi Signed-off-by: Anoob Joseph --- drivers/crypto/octeontx2/otx2_cryptodev_ops.c | 43 +++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c index 0ae04c5..ad292a0 100644 --- a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c +++ b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c @@ -312,6 +312,41 @@ otx2_cpt_qp_destroy(const struct rte_cryptodev *dev, struct otx2_cpt_qp *qp) } static int +sym_xform_verify(struct rte_crypto_sym_xform *xform) +{ + if (xform->next) { + if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->next->cipher.op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) + return -ENOTSUP; + + if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->cipher.op == RTE_CRYPTO_CIPHER_OP_DECRYPT && + xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH) + return -ENOTSUP; + + if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->cipher.algo == RTE_CRYPTO_CIPHER_3DES_CBC && + xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->next->auth.algo == RTE_CRYPTO_AUTH_SHA1) + return -ENOTSUP; + + if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->auth.algo == RTE_CRYPTO_AUTH_SHA1 && + xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->next->cipher.algo == RTE_CRYPTO_CIPHER_3DES_CBC) + return -ENOTSUP; + + } else { + if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->auth.algo == RTE_CRYPTO_AUTH_NULL && + xform->auth.op == RTE_CRYPTO_AUTH_OP_VERIFY) + return -ENOTSUP; + } + return 0; +} + +static int sym_session_configure(int driver_id, struct rte_crypto_sym_xform *xform, struct rte_cryptodev_sym_session *sess, struct rte_mempool *pool) @@ -320,10 +355,9 @@ sym_session_configure(int driver_id, struct rte_crypto_sym_xform *xform, void *priv; int ret; - if (unlikely(cpt_is_algo_supported(xform))) { - CPT_LOG_ERR("Crypto xform not supported"); - return -ENOTSUP; - } + ret = sym_xform_verify(xform); + if (unlikely(ret)) + return ret; if (unlikely(rte_mempool_get(pool, &priv))) { CPT_LOG_ERR("Could not allocate session private data"); @@ -373,7 +407,6 @@ sym_session_configure(int driver_id, struct rte_crypto_sym_xform *xform, priv_put: rte_mempool_put(pool, priv); - CPT_LOG_ERR("Crypto xform not supported"); return -ENOTSUP; } From patchwork Sat May 16 09:26:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 70357 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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 B7042A00C3; Sat, 16 May 2020 11:28:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3218D1D9CE; Sat, 16 May 2020 11:27:43 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 7094E1D9C9 for ; Sat, 16 May 2020 11:27:41 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04G9QBsv020926; Sat, 16 May 2020 02:27:40 -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=pfpt0818; bh=MrGy7q4Wt6NBeaxdn1oW9DV2TS4l4iuctGli8IJP8ro=; b=PcE17DDBMwlaAcVSgizzlvUO427BWFs59F6kkp/52ac8rlM08sB/VMKktVPOsmMLeYmV 6wvC4Rfksp4AzctJi/JZ+RfOQLGca5yvUqTkP5CESoAes/Pklpo+MZxkd0H2pqjFiag4 XSAK54Xd/1Re0C5L1n3mJzSRfWkCkw5vNmsW244CIJfk/PgawzeUiWVmQkzPKUC9xvPe ZXD6vR35BHAR/kH/vXpHSMfCWuKw0Md47rqa282i+eXZklYDRHgB09uL3yq+JiKxzPeh fSwqwihIvCd82u6C3pFF9xT4NWNx1CMAMVN5oqWzqvLmpo0eBqwKOsSR2w+KKK005keB 3g== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 3100xkbrfw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 May 2020 02:27:40 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:38 -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.2 via Frontend Transport; Sat, 16 May 2020 02:27:38 -0700 Received: from ajoseph83.caveonetworks.com (ajoseph83.caveonetworks.com [10.29.45.60]) by maili.marvell.com (Postfix) with ESMTP id 30BF23F7040; Sat, 16 May 2020 02:27:35 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal CC: Ankur Dwivedi , Thomas Monjalon , Jerin Jacob , Narayana Prasad , Tejasree Kondoj , , Anoob Joseph Date: Sat, 16 May 2020 14:56:57 +0530 Message-ID: <1589621218-25339-6-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589621218-25339-1-git-send-email-anoobj@marvell.com> References: <1589621218-25339-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-16_05:2020-05-15, 2020-05-16 signatures=0 Subject: [dpdk-dev] [PATCH 5/6] crypto/octeontx: enable non-byte aligned data feature X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Ankur Dwivedi The OCTEON TX crypto PMD supports non-byte aligned data as input for SNOW and ZUC algos. Adding the same to the feature list. Signed-off-by: Ankur Dwivedi Signed-off-by: Anoob Joseph --- doc/guides/cryptodevs/features/octeontx.ini | 1 + drivers/crypto/octeontx/otx_cryptodev_ops.c | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/guides/cryptodevs/features/octeontx.ini b/doc/guides/cryptodevs/features/octeontx.ini index 4ce4ff1..09affb2 100644 --- a/doc/guides/cryptodevs/features/octeontx.ini +++ b/doc/guides/cryptodevs/features/octeontx.ini @@ -13,6 +13,7 @@ OOP SGL In LB Out = Y OOP SGL In SGL Out = Y RSA PRIV OP KEY QT = Y Symmetric sessionless = Y +Non-Byte aligned data = Y ; ; Supported crypto algorithms of 'octeontx' crypto driver. diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index 3fbf5d5..7097499 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -968,6 +968,7 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev) RTE_CRYPTODEV_FF_IN_PLACE_SGL | RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT | + RTE_CRYPTODEV_FF_NON_BYTE_ALIGNED_DATA | RTE_CRYPTODEV_FF_SYM_SESSIONLESS; break; default: From patchwork Sat May 16 09:26:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 70358 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: 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 77175A00C3; Sat, 16 May 2020 11:28:19 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 74D111D9D8; Sat, 16 May 2020 11:27:47 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id BF3FC1D9D7 for ; Sat, 16 May 2020 11:27:45 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04G9RLvf006936; Sat, 16 May 2020 02:27:45 -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=pfpt0818; bh=2zv9KFFLJOYysf7toc8NX01f7xqrWFjSq1l+Gi/mwFA=; b=vz3Hs7RAEd5/BCenKJjC7Qzi8fim/WSCaJWpm7M1bG2GLFWfCyZ5Uy3tzu3hoeYYjG2j 6zqBxlu9WPm4IlNaPxiHpAZVoc0/fY9/fT4ioNYeRVkJlESL5ynnDyeBDU7AZ91mp/th twK6kidoLhtDiQ4izNU74SejpDN8s6+oC+h/vI/uylTVi4cNx8X2waPauvjHySWxAVH8 9x9yfJCOV9l3MuNb6Mlx+gEhQaq2SQ7wzUTdtjfom3HbU+LtoWjiZSHM7DAjRgXiBRc6 fIEYpHKd7QARSEI+EpSSb7fRrVjUVHEnM9yKfTLOYYZ6n+bnEjGmUJdCqyZ8SljfmEYM eA== Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0a-0016f401.pphosted.com with ESMTP id 312dhq805w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 16 May 2020 02:27:44 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 16 May 2020 02:27:43 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 16 May 2020 02:27:43 -0700 Received: from ajoseph83.caveonetworks.com (ajoseph83.caveonetworks.com [10.29.45.60]) by maili.marvell.com (Postfix) with ESMTP id C8BFA3F703F; Sat, 16 May 2020 02:27:40 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal CC: Anoob Joseph , Thomas Monjalon , Jerin Jacob , Narayana Prasad , Ankur Dwivedi , Tejasree Kondoj , Date: Sat, 16 May 2020 14:56:58 +0530 Message-ID: <1589621218-25339-7-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589621218-25339-1-git-send-email-anoobj@marvell.com> References: <1589621218-25339-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-16_05:2020-05-15, 2020-05-16 signatures=0 Subject: [dpdk-dev] [PATCH 6/6] crypto/octeontx: redesign sym sessionless code path X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Cleanup sessionless code path and improve error handling. Signed-off-by: Ankur Dwivedi Signed-off-by: Anoob Joseph --- drivers/common/cpt/cpt_ucode.h | 75 ---------- drivers/crypto/octeontx/otx_cryptodev_ops.c | 209 +++++++++++++++------------- 2 files changed, 115 insertions(+), 169 deletions(-) diff --git a/drivers/common/cpt/cpt_ucode.h b/drivers/common/cpt/cpt_ucode.h index 0d3a01b..34ccd08 100644 --- a/drivers/common/cpt/cpt_ucode.h +++ b/drivers/common/cpt/cpt_ucode.h @@ -22,38 +22,6 @@ static uint8_t zuc_d[32] = { 0x5E, 0x26, 0x3C, 0x4D, 0x78, 0x9A, 0x47, 0xAC }; -static __rte_always_inline int -cpt_is_algo_supported(struct rte_crypto_sym_xform *xform) -{ - /* - * Microcode only supports the following combination. - * Encryption followed by authentication - * Authentication followed by decryption - */ - if (xform->next) { - if ((xform->type == RTE_CRYPTO_SYM_XFORM_AUTH) && - (xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER) && - (xform->next->cipher.op == RTE_CRYPTO_CIPHER_OP_ENCRYPT)) { - /* Unsupported as of now by microcode */ - CPT_LOG_DP_ERR("Unsupported combination"); - return -1; - } - if ((xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER) && - (xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH) && - (xform->cipher.op == RTE_CRYPTO_CIPHER_OP_DECRYPT)) { - /* For GMAC auth there is no cipher operation */ - if (xform->aead.algo != RTE_CRYPTO_AEAD_AES_GCM || - xform->next->auth.algo != - RTE_CRYPTO_AUTH_AES_GMAC) { - /* Unsupported as of now by microcode */ - CPT_LOG_DP_ERR("Unsupported combination"); - return -1; - } - } - } - return 0; -} - static __rte_always_inline void gen_key_snow3g(const uint8_t *ck, uint32_t *keyx) { @@ -3333,49 +3301,6 @@ compl_auth_verify(struct rte_crypto_op *op, op->status = RTE_CRYPTO_OP_STATUS_SUCCESS; } -static __rte_always_inline int -instance_session_cfg(struct rte_crypto_sym_xform *xform, void *sess) -{ - struct rte_crypto_sym_xform *chain; - - CPT_PMD_INIT_FUNC_TRACE(); - - if (cpt_is_algo_supported(xform)) - goto err; - - chain = xform; - while (chain) { - switch (chain->type) { - case RTE_CRYPTO_SYM_XFORM_AEAD: - if (fill_sess_aead(chain, sess)) - goto err; - break; - case RTE_CRYPTO_SYM_XFORM_CIPHER: - if (fill_sess_cipher(chain, sess)) - goto err; - break; - case RTE_CRYPTO_SYM_XFORM_AUTH: - if (chain->auth.algo == RTE_CRYPTO_AUTH_AES_GMAC) { - if (fill_sess_gmac(chain, sess)) - goto err; - } else { - if (fill_sess_auth(chain, sess)) - goto err; - } - break; - default: - CPT_LOG_DP_ERR("Invalid crypto xform type"); - break; - } - chain = chain->next; - } - - return 0; - -err: - return -1; -} - static __rte_always_inline void find_kasumif9_direction_and_length(uint8_t *src, uint32_t counter_num_bytes, diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index 7097499..60efd7c 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -212,91 +212,133 @@ otx_cpt_get_session_size(struct rte_cryptodev *dev __rte_unused) return cpt_get_session_size(); } -static void -otx_cpt_session_init(void *sym_sess, uint8_t driver_id) +static int +sym_xform_verify(struct rte_crypto_sym_xform *xform) { - struct rte_cryptodev_sym_session *sess = sym_sess; - struct cpt_sess_misc *cpt_sess = - (struct cpt_sess_misc *) get_sym_session_private_data(sess, driver_id); + if (xform->next) { + if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->next->cipher.op == RTE_CRYPTO_CIPHER_OP_ENCRYPT) + return -ENOTSUP; + + if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->cipher.op == RTE_CRYPTO_CIPHER_OP_DECRYPT && + xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH) + return -ENOTSUP; + + if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->cipher.algo == RTE_CRYPTO_CIPHER_3DES_CBC && + xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->next->auth.algo == RTE_CRYPTO_AUTH_SHA1) + return -ENOTSUP; + + if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->auth.algo == RTE_CRYPTO_AUTH_SHA1 && + xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER && + xform->next->cipher.algo == RTE_CRYPTO_CIPHER_3DES_CBC) + return -ENOTSUP; - CPT_PMD_INIT_FUNC_TRACE(); - cpt_sess->ctx_dma_addr = rte_mempool_virt2iova(cpt_sess) + - sizeof(struct cpt_sess_misc); + } else { + if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && + xform->auth.algo == RTE_CRYPTO_AUTH_NULL && + xform->auth.op == RTE_CRYPTO_AUTH_OP_VERIFY) + return -ENOTSUP; + } + return 0; } static int -otx_cpt_session_cfg(struct rte_cryptodev *dev, - struct rte_crypto_sym_xform *xform, - struct rte_cryptodev_sym_session *sess, - struct rte_mempool *mempool) +sym_session_configure(int driver_id, struct rte_crypto_sym_xform *xform, + struct rte_cryptodev_sym_session *sess, + struct rte_mempool *pool) { - struct rte_crypto_sym_xform *chain; - void *sess_private_data = NULL; - - CPT_PMD_INIT_FUNC_TRACE(); - - if (cpt_is_algo_supported(xform)) - goto err; + struct cpt_sess_misc *misc; + void *priv; + int ret; - if (unlikely(sess == NULL)) { - CPT_LOG_ERR("invalid session struct"); - return -EINVAL; - } + ret = sym_xform_verify(xform); + if (unlikely(ret)) + return ret; - if (rte_mempool_get(mempool, &sess_private_data)) { - CPT_LOG_ERR("Could not allocate sess_private_data"); + if (unlikely(rte_mempool_get(pool, &priv))) { + CPT_LOG_ERR("Could not allocate session private data"); return -ENOMEM; } - chain = xform; - while (chain) { - switch (chain->type) { + misc = priv; + + for ( ; xform != NULL; xform = xform->next) { + switch (xform->type) { case RTE_CRYPTO_SYM_XFORM_AEAD: - if (fill_sess_aead(chain, sess_private_data)) - goto err; + ret = fill_sess_aead(xform, misc); break; case RTE_CRYPTO_SYM_XFORM_CIPHER: - if (fill_sess_cipher(chain, sess_private_data)) - goto err; + ret = fill_sess_cipher(xform, misc); break; case RTE_CRYPTO_SYM_XFORM_AUTH: - if (chain->auth.algo == RTE_CRYPTO_AUTH_AES_GMAC) { - if (fill_sess_gmac(chain, sess_private_data)) - goto err; - } else { - if (fill_sess_auth(chain, sess_private_data)) - goto err; - } + if (xform->auth.algo == RTE_CRYPTO_AUTH_AES_GMAC) + ret = fill_sess_gmac(xform, misc); + else + ret = fill_sess_auth(xform, misc); break; default: - CPT_LOG_ERR("Invalid crypto xform type"); - break; + ret = -1; } - chain = chain->next; + + if (ret) + goto priv_put; } - set_sym_session_private_data(sess, dev->driver_id, sess_private_data); - otx_cpt_session_init(sess, dev->driver_id); + + set_sym_session_private_data(sess, driver_id, priv); + + misc->ctx_dma_addr = rte_mempool_virt2iova(misc) + + sizeof(struct cpt_sess_misc); + return 0; -err: - if (sess_private_data) - rte_mempool_put(mempool, sess_private_data); - return -EPERM; +priv_put: + if (priv) + rte_mempool_put(pool, priv); + return -ENOTSUP; } static void +sym_session_clear(int driver_id, struct rte_cryptodev_sym_session *sess) +{ + void *priv = get_sym_session_private_data(sess, driver_id); + struct rte_mempool *pool; + + if (priv == NULL) + return; + + memset(priv, 0, cpt_get_session_size()); + + pool = rte_mempool_from_obj(priv); + + set_sym_session_private_data(sess, driver_id, NULL); + + rte_mempool_put(pool, priv); +} + +static int +otx_cpt_session_cfg(struct rte_cryptodev *dev, + struct rte_crypto_sym_xform *xform, + struct rte_cryptodev_sym_session *sess, + struct rte_mempool *pool) +{ + CPT_PMD_INIT_FUNC_TRACE(); + + return sym_session_configure(dev->driver_id, xform, sess, pool); +} + + +static void otx_cpt_session_clear(struct rte_cryptodev *dev, struct rte_cryptodev_sym_session *sess) { - void *sess_priv = get_sym_session_private_data(sess, dev->driver_id); - CPT_PMD_INIT_FUNC_TRACE(); - if (sess_priv) { - memset(sess_priv, 0, otx_cpt_get_session_size(dev)); - struct rte_mempool *sess_mp = rte_mempool_from_obj(sess_priv); - set_sym_session_private_data(sess, dev->driver_id, NULL); - rte_mempool_put(sess_mp, sess_priv); - } + + return sym_session_clear(dev->driver_id, sess); } static unsigned int @@ -516,57 +558,36 @@ otx_cpt_enq_single_sym(struct cpt_instance *instance, static __rte_always_inline int __rte_hot otx_cpt_enq_single_sym_sessless(struct cpt_instance *instance, struct rte_crypto_op *op, - struct pending_queue *pqueue) + struct pending_queue *pend_q) { - struct cpt_sess_misc *sess; + const int driver_id = otx_cryptodev_driver_id; struct rte_crypto_sym_op *sym_op = op->sym; + struct rte_cryptodev_sym_session *sess; int ret; - void *sess_t = NULL; - void *sess_private_data_t = NULL; - - /* Create tmp session */ - if (rte_mempool_get(instance->sess_mp, (void **)&sess_t)) { - ret = -ENOMEM; - goto exit; - } + /* Create temporary session */ - if (rte_mempool_get(instance->sess_mp_priv, - (void **)&sess_private_data_t)) { - ret = -ENOMEM; - goto free_sess; - } - - sess = (struct cpt_sess_misc *)sess_private_data_t; - - sess->ctx_dma_addr = rte_mempool_virt2iova(sess) + - sizeof(struct cpt_sess_misc); - - ret = instance_session_cfg(sym_op->xform, (void *)sess); - if (unlikely(ret)) { - ret = -EINVAL; - goto free_sess_priv; - } + if (rte_mempool_get(instance->sess_mp, (void **)&sess)) + return -ENOMEM; - /* Save tmp session in op */ + ret = sym_session_configure(driver_id, sym_op->xform, sess, + instance->sess_mp_priv); + if (ret) + goto sess_put; - sym_op->session = (struct rte_cryptodev_sym_session *)sess_t; - set_sym_session_private_data(sym_op->session, otx_cryptodev_driver_id, - sess_private_data_t); + sym_op->session = sess; - /* Enqueue op with the tmp session set */ - ret = otx_cpt_enq_single_sym(instance, op, pqueue); + ret = otx_cpt_enq_single_sym(instance, op, pend_q); if (unlikely(ret)) - goto free_sess_priv; + goto priv_put; return 0; -free_sess_priv: - rte_mempool_put(instance->sess_mp_priv, sess_private_data_t); -free_sess: - rte_mempool_put(instance->sess_mp, sess_t); -exit: +priv_put: + sym_session_clear(driver_id, sess); +sess_put: + rte_mempool_put(instance->sess_mp, sess); return ret; }