On Fri, Jul 30, 2021 at 9:40 PM Harman Kalra <hka...@marvell.com> wrote:
>
> In case of 98xx, 2 NIX blocks and 4 LBK blocks are present. Moreover
> AF VFs are alternatively attached to NIX0 and NIX1 to ensure load
> balancing. To support loopback functionality between pairs NIX0/NIX1
> are attached to LBK1/LBK2 for transmission/reception respectively.
> But in this default configuration NIX blocks cannot receive the
> packets they sent from the same LBK, which is an important requirement
> as some ODP applications only uses one AF VF for loopback functionality.
> To support this scenario, NIX0 can use LBK0 (NIX1 - LBK3) by setting a
> loop flag while making LF alloc mailbox request.
>
> Signed-off-by: Harman Kalra <hka...@marvell.com>

Changed the subject to : common/cnxk: support loop mode for cn98xx

Series Acked-by: Jerin Jacob <jer...@marvell.com>
Series applied to dpdk-next-net-mrvl/for-next-net. Thanks.

> ---
>  drivers/common/cnxk/roc_mbox.h | 1 +
>  drivers/common/cnxk/roc_nix.c  | 5 ++++-
>  2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/common/cnxk/roc_mbox.h b/drivers/common/cnxk/roc_mbox.h
> index b5da931b81..75d1ff1ef3 100644
> --- a/drivers/common/cnxk/roc_mbox.h
> +++ b/drivers/common/cnxk/roc_mbox.h
> @@ -723,6 +723,7 @@ struct nix_lf_alloc_req {
>         uint64_t __io rx_cfg; /* See NIX_AF_LF(0..127)_RX_CFG */
>         uint64_t __io way_mask;
>  #define NIX_LF_RSS_TAG_LSB_AS_ADDER BIT_ULL(0)
> +#define NIX_LF_LBK_BLK_SEL         BIT_ULL(1)
>         uint64_t flags;
>  };
>
> diff --git a/drivers/common/cnxk/roc_nix.c b/drivers/common/cnxk/roc_nix.c
> index 23d508b941..1621f77fb0 100644
> --- a/drivers/common/cnxk/roc_nix.c
> +++ b/drivers/common/cnxk/roc_nix.c
> @@ -145,9 +145,12 @@ roc_nix_lf_alloc(struct roc_nix *roc_nix, uint32_t 
> nb_rxq, uint32_t nb_txq,
>         req->npa_func = idev_npa_pffunc_get();
>         req->sso_func = idev_sso_pffunc_get();
>         req->rx_cfg = rx_cfg;
> +       if (roc_nix_is_lbk(roc_nix) && roc_nix->enable_loop &&
> +           roc_model_is_cn98xx())
> +               req->flags = NIX_LF_LBK_BLK_SEL;
>
>         if (!roc_nix->rss_tag_as_xor)
> -               req->flags = NIX_LF_RSS_TAG_LSB_AS_ADDER;
> +               req->flags |= NIX_LF_RSS_TAG_LSB_AS_ADDER;
>
>         rc = mbox_process_msg(mbox, (void *)&rsp);
>         if (rc)
> --
> 2.18.0
>

Reply via email to