From patchwork Mon Oct 16 07:04:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Dabilpuram X-Patchwork-Id: 132619 X-Patchwork-Delegate: jerinj@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 6BD9F4317A; Mon, 16 Oct 2023 09:05:15 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7AB9A402F2; Mon, 16 Oct 2023 09:05:12 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 8A62E402F0 for ; Mon, 16 Oct 2023 09:05:11 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39FMqfPC002130 for ; Mon, 16 Oct 2023 00:05:11 -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=6spqvGqIVvMQ/L06m65lXCgp1lVONhd1vd9pvMGa2vw=; b=SbP5Q710+akozYqmTxaTZ9rvitdrzSHPjfC8Jq3DWejv+shO0rLktgY9E/H12Xp0/xeY unmMq0FNaVSye2QoBGAqjWxq0BhYExEI8fZ+uWyk/d39CQnbVFBIx4+2Upw/9F/V9Gop 4XmNdi7Y3BDqEG+iDN0O89aZ/BlmntEZXUKVdz1YebcYPiOmwsGpTNrxiK0jEMO59UVL Jnbnanx1vWwYDoPcQSkcSEzgUcI+wLOMeJJhlQ0KrIdjLjBE6OWjr1PYtMozz1LDmcgA Q+NzcSYjBbOQNReFnzNyjfXH7NwahYdSW7qwkgpzhjbutzVZxgX7dtzKacI6CwV5RTva sg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3tqtgkma8n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Mon, 16 Oct 2023 00:05:10 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Mon, 16 Oct 2023 00:05:08 -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.48 via Frontend Transport; Mon, 16 Oct 2023 00:05:08 -0700 Received: from hyd1588t430.caveonetworks.com (unknown [10.29.52.204]) by maili.marvell.com (Postfix) with ESMTP id AA89C3F705B; Mon, 16 Oct 2023 00:05:06 -0700 (PDT) From: Nithin Dabilpuram To: Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao CC: , Subject: [PATCH 2/3] net/cnxk: add support to extract HW error for inline IPsec Date: Mon, 16 Oct 2023 12:34:36 +0530 Message-ID: <20231016070437.2295803-2-ndabilpuram@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231016070437.2295803-1-ndabilpuram@marvell.com> References: <20231016070437.2295803-1-ndabilpuram@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: 8td3AJdnTOLt-HV_6vwz-_b4MGSCaahX X-Proofpoint-ORIG-GUID: 8td3AJdnTOLt-HV_6vwz-_b4MGSCaahX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-15_09,2023-10-12_01,2023-05-22_02 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 PMD API support to extract HW error code from mbuf's processed by inline IPsec inbound. Signed-off-by: Nithin Dabilpuram --- drivers/net/cnxk/cn10k_ethdev_sec.c | 18 ++++++++++++++++++ drivers/net/cnxk/rte_pmd_cnxk.h | 17 +++++++++++++++++ drivers/net/cnxk/version.map | 6 +++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/drivers/net/cnxk/cn10k_ethdev_sec.c b/drivers/net/cnxk/cn10k_ethdev_sec.c index 9a831634da..b54795565d 100644 --- a/drivers/net/cnxk/cn10k_ethdev_sec.c +++ b/drivers/net/cnxk/cn10k_ethdev_sec.c @@ -1184,6 +1184,24 @@ rte_pmd_cnxk_hw_sa_write(void *device, struct rte_security_session *sess, return 0; } +void * +rte_pmd_cnxk_inl_ipsec_res(struct rte_mbuf *mbuf) +{ + const union nix_rx_parse_u *rx; + uint16_t desc_size; + uintptr_t wqe; + + if (!mbuf || !(mbuf->ol_flags & RTE_MBUF_F_RX_SEC_OFFLOAD)) + return NULL; + + wqe = (uintptr_t)(mbuf + 1); + rx = (const union nix_rx_parse_u *)(wqe + 8); + desc_size = (rx->desc_sizem1 + 1) * 16; + + /* cpt_res_s sits after SG list at 16B aligned address */ + return (void *)(wqe + 64 + desc_size); +} + static int cn10k_eth_sec_session_stats_get(void *device, struct rte_security_session *sess, struct rte_security_stats *stats) diff --git a/drivers/net/cnxk/rte_pmd_cnxk.h b/drivers/net/cnxk/rte_pmd_cnxk.h index d7eadd582d..7827c33ac9 100644 --- a/drivers/net/cnxk/rte_pmd_cnxk.h +++ b/drivers/net/cnxk/rte_pmd_cnxk.h @@ -96,4 +96,21 @@ int rte_pmd_cnxk_hw_sa_read(void *device, struct rte_security_session *sess, __rte_experimental int rte_pmd_cnxk_hw_sa_write(void *device, struct rte_security_session *sess, void *data, uint32_t len); + +/** + * Get pointer to CPT result info for inline inbound processed pkt. + * + * It is recommended to use this API only when mbuf indicates packet + * was processed with inline IPsec and there was a failure with the same i.e + * mbuf->ol_flags indicates (RTE_MBUF_F_RX_SEC_OFFLOAD | RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED). + * + * @param mbuf + * Pointer to packet that was just received and was processed with Inline IPsec. + * + * @return + * - Pointer to mbuf location where CPT result info is stored on success. + * - NULL on failure. + */ +__rte_experimental +void *rte_pmd_cnxk_inl_ipsec_res(struct rte_mbuf *mbuf); #endif /* _PMD_CNXK_H_ */ diff --git a/drivers/net/cnxk/version.map b/drivers/net/cnxk/version.map index 7ae6d80bf0..77f574bb16 100644 --- a/drivers/net/cnxk/version.map +++ b/drivers/net/cnxk/version.map @@ -3,10 +3,14 @@ DPDK_24 { }; EXPERIMENTAL { + global: + # added in 22.07 - global: rte_pmd_cnxk_hw_sa_read; rte_pmd_cnxk_hw_sa_write; + + # added in 23.11 + rte_pmd_cnxk_inl_ipsec_res; }; INTERNAL {