DPDK patches and discussions
 help / color / mirror / Atom feed
From: Chaoyong He <chaoyong.he@corigine.com>
To: dev@dpdk.org
Cc: oss-drivers@corigine.com, Long Wu <long.wu@corigine.com>,
	chaoyong.he@corigine.com, stable@dpdk.org
Subject: [PATCH] net/nfp: fix jumbo packet descriptors for NFDk
Date: Tue, 10 Oct 2023 14:06:52 +0800	[thread overview]
Message-ID: <20231010060652.205791-1-chaoyong.he@corigine.com> (raw)

From: Long Wu <long.wu@corigine.com>

When sending a jumbo packet on NFDk the packet must be split between
multiple descriptors. The first descriptor contains the packet header
and is limited to NFDK_DESC_TX_DMA_LEN_HEAD bytes. If the packet is
large, one or more payload descriptors, without a packet header, and
a size limit of NFDK_DESC_TX_DMA_LEN bytes are appended.

When adjusting the coding style for the for NFDk datapath an error was
made and the total packet size was modified when creating the first
descriptor. This resulted in no payload descriptors being created and
the jumbo packets where truncated.

Fix this by not modifying the total packet length when constructing the
first descriptor, allowing one or more payload descriptors to be
created.

Fixes: d7f6d9b21ffa ("net/nfp: adjust coding style for NFDk")
Cc: chaoyong.he@corigine.com
Cc: stable@dpdk.org

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/nfp/nfdk/nfp_nfdk_dp.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c
index d4bd5edb0a..3f8230f89c 100644
--- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c
+++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c
@@ -354,8 +354,10 @@ nfp_net_nfdk_xmit_pkts_common(void *tx_queue,
 		 * than packet head len.
 		 */
 		if (dma_len > NFDK_DESC_TX_DMA_LEN_HEAD)
-			dma_len = NFDK_DESC_TX_DMA_LEN_HEAD;
-		dlen_type = dma_len | (NFDK_DESC_TX_TYPE_HEAD & (type << 12));
+			tmp_dlen = NFDK_DESC_TX_DMA_LEN_HEAD;
+		else
+			tmp_dlen = dma_len;
+		dlen_type = tmp_dlen | (NFDK_DESC_TX_TYPE_HEAD & (type << 12));
 		ktxds->dma_len_type = rte_cpu_to_le_16(dlen_type);
 		dma_addr = rte_mbuf_data_iova(pkt);
 		ktxds->dma_addr_hi = rte_cpu_to_le_16(dma_addr >> 32);
@@ -366,7 +368,6 @@ nfp_net_nfdk_xmit_pkts_common(void *tx_queue,
 		 * Preserve the original dlen_type, this way below the EOP logic
 		 * can use dlen_type.
 		 */
-		tmp_dlen = dlen_type & NFDK_DESC_TX_DMA_LEN_HEAD;
 		dma_len -= tmp_dlen;
 		dma_addr += tmp_dlen + 1;
 
-- 
2.39.1


             reply	other threads:[~2023-10-10  6:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-10  6:06 Chaoyong He [this message]
2023-10-16 13:25 ` Ferruh Yigit

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=20231010060652.205791-1-chaoyong.he@corigine.com \
    --to=chaoyong.he@corigine.com \
    --cc=dev@dpdk.org \
    --cc=long.wu@corigine.com \
    --cc=oss-drivers@corigine.com \
    --cc=stable@dpdk.org \
    /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).