patch 'net/nfp: standardize NFD3 Tx descriptor endianness' has been queued to stable release 23.11.5
Xueming Li
xuemingl at nvidia.com
Thu Jun 26 14:01:01 CEST 2025
Hi,
FYI, your patch has been queued to stable release 23.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/28/25. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b9ece5da287d02d3d2d1ca803c0be008c34f4870
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From b9ece5da287d02d3d2d1ca803c0be008c34f4870 Mon Sep 17 00:00:00 2001
From: Chaoyong He <chaoyong.he at corigine.com>
Date: Tue, 15 Apr 2025 10:54:52 +0800
Subject: [PATCH] net/nfp: standardize NFD3 Tx descriptor endianness
Cc: Xueming Li <xuemingl at nvidia.com>
[ upstream commit 1095bb0f86fafee3c7dca7b2dd23075ae869f689 ]
The data endian of NFD3 Tx descriptor should be little, and the related
logic also should modify.
Fixes: 3745dd9dd86f ("net/nfp: adjust coding style for NFD3")
Signed-off-by: Chaoyong He <chaoyong.he at corigine.com>
Reviewed-by: Long Wu <long.wu at corigine.com>
Reviewed-by: Peng Zhang <peng.zhang at corigine.com>
---
drivers/net/nfp/flower/nfp_flower_ctrl.c | 4 ++--
drivers/net/nfp/nfd3/nfp_nfd3.h | 14 +++++++-------
drivers/net/nfp/nfd3/nfp_nfd3_dp.c | 8 ++++----
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/nfp/flower/nfp_flower_ctrl.c b/drivers/net/nfp/flower/nfp_flower_ctrl.c
index 574e4fa056..06d9126340 100644
--- a/drivers/net/nfp/flower/nfp_flower_ctrl.c
+++ b/drivers/net/nfp/flower/nfp_flower_ctrl.c
@@ -192,10 +192,10 @@ nfp_flower_ctrl_vnic_nfd3_xmit(struct nfp_app_fw_flower *app_fw_flower,
*lmbuf = mbuf;
dma_addr = rte_mbuf_data_iova(mbuf);
- txds->data_len = mbuf->pkt_len;
+ txds->data_len = rte_cpu_to_le_16(mbuf->pkt_len);
txds->dma_len = txds->data_len;
txds->dma_addr_hi = (dma_addr >> 32) & 0xff;
- txds->dma_addr_lo = (dma_addr & 0xffffffff);
+ txds->dma_addr_lo = rte_cpu_to_le_32(dma_addr & 0xffffffff);
txds->offset_eop = FLOWER_PKT_DATA_OFFSET | NFD3_DESC_TX_EOP;
txq->wr_p++;
diff --git a/drivers/net/nfp/nfd3/nfp_nfd3.h b/drivers/net/nfp/nfd3/nfp_nfd3.h
index 3ba562cc3f..6e636a86b8 100644
--- a/drivers/net/nfp/nfd3/nfp_nfd3.h
+++ b/drivers/net/nfp/nfd3/nfp_nfd3.h
@@ -17,13 +17,13 @@
struct nfp_net_nfd3_tx_desc {
union {
struct {
- uint8_t dma_addr_hi; /**< High bits of host buf address */
- uint16_t dma_len; /**< Length to DMA for this desc */
+ uint8_t dma_addr_hi; /**< High bits of host buf address */
+ rte_le16_t dma_len; /**< Length to DMA for this desc */
/** Offset in buf where pkt starts + highest bit is eop flag */
uint8_t offset_eop;
- uint32_t dma_addr_lo; /**< Low 32bit of host buf addr */
+ rte_le32_t dma_addr_lo; /**< Low 32bit of host buf addr */
- uint16_t mss; /**< MSS to be used for LSO */
+ rte_le16_t mss; /**< MSS to be used for LSO */
uint8_t lso_hdrlen; /**< LSO, where the data starts */
uint8_t flags; /**< TX Flags, see @NFD3_DESC_TX_* */
@@ -32,11 +32,11 @@ struct nfp_net_nfd3_tx_desc {
uint8_t l3_offset; /**< L3 header offset */
uint8_t l4_offset; /**< L4 header offset */
};
- uint16_t vlan; /**< VLAN tag to add if indicated */
+ rte_le16_t vlan; /**< VLAN tag to add if indicated */
};
- uint16_t data_len; /**< Length of frame + meta data */
+ rte_le16_t data_len; /**< Length of frame + meta data */
} __rte_packed;
- uint32_t vals[4];
+ rte_le32_t vals[4];
};
};
diff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c
index b9da74bc99..1771e3adf2 100644
--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c
+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c
@@ -133,7 +133,7 @@ nfp_net_nfd3_tx_vlan(struct nfp_net_txq *txq,
if ((mb->ol_flags & RTE_MBUF_F_TX_VLAN) != 0) {
txd->flags |= NFD3_DESC_TX_VLAN;
- txd->vlan = mb->vlan_tci;
+ txd->vlan = rte_cpu_to_le_16(mb->vlan_tci);
}
}
@@ -298,7 +298,7 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
* Checksum and VLAN flags just in the first descriptor for a
* multisegment packet, but TSO info needs to be in all of them.
*/
- txd.data_len = pkt->pkt_len;
+ txd.data_len = rte_cpu_to_le_16((uint16_t)pkt->pkt_len);
nfp_net_nfd3_tx_tso(txq, &txd, pkt);
nfp_net_nfd3_tx_cksum(txq, &txd, pkt);
nfp_net_nfd3_tx_vlan(txq, &txd, pkt);
@@ -328,10 +328,10 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
dma_addr = rte_mbuf_data_iova(pkt);
/* Filling descriptors fields */
- txds->dma_len = dma_size;
+ txds->dma_len = rte_cpu_to_le_16(dma_size);
txds->data_len = txd.data_len;
txds->dma_addr_hi = (dma_addr >> 32) & 0xff;
- txds->dma_addr_lo = (dma_addr & 0xffffffff);
+ txds->dma_addr_lo = rte_cpu_to_le_32(dma_addr & 0xffffffff);
free_descs--;
txq->wr_p++;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-06-26 19:59:19.477643057 +0800
+++ 0041-net-nfp-standardize-NFD3-Tx-descriptor-endianness.patch 2025-06-26 19:59:17.378418044 +0800
@@ -1 +1 @@
-From 1095bb0f86fafee3c7dca7b2dd23075ae869f689 Mon Sep 17 00:00:00 2001
+From b9ece5da287d02d3d2d1ca803c0be008c34f4870 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 1095bb0f86fafee3c7dca7b2dd23075ae869f689 ]
@@ -10 +12,0 @@
-Cc: stable at dpdk.org
@@ -22 +24 @@
-index 23d1b770d8..6ac2caf367 100644
+index 574e4fa056..06d9126340 100644
@@ -25 +27 @@
-@@ -194,10 +194,10 @@ nfp_flower_ctrl_vnic_nfd3_xmit(struct nfp_app_fw_flower *app_fw_flower,
+@@ -192,10 +192,10 @@ nfp_flower_ctrl_vnic_nfd3_xmit(struct nfp_app_fw_flower *app_fw_flower,
@@ -39 +41 @@
-index 96ea23b3df..dc24f4fa1d 100644
+index 3ba562cc3f..6e636a86b8 100644
@@ -45 +47 @@
- struct __rte_packed_begin {
+ struct {
@@ -69 +71 @@
- } __rte_packed_end;
+ } __rte_packed;
@@ -76 +78 @@
-index 3ffcbb2576..6466a5a4fb 100644
+index b9da74bc99..1771e3adf2 100644
@@ -79 +81 @@
-@@ -139,7 +139,7 @@ nfp_net_nfd3_tx_vlan(struct nfp_net_txq *txq,
+@@ -133,7 +133,7 @@ nfp_net_nfd3_tx_vlan(struct nfp_net_txq *txq,
@@ -88 +90 @@
-@@ -300,7 +300,7 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
+@@ -298,7 +298,7 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
@@ -97 +99 @@
-@@ -330,10 +330,10 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
+@@ -328,10 +328,10 @@ nfp_net_nfd3_xmit_pkts_common(void *tx_queue,
More information about the stable
mailing list