DPDK patches and discussions
 help / color / mirror / Atom feed
From: Harman Kalra <hkalra@marvell.com>
To: Nithin Dabilpuram <ndabilpuram@marvell.com>,
	Kiran Kumar K <kirankumark@marvell.com>,
	Sunil Kumar Kori <skori@marvell.com>,
	Satha Rao <skoteshwar@marvell.com>
Cc: <dev@dpdk.org>, Harman Kalra <hkalra@marvell.com>
Subject: [dpdk-dev] [PATCH 1/2] common/cnxk: setup nix and lbk in loop mode in 98xx
Date: Fri, 30 Jul 2021 21:40:07 +0530	[thread overview]
Message-ID: <20210730161009.14383-1-hkalra@marvell.com> (raw)

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 <hkalra@marvell.com>
---
 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	other threads:[~2021-07-30 16:10 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-30 16:10 Harman Kalra [this message]
2021-07-30 16:10 ` [dpdk-dev] [PATCH 2/2] common/cnxk: update npc mcam range for 98xx Harman Kalra
2021-09-28 10:05 ` [dpdk-dev] [PATCH 1/2] common/cnxk: setup nix and lbk in loop mode in 98xx Jerin Jacob

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=20210730161009.14383-1-hkalra@marvell.com \
    --to=hkalra@marvell.com \
    --cc=dev@dpdk.org \
    --cc=kirankumark@marvell.com \
    --cc=ndabilpuram@marvell.com \
    --cc=skori@marvell.com \
    --cc=skoteshwar@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).