[PATCH v2 11/20] net/txgbe: fix traffic class priority configuration
Zaiyu Wang
zaiyuwang at trustnetic.com
Wed Apr 29 12:25:05 CEST 2026
After applying the following testpmd command, 802.1Q packets with specific
priorities were not properly directed to the corresponding traffic classes:
port config 0 dcb vt off 4 pfc off
The old driver had two issues:
1. The hardware uses a 4-bit mapping register per traffic class for
priority-to-TC mapping, but the driver incorrectly configured it
as 3 bits.
2. The DCB TX configuration mistakenly wrote to the RX register.
Fix both issues, ensuring that tc-prio mapping works as expected.
Fixes: 8bdc7882f376 ("net/txgbe: support DCB")
Cc: stable at dpdk.org
Signed-off-by: Zaiyu Wang <zaiyuwang at trustnetic.com>
---
drivers/net/txgbe/base/txgbe_dcb_hw.c | 2 +-
drivers/net/txgbe/base/txgbe_regs.h | 5 ++---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/net/txgbe/base/txgbe_dcb_hw.c b/drivers/net/txgbe/base/txgbe_dcb_hw.c
index 75c91a6b6a..79e1da447b 100644
--- a/drivers/net/txgbe/base/txgbe_dcb_hw.c
+++ b/drivers/net/txgbe/base/txgbe_dcb_hw.c
@@ -154,7 +154,7 @@ s32 txgbe_dcb_config_tx_data_arbiter_raptor(struct txgbe_hw *hw, u16 *refill,
for (i = 0; i < TXGBE_DCB_UP_MAX; i++)
reg |= TXGBE_DCBUP2TC_MAP(i, map[i]);
- wr32(hw, TXGBE_PBRXUP2TC, reg);
+ wr32(hw, TXGBE_PBTXUP2TC, reg);
/* Configure traffic class credits and priority */
for (i = 0; i < TXGBE_DCB_TC_MAX; i++) {
diff --git a/drivers/net/txgbe/base/txgbe_regs.h b/drivers/net/txgbe/base/txgbe_regs.h
index de382601c9..bc73f28ca2 100644
--- a/drivers/net/txgbe/base/txgbe_regs.h
+++ b/drivers/net/txgbe/base/txgbe_regs.h
@@ -503,9 +503,8 @@
#define TXGBE_PBRXCTL 0x019000
#define TXGBE_PBRXCTL_ST MS(0, 0x1)
#define TXGBE_PBRXCTL_ENA MS(31, 0x1)
-#define TXGBE_PBRXUP2TC 0x019008
#define TXGBE_PBTXUP2TC 0x01C800
-#define TXGBE_DCBUP2TC_MAP(tc, v) LS(v, 3 * (tc), 0x7)
+#define TXGBE_DCBUP2TC_MAP(tc, v) LS(v, 4 * (tc), 0x7)
#define TXGBE_DCBUP2TC_DEC(tc, r) RS(r, 3 * (tc), 0x7)
#define TXGBE_PBRXSIZE(tc) (0x019020 + (tc) * 4)
#define TXGBE_PBRXSIZE_KB(v) LS(v, 10, 0x3FF)
@@ -1703,7 +1702,7 @@ enum txgbe_5tuple_protocol {
#define TXGBE_RDM_PF_HIDE(_i) (0x12090 + ((_i) * 4))
#define TXGBE_RPUP2TC 0x019008
-#define TXGBE_RPUP2TC_UP_SHIFT 3
+#define TXGBE_RPUP2TC_UP_SHIFT 4
#define TXGBE_RPUP2TC_UP_MASK 0x7
#define TXGBE_RDM_DCACHE_CTL 0x0120A8
--
2.21.0.windows.1
More information about the stable
mailing list