netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tanmay Jagdale <tanmay@marvell.com>
To: Kalesh Anakkur Purayil <kalesh-anakkur.purayil@broadcom.com>
Cc: <brezillon@kernel.org>, <schalla@marvell.com>,
	<herbert@gondor.apana.org.au>, <davem@davemloft.net>,
	<sgoutham@marvell.com>, <lcherian@marvell.com>,
	<gakula@marvell.com>, <jerinj@marvell.com>, <hkelam@marvell.com>,
	<sbhatta@marvell.com>, <andrew+netdev@lunn.ch>,
	<edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<bbhushan2@marvell.com>, <bhelgaas@google.com>,
	<pstanner@redhat.com>, <gregkh@linuxfoundation.org>,
	<peterz@infradead.org>, <linux@treblig.org>,
	<linux-crypto@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<netdev@vger.kernel.org>, <rkannoth@marvell.com>,
	<sumang@marvell.com>, <gcherian@marvell.com>,
	Kiran Kumar K <kirankumark@marvell.com>,
	"Nithin Dabilpuram" <ndabilpuram@marvell.com>
Subject: Re: [net-next PATCH v1 07/15] octeontx2-af: Add support for SPI to SA index translation
Date: Tue, 13 May 2025 10:38:17 +0530	[thread overview]
Message-ID: <aCLTwTbjFoUkqpK0@optiplex> (raw)
In-Reply-To: <CAH-L+nOBsC7vYvXtd3f_=n60vW00pEJ12R9xABLnv-Bx7+AkpA@mail.gmail.com>

Hi Kalesh,

On 2025-05-03 at 21:42:01, Kalesh Anakkur Purayil (kalesh-anakkur.purayil@broadcom.com) wrote:
> On Fri, May 2, 2025 at 6:56 PM Tanmay Jagdale <tanmay@marvell.com> wrote:
> >
> > From: Kiran Kumar K <kirankumark@marvell.com>
> >
> > In case of IPsec, the inbound SPI can be random. HW supports mapping
> > SPI to an arbitrary SA index. SPI to SA index is done using a lookup
> > in NPC cam entry with key as SPI, MATCH_ID, LFID. Adding Mbox API
> > changes to configure the match table.
> >
> > Signed-off-by: Kiran Kumar K <kirankumark@marvell.com>
> > Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
> > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
> > Signed-off-by: Tanmay Jagdale <tanmay@marvell.com>
> > ---
> >  .../ethernet/marvell/octeontx2/af/Makefile    |   2 +-
> >  .../net/ethernet/marvell/octeontx2/af/mbox.h  |  27 +++
> >  .../net/ethernet/marvell/octeontx2/af/rvu.c   |   4 +
> >  .../net/ethernet/marvell/octeontx2/af/rvu.h   |  13 ++
> >  .../ethernet/marvell/octeontx2/af/rvu_nix.c   |   6 +
> >  .../marvell/octeontx2/af/rvu_nix_spi.c        | 220 ++++++++++++++++++
> >  .../ethernet/marvell/octeontx2/af/rvu_reg.h   |   4 +
> >  7 files changed, 275 insertions(+), 1 deletion(-)
> >  create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix_spi.c
> >
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/Makefile b/drivers/net/ethernet/marvell/octeontx2/af/Makefile
> > index ccea37847df8..49318017f35f 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/Makefile
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/Makefile
> > @@ -8,7 +8,7 @@ obj-$(CONFIG_OCTEONTX2_MBOX) += rvu_mbox.o
> >  obj-$(CONFIG_OCTEONTX2_AF) += rvu_af.o
> >
> >  rvu_mbox-y := mbox.o rvu_trace.o
> > -rvu_af-y := cgx.o rvu.o rvu_cgx.o rvu_npa.o rvu_nix.o \
> > +rvu_af-y := cgx.o rvu.o rvu_cgx.o rvu_npa.o rvu_nix.o rvu_nix_spi.o \
> >                   rvu_reg.o rvu_npc.o rvu_debugfs.o ptp.o rvu_npc_fs.o \
> >                   rvu_cpt.o rvu_devlink.o rpm.o rvu_cn10k.o rvu_switch.o \
> >                   rvu_sdp.o rvu_npc_hash.o mcs.o mcs_rvu_if.o mcs_cnf10kb.o \
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mbox.h b/drivers/net/ethernet/marvell/octeontx2/af/mbox.h
> > index 715efcc04c9e..5cebf10a15a7 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/mbox.h
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/mbox.h
> > @@ -326,6 +326,10 @@ M(NIX_READ_INLINE_IPSEC_CFG, 0x8023, nix_read_inline_ipsec_cfg,            \
> >  M(NIX_LF_INLINE_RQ_CFG, 0x8024, nix_lf_inline_rq_cfg,          \
> >                                 nix_rq_cpt_field_mask_cfg_req,  \
> >                                 msg_rsp)        \
> > +M(NIX_SPI_TO_SA_ADD,    0x8026, nix_spi_to_sa_add, nix_spi_to_sa_add_req,   \
> > +                               nix_spi_to_sa_add_rsp)                      \
> > +M(NIX_SPI_TO_SA_DELETE, 0x8027, nix_spi_to_sa_delete, nix_spi_to_sa_delete_req,   \
> > +                               msg_rsp)                                        \
> >  M(NIX_MCAST_GRP_CREATE,        0x802b, nix_mcast_grp_create, nix_mcast_grp_create_req, \
> >                                 nix_mcast_grp_create_rsp)                       \
> >  M(NIX_MCAST_GRP_DESTROY, 0x802c, nix_mcast_grp_destroy, nix_mcast_grp_destroy_req,     \
> > @@ -880,6 +884,29 @@ enum nix_rx_vtag0_type {
> >         NIX_AF_LFX_RX_VTAG_TYPE7,
> >  };
> >
> > +/* For SPI to SA index add */
> > +struct nix_spi_to_sa_add_req {
> > +       struct mbox_msghdr hdr;
> > +       u32 sa_index;
> > +       u32 spi_index;
> > +       u16 match_id;
> > +       bool valid;
> > +};
> > +
> > +struct nix_spi_to_sa_add_rsp {
> > +       struct mbox_msghdr hdr;
> > +       u16 hash_index;
> > +       u8 way;
> > +       u8 is_duplicate;
> > +};
> > +
> > +/* To free SPI to SA index */
> > +struct nix_spi_to_sa_delete_req {
> > +       struct mbox_msghdr hdr;
> > +       u16 hash_index;
> > +       u8 way;
> > +};
> > +
> >  /* For NIX LF context alloc and init */
> >  struct nix_lf_alloc_req {
> >         struct mbox_msghdr hdr;
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
> > index ea346e59835b..2b7c09bb24e1 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
> > @@ -90,6 +90,9 @@ static void rvu_setup_hw_capabilities(struct rvu *rvu)
> >
> >         if (is_rvu_npc_hash_extract_en(rvu))
> >                 hw->cap.npc_hash_extract = true;
> > +
> > +       if (is_rvu_nix_spi_to_sa_en(rvu))
> > +               hw->cap.spi_to_sas = 0x2000;
> >  }
> >
> >  /* Poll a RVU block's register 'offset', for a 'zero'
> > @@ -2723,6 +2726,7 @@ static void __rvu_flr_handler(struct rvu *rvu, u16 pcifunc)
> >         rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NPA);
> >         rvu_reset_lmt_map_tbl(rvu, pcifunc);
> >         rvu_detach_rsrcs(rvu, NULL, pcifunc);
> > +
> >         /* In scenarios where PF/VF drivers detach NIXLF without freeing MCAM
> >          * entries, check and free the MCAM entries explicitly to avoid leak.
> >          * Since LF is detached use LF number as -1.
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > index 71407f6318ec..42fc3e762bc0 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > @@ -395,6 +395,7 @@ struct hw_cap {
> >         u16     nix_txsch_per_cgx_lmac; /* Max Q's transmitting to CGX LMAC */
> >         u16     nix_txsch_per_lbk_lmac; /* Max Q's transmitting to LBK LMAC */
> >         u16     nix_txsch_per_sdp_lmac; /* Max Q's transmitting to SDP LMAC */
> > +       u16     spi_to_sas; /* Num of SPI to SA index */
> >         bool    nix_fixed_txschq_mapping; /* Schq mapping fixed or flexible */
> >         bool    nix_shaping;             /* Is shaping and coloring supported */
> >         bool    nix_shaper_toggle_wait; /* Shaping toggle needs poll/wait */
> > @@ -800,6 +801,17 @@ static inline bool is_rvu_npc_hash_extract_en(struct rvu *rvu)
> >         return true;
> >  }
> >
> > +static inline bool is_rvu_nix_spi_to_sa_en(struct rvu *rvu)
> > +{
> > +       u64 nix_const2;
> > +
> > +       nix_const2 = rvu_read64(rvu, BLKADDR_NIX0, NIX_AF_CONST2);
> > +       if ((nix_const2 >> 48) & 0xffff)
> > +               return true;
> > +
> > +       return false;
> > +}
> > +
> >  static inline u16 rvu_nix_chan_cgx(struct rvu *rvu, u8 cgxid,
> >                                    u8 lmacid, u8 chan)
> >  {
> > @@ -992,6 +1004,7 @@ int nix_get_struct_ptrs(struct rvu *rvu, u16 pcifunc,
> >                         struct nix_hw **nix_hw, int *blkaddr);
> >  int rvu_nix_setup_ratelimit_aggr(struct rvu *rvu, u16 pcifunc,
> >                                  u16 rq_idx, u16 match_id);
> > +int rvu_nix_free_spi_to_sa_table(struct rvu *rvu, uint16_t pcifunc);
> >  int nix_aq_context_read(struct rvu *rvu, struct nix_hw *nix_hw,
> >                         struct nix_cn10k_aq_enq_req *aq_req,
> >                         struct nix_cn10k_aq_enq_rsp *aq_rsp,
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
> > index b15fd331facf..68525bfc8e6d 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
> > @@ -1751,6 +1751,9 @@ int rvu_mbox_handler_nix_lf_free(struct rvu *rvu, struct nix_lf_free_req *req,
> >         else
> >                 rvu_npc_free_mcam_entries(rvu, pcifunc, nixlf);
> >
> > +       /* Reset SPI to SA index table */
> > +       rvu_nix_free_spi_to_sa_table(rvu, pcifunc);
> > +
> >         /* Free any tx vtag def entries used by this NIX LF */
> >         if (!(req->flags & NIX_LF_DONT_FREE_TX_VTAG))
> >                 nix_free_tx_vtag_entries(rvu, pcifunc);
> > @@ -5312,6 +5315,9 @@ void rvu_nix_lf_teardown(struct rvu *rvu, u16 pcifunc, int blkaddr, int nixlf)
> >         nix_rx_sync(rvu, blkaddr);
> >         nix_txschq_free(rvu, pcifunc);
> >
> > +       /* Reset SPI to SA index table */
> > +       rvu_nix_free_spi_to_sa_table(rvu, pcifunc);
> > +
> >         clear_bit(NIXLF_INITIALIZED, &pfvf->flags);
> >
> >         if (is_pf_cgxmapped(rvu, pf) && rvu->rep_mode)
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix_spi.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix_spi.c
> > new file mode 100644
> > index 000000000000..b8acc23a47bc
> > --- /dev/null
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix_spi.c
> > @@ -0,0 +1,220 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/* Marvell RVU Admin Function driver
> > + *
> > + * Copyright (C) 2022 Marvell.
> Copyright year 2025?
ACK.

> > + *
> > + */
> > +
> > +#include "rvu.h"
> > +
> > +static bool nix_spi_to_sa_index_check_duplicate(struct rvu *rvu,
> > +                                               struct nix_spi_to_sa_add_req *req,
> > +                                               struct nix_spi_to_sa_add_rsp *rsp,
> > +                                               int blkaddr, int16_t index, u8 way,
> > +                                               bool *is_valid, int lfidx)
> > +{
> > +       u32 spi_index;
> > +       u16 match_id;
> > +       bool valid;
> > +       u8 lfid;
> > +       u64 wkey;
> Maintain RCT order while declaring variables
ACK.

> > +
> > +       wkey = rvu_read64(rvu, blkaddr, NIX_AF_SPI_TO_SA_KEYX_WAYX(index, way));
> > +       spi_index = (wkey & 0xFFFFFFFF);
> > +       match_id = ((wkey >> 32) & 0xFFFF);
> > +       lfid = ((wkey >> 48) & 0x7f);
> > +       valid = ((wkey >> 55) & 0x1);
> > +
> > +       *is_valid = valid;
> > +       if (!valid)
> > +               return 0;
> > +
> > +       if (req->spi_index == spi_index && req->match_id == match_id &&
> > +           lfidx == lfid) {
> > +               rsp->hash_index = index;
> > +               rsp->way = way;
> > +               rsp->is_duplicate = true;
> > +               return 1;
> > +       }
> > +       return 0;
> > +}
> > +
> > +static void  nix_spi_to_sa_index_table_update(struct rvu *rvu,
> > +                                             struct nix_spi_to_sa_add_req *req,
> > +                                             struct nix_spi_to_sa_add_rsp *rsp,
> > +                                             int blkaddr, int16_t index, u8 way,
> > +                                             int lfidx)
> > +{
> > +       u64 wvalue;
> > +       u64 wkey;
> > +
> > +       wkey = (req->spi_index | ((u64)req->match_id << 32) |
> > +               (((u64)lfidx) << 48) | ((u64)req->valid << 55));
> > +       rvu_write64(rvu, blkaddr, NIX_AF_SPI_TO_SA_KEYX_WAYX(index, way),
> > +                   wkey);
> > +       wvalue = (req->sa_index & 0xFFFFFFFF);
> > +       rvu_write64(rvu, blkaddr, NIX_AF_SPI_TO_SA_VALUEX_WAYX(index, way),
> > +                   wvalue);
> > +       rsp->hash_index = index;
> > +       rsp->way = way;
> > +       rsp->is_duplicate = false;
> > +}
> > +
> > +int rvu_mbox_handler_nix_spi_to_sa_delete(struct rvu *rvu,
> > +                                         struct nix_spi_to_sa_delete_req *req,
> > +                                         struct msg_rsp *rsp)
> > +{
> > +       struct rvu_hwinfo *hw = rvu->hw;
> > +       u16 pcifunc = req->hdr.pcifunc;
> > +       int lfidx, lfid;
> > +       int blkaddr;
> > +       u64 wvalue;
> > +       u64 wkey;
> > +       int ret = 0;
> > +
> > +       if (!hw->cap.spi_to_sas)
> > +               return NIX_AF_ERR_PARAM;
> > +
> > +       if (!is_nixlf_attached(rvu, pcifunc)) {
> > +               ret = NIX_AF_ERR_AF_LF_INVALID;
> > +               goto exit;
> there is no need of label here, you can return directly
> > +       }
> > +
> > +       blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc);
> > +       lfidx = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0);
> > +       if (lfidx < 0) {
> > +               ret = NIX_AF_ERR_AF_LF_INVALID;
> > +               goto exit;
> there is no need of label here, you can return directly
Okay, I will get rid of the unnecessary gotos.

> > +       }
> > +
> > +       mutex_lock(&rvu->rsrc_lock);
> > +
> > +       wkey = rvu_read64(rvu, blkaddr,
> > +                         NIX_AF_SPI_TO_SA_KEYX_WAYX(req->hash_index, req->way));
> > +       lfid = ((wkey >> 48) & 0x7f);
> It would be nice if you use macros instead of these hard coded magic
> numbers. Same comment applies to whole patch series.
ACK. I will fix this in the entire patch series.

> > +       if (lfid != lfidx) {
> > +               ret = NIX_AF_ERR_AF_LF_INVALID;
> > +               goto unlock;
> > +       }
> > +
> > +       wkey = 0;
> > +       rvu_write64(rvu, blkaddr,
> > +                   NIX_AF_SPI_TO_SA_KEYX_WAYX(req->hash_index, req->way), wkey);
> > +       wvalue = 0;
> > +       rvu_write64(rvu, blkaddr,
> > +                   NIX_AF_SPI_TO_SA_VALUEX_WAYX(req->hash_index, req->way), wvalue);
> > +unlock:
> > +       mutex_unlock(&rvu->rsrc_lock);
> > +exit:
> > +       return ret;
> > +}
> > +
> > +int rvu_mbox_handler_nix_spi_to_sa_add(struct rvu *rvu,
> > +                                      struct nix_spi_to_sa_add_req *req,
> > +                                      struct nix_spi_to_sa_add_rsp *rsp)
> > +{
> > +       u16 way0_index, way1_index, way2_index, way3_index;
> > +       struct rvu_hwinfo *hw = rvu->hw;
> > +       u16 pcifunc = req->hdr.pcifunc;
> > +       bool way0, way1, way2, way3;
> > +       int ret = 0;
> > +       int blkaddr;
> > +       int lfidx;
> > +       u64 value;
> > +       u64 key;
> > +
> > +       if (!hw->cap.spi_to_sas)
> > +               return NIX_AF_ERR_PARAM;
> > +
> > +       if (!is_nixlf_attached(rvu, pcifunc)) {
> > +               ret = NIX_AF_ERR_AF_LF_INVALID;
> > +               goto exit;
> there is no need of label here, you can return directly
> > +       }
> > +
> > +       blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc);
> > +       lfidx = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0);
> > +       if (lfidx < 0) {
> > +               ret = NIX_AF_ERR_AF_LF_INVALID;
> > +               goto exit;
> there is no need of label here, you can return directly
ACK.

> > +       }
> > +
> > +       mutex_lock(&rvu->rsrc_lock);
> > +
> > +       key = (((u64)lfidx << 48) | ((u64)req->match_id << 32) | req->spi_index);
> > +       rvu_write64(rvu, blkaddr, NIX_AF_SPI_TO_SA_HASH_KEY, key);
> > +       value = rvu_read64(rvu, blkaddr, NIX_AF_SPI_TO_SA_HASH_VALUE);
> > +       way0_index = (value & 0x7ff);
> > +       way1_index = ((value >> 16) & 0x7ff);
> > +       way2_index = ((value >> 32) & 0x7ff);
> > +       way3_index = ((value >> 48) & 0x7ff);
> > +
> > +       /* Check for duplicate entry */
> > +       if (nix_spi_to_sa_index_check_duplicate(rvu, req, rsp, blkaddr,
> > +                                               way0_index, 0, &way0, lfidx) ||
> > +           nix_spi_to_sa_index_check_duplicate(rvu, req, rsp, blkaddr,
> > +                                               way1_index, 1, &way1, lfidx) ||
> > +           nix_spi_to_sa_index_check_duplicate(rvu, req, rsp, blkaddr,
> > +                                               way2_index, 2, &way2, lfidx) ||
> > +           nix_spi_to_sa_index_check_duplicate(rvu, req, rsp, blkaddr,
> > +                                               way3_index, 3, &way3, lfidx)) {
> > +               ret = 0;
> > +               goto unlock;
> > +       }
> > +
> > +       /* If not present, update first available way with index */
> > +       if (!way0)
> > +               nix_spi_to_sa_index_table_update(rvu, req, rsp, blkaddr,
> > +                                                way0_index, 0, lfidx);
> > +       else if (!way1)
> > +               nix_spi_to_sa_index_table_update(rvu, req, rsp, blkaddr,
> > +                                                way1_index, 1, lfidx);
> > +       else if (!way2)
> > +               nix_spi_to_sa_index_table_update(rvu, req, rsp, blkaddr,
> > +                                                way2_index, 2, lfidx);
> > +       else if (!way3)
> > +               nix_spi_to_sa_index_table_update(rvu, req, rsp, blkaddr,
> > +                                                way3_index, 3, lfidx);
> > +unlock:
> > +       mutex_unlock(&rvu->rsrc_lock);
> > +exit:
> > +       return ret;
> > +}
> > +
> > +int rvu_nix_free_spi_to_sa_table(struct rvu *rvu, uint16_t pcifunc)
> > +{
> > +       struct rvu_hwinfo *hw = rvu->hw;
> > +       int lfidx, lfid;
> > +       int index, way;
> > +       u64 value, key;
> Maintain RCT order here
ACK.

> > +       int blkaddr;
> > +
> > +       if (!hw->cap.spi_to_sas)
> > +               return 0;
> > +
> > +       blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc);
> > +       lfidx = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0);
> > +       if (lfidx < 0)
> > +               return NIX_AF_ERR_AF_LF_INVALID;
> > +
> > +       mutex_lock(&rvu->rsrc_lock);
> > +       for (index = 0; index < hw->cap.spi_to_sas / 4; index++) {
> > +               for (way = 0; way < 4; way++) {
> > +                       key = rvu_read64(rvu, blkaddr,
> > +                                        NIX_AF_SPI_TO_SA_KEYX_WAYX(index, way));
> > +                       lfid = ((key >> 48) & 0x7f);
> > +                       if (lfid == lfidx) {
> > +                               key = 0;
> > +                               rvu_write64(rvu, blkaddr,
> > +                                           NIX_AF_SPI_TO_SA_KEYX_WAYX(index, way),
> > +                                           key);
> > +                               value = 0;
> > +                               rvu_write64(rvu, blkaddr,
> > +                                           NIX_AF_SPI_TO_SA_VALUEX_WAYX(index, way),
> > +                                           value);
> > +                       }
> > +               }
> > +       }
> > +       mutex_unlock(&rvu->rsrc_lock);
> > +
> > +       return 0;
> > +}
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h b/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h
> > index e5e005d5d71e..b64547fe4811 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h
> > @@ -396,6 +396,10 @@
> >  #define NIX_AF_RX_CHANX_CFG(a)                  (0x1A30 | (a) << 15)
> >  #define NIX_AF_CINT_TIMERX(a)                   (0x1A40 | (a) << 18)
> >  #define NIX_AF_LSO_FORMATX_FIELDX(a, b)         (0x1B00 | (a) << 16 | (b) << 3)
> > +#define NIX_AF_SPI_TO_SA_KEYX_WAYX(a, b)        (0x1C00 | (a) << 16 | (b) << 3)
> > +#define NIX_AF_SPI_TO_SA_VALUEX_WAYX(a, b)      (0x1C40 | (a) << 16 | (b) << 3)
> > +#define NIX_AF_SPI_TO_SA_HASH_KEY               (0x1C90)
> > +#define NIX_AF_SPI_TO_SA_HASH_VALUE             (0x1CA0)
> >  #define NIX_AF_LFX_CFG(a)              (0x4000 | (a) << 17)
> >  #define NIX_AF_LFX_SQS_CFG(a)          (0x4020 | (a) << 17)
> >  #define NIX_AF_LFX_TX_CFG2(a)          (0x4028 | (a) << 17)
> > --
> > 2.43.0
> >
> >
> 
> 
> -- 
> Regards,
> Kalesh AP
Thanks for the review.

Regards,
Tanmay



  reply	other threads:[~2025-05-13  5:08 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-02 13:19 [net-next PATCH v1 00/15] Enable Inbound IPsec offload on Marvell CN10K SoC Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 01/15] crypto: octeontx2: Share engine group info with AF driver Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 02/15] octeontx2-af: Configure crypto hardware for inline ipsec Tanmay Jagdale
2025-05-06 20:24   ` Simon Horman
2025-05-08 10:56     ` Bharat Bhushan
2025-05-02 13:19 ` [net-next PATCH v1 03/15] octeontx2-af: Setup Large Memory Transaction for crypto Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 04/15] octeontx2-af: Handle inbound inline ipsec config in AF Tanmay Jagdale
2025-05-07  9:19   ` Simon Horman
2025-05-07  9:28     ` Simon Horman
2025-05-13  6:08       ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 05/15] crypto: octeontx2: Remove inbound inline ipsec config Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 06/15] octeontx2-af: Add support for CPT second pass Tanmay Jagdale
2025-05-07  7:58   ` kernel test robot
2025-05-07 12:36   ` Simon Horman
2025-05-13  5:18     ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 07/15] octeontx2-af: Add support for SPI to SA index translation Tanmay Jagdale
2025-05-03 16:12   ` Kalesh Anakkur Purayil
2025-05-13  5:08     ` Tanmay Jagdale [this message]
2025-05-07 12:45   ` Simon Horman
2025-05-13  6:12     ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 08/15] octeontx2-af: Add mbox to alloc/free BPIDs Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 09/15] octeontx2-pf: ipsec: Allocate Ingress SA table Tanmay Jagdale
2025-05-07 12:56   ` Simon Horman
2025-05-22  9:21     ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 10/15] octeontx2-pf: ipsec: Setup NIX HW resources for inbound flows Tanmay Jagdale
2025-05-07 10:03   ` kernel test robot
2025-05-07 13:46   ` Simon Horman
2025-05-22  9:56     ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 11/15] octeontx2-pf: ipsec: Handle NPA threshold interrupt Tanmay Jagdale
2025-05-07 12:04   ` kernel test robot
2025-05-07 14:20   ` Simon Horman
2025-05-02 13:19 ` [net-next PATCH v1 12/15] octeontx2-pf: ipsec: Initialize ingress IPsec Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 13/15] octeontx2-pf: ipsec: Manage NPC rules and SPI-to-SA table entries Tanmay Jagdale
2025-05-07 15:58   ` Simon Horman
2025-05-22 10:01     ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 14/15] octeontx2-pf: ipsec: Process CPT metapackets Tanmay Jagdale
2025-05-07 16:30   ` Simon Horman
2025-05-23  4:08     ` Tanmay Jagdale
2025-05-02 13:19 ` [net-next PATCH v1 15/15] octeontx2-pf: ipsec: Add XFRM state and policy hooks for inbound flows Tanmay Jagdale
2025-05-07  6:42   ` kernel test robot
2025-05-07 18:31   ` Simon Horman
2025-05-05 17:52 ` [net-next PATCH v1 00/15] Enable Inbound IPsec offload on Marvell CN10K SoC Leon Romanovsky
2025-05-13  5:11   ` Tanmay Jagdale

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aCLTwTbjFoUkqpK0@optiplex \
    --to=tanmay@marvell.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=bbhushan2@marvell.com \
    --cc=bhelgaas@google.com \
    --cc=brezillon@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gakula@marvell.com \
    --cc=gcherian@marvell.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=hkelam@marvell.com \
    --cc=jerinj@marvell.com \
    --cc=kalesh-anakkur.purayil@broadcom.com \
    --cc=kirankumark@marvell.com \
    --cc=kuba@kernel.org \
    --cc=lcherian@marvell.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@treblig.org \
    --cc=ndabilpuram@marvell.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pstanner@redhat.com \
    --cc=rkannoth@marvell.com \
    --cc=sbhatta@marvell.com \
    --cc=schalla@marvell.com \
    --cc=sgoutham@marvell.com \
    --cc=sumang@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).