[10/10] net/cnxk: define CPT HW result format for PMD API

Message ID 20240517074448.3146611-10-ndabilpuram@marvell.com (mailing list archive)
State Changes Requested
Delegated to: Jerin Jacob
Headers
Series [01/10] common/cnxk: sync VF root weight with kernel |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-sample-apps-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS

Commit Message

Nithin Dabilpuram May 17, 2024, 7:44 a.m. UTC
  From: Srujana Challa <schalla@marvell.com>

Defines CPT HW result format for PMD API,
rte_pmd_cnxk_inl_ipsec_res().

Signed-off-by: Srujana Challa <schalla@marvell.com>
---
 drivers/net/cnxk/cn10k_ethdev_sec.c |  4 ++--
 drivers/net/cnxk/rte_pmd_cnxk.h     | 28 ++++++++++++++++++++++++++--
 2 files changed, 28 insertions(+), 4 deletions(-)
  

Comments

Jerin Jacob May 27, 2024, 5:27 p.m. UTC | #1
On Fri, May 17, 2024 at 1:16 PM Nithin Dabilpuram
<ndabilpuram@marvell.com> wrote:
>
> From: Srujana Challa <schalla@marvell.com>
>
> Defines CPT HW result format for PMD API,
> rte_pmd_cnxk_inl_ipsec_res().
>
> Signed-off-by: Srujana Challa <schalla@marvell.com>
> ---
>  drivers/net/cnxk/cn10k_ethdev_sec.c |  4 ++--
>  drivers/net/cnxk/rte_pmd_cnxk.h     | 28 ++++++++++++++++++++++++++--
>  2 files changed, 28 insertions(+), 4 deletions(-)
>

>
> +/** CPT HW result format */
> +union rte_pmd_cnxk_cpt_res_s {
> +       struct rte_pmd_cpt_cn10k_res_s {
> +               uint64_t compcode : 7;

Public API, Please add Doxygen for every symbol and check the
generated HTML files.


> +               uint64_t doneint : 1;
> +               uint64_t uc_compcode : 8;
> +               uint64_t rlen : 16;
> +               uint64_t spi : 32;
> +
> +               uint64_t esn;
> +       } cn10k;
> +
> +       struct rte_pmd_cpt_cn9k_res_s {
> +               uint64_t compcode : 8;
> +               uint64_t uc_compcode : 8;
> +               uint64_t doneint : 1;
> +               uint64_t reserved_17_63 : 47;
> +
> +               uint64_t reserved_64_127;
> +       } cn9k;
> +
> +       uint64_t u64[2];
> +};
> +

> 2.25.1
>
  

Patch

diff --git a/drivers/net/cnxk/cn10k_ethdev_sec.c b/drivers/net/cnxk/cn10k_ethdev_sec.c
index eed4c29218..b8b0da5ea9 100644
--- a/drivers/net/cnxk/cn10k_ethdev_sec.c
+++ b/drivers/net/cnxk/cn10k_ethdev_sec.c
@@ -1251,7 +1251,7 @@  rte_pmd_cnxk_hw_sa_write(void *device, struct rte_security_session *sess,
 	return 0;
 }
 
-void *
+union rte_pmd_cnxk_cpt_res_s *
 rte_pmd_cnxk_inl_ipsec_res(struct rte_mbuf *mbuf)
 {
 	const union nix_rx_parse_u *rx;
@@ -1265,7 +1265,7 @@  rte_pmd_cnxk_inl_ipsec_res(struct rte_mbuf *mbuf)
 	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 */
+	/* rte_pmd_cnxk_cpt_res_s sits after SG list at 16B aligned address */
 	return (void *)(wqe + 64 + desc_size);
 }
 
diff --git a/drivers/net/cnxk/rte_pmd_cnxk.h b/drivers/net/cnxk/rte_pmd_cnxk.h
index 43f2a7ed9b..67c8329abd 100644
--- a/drivers/net/cnxk/rte_pmd_cnxk.h
+++ b/drivers/net/cnxk/rte_pmd_cnxk.h
@@ -453,6 +453,30 @@  union rte_pmd_cnxk_ipsec_hw_sa {
 	struct rte_pmd_cnxk_ipsec_outb_sa outb;
 };
 
+/** CPT HW result format */
+union rte_pmd_cnxk_cpt_res_s {
+	struct rte_pmd_cpt_cn10k_res_s {
+		uint64_t compcode : 7;
+		uint64_t doneint : 1;
+		uint64_t uc_compcode : 8;
+		uint64_t rlen : 16;
+		uint64_t spi : 32;
+
+		uint64_t esn;
+	} cn10k;
+
+	struct rte_pmd_cpt_cn9k_res_s {
+		uint64_t compcode : 8;
+		uint64_t uc_compcode : 8;
+		uint64_t doneint : 1;
+		uint64_t reserved_17_63 : 47;
+
+		uint64_t reserved_64_127;
+	} cn9k;
+
+	uint64_t u64[2];
+};
+
 /**
  * Read HW SA context from session.
  *
@@ -501,9 +525,9 @@  int rte_pmd_cnxk_hw_sa_write(void *device, struct rte_security_session *sess,
  *   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.
+ *   - Pointer to mbuf location where `union rte_pmd_cnxk_cpt_res_s` is stored on success.
  *   - NULL on failure.
  */
 __rte_experimental
-void *rte_pmd_cnxk_inl_ipsec_res(struct rte_mbuf *mbuf);
+union rte_pmd_cnxk_cpt_res_s *rte_pmd_cnxk_inl_ipsec_res(struct rte_mbuf *mbuf);
 #endif /* _PMD_CNXK_H_ */