From: Srujana Challa <scha...@marvell.com> Defines CPT HW result format for PMD API, rte_pmd_cnxk_inl_ipsec_res().
Signed-off-by: Srujana Challa <scha...@marvell.com> --- drivers/net/cnxk/cn10k_ethdev_sec.c | 4 +-- drivers/net/cnxk/rte_pmd_cnxk.h | 40 +++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) 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..88030046db 100644 --- a/drivers/net/cnxk/rte_pmd_cnxk.h +++ b/drivers/net/cnxk/rte_pmd_cnxk.h @@ -453,6 +453,42 @@ 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 { + /** CN10K CPT result */ + struct rte_pmd_cpt_cn10k_res_s { + /** Completion code */ + uint64_t compcode : 7; + /** Done interrupt */ + uint64_t doneint : 1; + /** Microcode completion code */ + uint64_t uc_compcode : 8; + /** Result length */ + uint64_t rlen : 16; + /** SPI */ + uint64_t spi : 32; + + /** Extended sequence number */ + uint64_t esn; + } cn10k; + + /** CN9K CPT result */ + struct rte_pmd_cpt_cn9k_res_s { + /** Completion code */ + uint64_t compcode : 8; + /** Microcode completion code */ + uint64_t uc_compcode : 8; + /** Done interrupt */ + uint64_t doneint : 1; + uint64_t reserved_17_63 : 47; + + uint64_t reserved_64_127; + } cn9k; + + /** CPT RES */ + uint64_t u64[2]; +}; + /** * Read HW SA context from session. * @@ -501,9 +537,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_ */ -- 2.25.1