From patchwork Mon Sep 9 13:28:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anoob Joseph X-Patchwork-Id: 59020 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0C2E91EBE9; Mon, 9 Sep 2019 15:29:17 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id D1E161EBE9 for ; Mon, 9 Sep 2019 15:29:15 +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 x89DPoWE029314; Mon, 9 Sep 2019 06:29:15 -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=LixrhGPowZfqQ7Ug5PbNgdR+Yt6jA3RbxqvtgyKoW2g=; b=KbuScswozV1+vxkjC6LjbOlThad3CgZp4fdeslvynNx6Wne2+uY8JUSZPjjCw6EutB2A C9bHYY9TVsgXLLiPDrrJLjROtGR+zM3froEZ+xRSZ3Dr4PL2rRdBErZdjNG1uKy+jgRO wKoeuHYJkpAjUGosROuls+IHmSA1CriyGES8Yjd8EFQge3znuG9oHLVTFMxc3pzFIXPT HMV7PQxnL5HtC8cefkkFLAe/0esZbrpCKzDaZQS8AENSwGYNZ2KjdZSOOdlDCAcSjsvt N9Rjo9b6dFy+Fzvs2QH97cInW4Mu/Qmr/DQapEktUoaLJuKN1gu20u2fki5V/G7+8h39 sQ== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2uvc2jf0wm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 09 Sep 2019 06:29:15 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 9 Sep 2019 06:29:13 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Mon, 9 Sep 2019 06:29:13 -0700 Received: from ajoseph83.caveonetworks.com.com (unknown [10.29.45.56]) by maili.marvell.com (Postfix) with ESMTP id C9A5E3F7040; Mon, 9 Sep 2019 06:29:09 -0700 (PDT) From: Anoob Joseph To: Akhil Goyal , Pablo de Lara CC: Kanaka Durga Kotamarthy , Jerin Jacob , Narayana Prasad , Anoob Joseph , Fiona Trahe , Shally Verma , Sunila Sahu , Date: Mon, 9 Sep 2019 18:58:03 +0530 Message-ID: <1568035687-25492-5-git-send-email-anoobj@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1568035687-25492-1-git-send-email-anoobj@marvell.com> References: <1568035687-25492-1-git-send-email-anoobj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.70,1.0.8 definitions=2019-09-09_06:2019-09-09,2019-09-09 signatures=0 Subject: [dpdk-dev] [PATCH 4/8] common/cpt: add helper functions for asymmetric crypto 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: Kanaka Durga Kotamarthy Add helper functions to get meta len for asymmetric operations Signed-off-by: Anoob Joseph Signed-off-by: Kanaka Durga Kotamarthy Signed-off-by: Sunila Sahu --- drivers/common/cpt/cpt_pmd_ops_helper.c | 15 +++++++++++ drivers/common/cpt/cpt_pmd_ops_helper.h | 9 +++++++ drivers/common/cpt/rte_common_cpt_version.map | 8 ++++++ drivers/crypto/octeontx/otx_cryptodev_hw_access.c | 32 +++++++++++++++-------- 4 files changed, 53 insertions(+), 11 deletions(-) diff --git a/drivers/common/cpt/cpt_pmd_ops_helper.c b/drivers/common/cpt/cpt_pmd_ops_helper.c index 1c18180..09b762f 100644 --- a/drivers/common/cpt/cpt_pmd_ops_helper.c +++ b/drivers/common/cpt/cpt_pmd_ops_helper.c @@ -11,6 +11,8 @@ #define CPT_MAX_IV_LEN 16 #define CPT_OFFSET_CONTROL_BYTES 8 +#define CPT_MAX_ASYM_OP_NUM_PARAMS 5 +#define CPT_MAX_ASYM_OP_MOD_LEN 1024 int32_t cpt_pmd_ops_helper_get_mlen_direct_mode(void) @@ -39,3 +41,16 @@ cpt_pmd_ops_helper_get_mlen_sg_mode(void) len += 2 * sizeof(cpt_res_s_t); return len; } + +int +cpt_pmd_ops_helper_asym_get_mlen(void) +{ + uint32_t len; + + /* Get meta len for linear buffer (direct) mode */ + len = cpt_pmd_ops_helper_get_mlen_direct_mode(); + + /* Get meta len for asymmetric operations */ + len += CPT_MAX_ASYM_OP_NUM_PARAMS * CPT_MAX_ASYM_OP_MOD_LEN; + return len; +} diff --git a/drivers/common/cpt/cpt_pmd_ops_helper.h b/drivers/common/cpt/cpt_pmd_ops_helper.h index dd32f9a..24c3559 100644 --- a/drivers/common/cpt/cpt_pmd_ops_helper.h +++ b/drivers/common/cpt/cpt_pmd_ops_helper.h @@ -31,4 +31,13 @@ cpt_pmd_ops_helper_get_mlen_direct_mode(void); */ int cpt_pmd_ops_helper_get_mlen_sg_mode(void); + +/* + * Get size of meta buffer to be allocated for asymmetric crypto operations + * + * @return + * - length + */ +int +cpt_pmd_ops_helper_asym_get_mlen(void); #endif /* _CPT_PMD_OPS_HELPER_H_ */ diff --git a/drivers/common/cpt/rte_common_cpt_version.map b/drivers/common/cpt/rte_common_cpt_version.map index dec614f..382ec4b 100644 --- a/drivers/common/cpt/rte_common_cpt_version.map +++ b/drivers/common/cpt/rte_common_cpt_version.map @@ -4,3 +4,11 @@ DPDK_18.11 { cpt_pmd_ops_helper_get_mlen_direct_mode; cpt_pmd_ops_helper_get_mlen_sg_mode; }; + +DPDK_19.11 { + global: + + cpt_pmd_ops_helper_asym_get_mlen; + + local: *; +}; diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c index ad64bf4..0543494 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c +++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c @@ -412,24 +412,34 @@ otx_cpt_metabuf_mempool_create(const struct rte_cryptodev *dev, int nb_elements) { char mempool_name[RTE_MEMPOOL_NAMESIZE]; - int sg_mlen, lb_mlen, max_mlen, ret; struct cpt_qp_meta_info *meta_info; struct rte_mempool *pool; + int max_mlen = 0; + int sg_mlen = 0; + int lb_mlen = 0; + int ret; - /* Get meta len for scatter gather mode */ - sg_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode(); + if (dev->feature_flags & RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO) { - /* Extra 32B saved for future considerations */ - sg_mlen += 4 * sizeof(uint64_t); + /* Get meta len for scatter gather mode */ + sg_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode(); - /* Get meta len for linear buffer (direct) mode */ - lb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode(); + /* Extra 32B saved for future considerations */ + sg_mlen += 4 * sizeof(uint64_t); - /* Extra 32B saved for future considerations */ - lb_mlen += 4 * sizeof(uint64_t); + /* Get meta len for linear buffer (direct) mode */ + lb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode(); - /* Check max requirement for meta buffer */ - max_mlen = RTE_MAX(lb_mlen, sg_mlen); + /* Extra 32B saved for future considerations */ + lb_mlen += 4 * sizeof(uint64_t); + + /* Check max requirement for meta buffer */ + max_mlen = RTE_MAX(lb_mlen, sg_mlen); + } else if (dev->feature_flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) { + + /* Get meta len for asymmetric operations */ + max_mlen = cpt_pmd_ops_helper_asym_get_mlen(); + } /* Allocate mempool */