patch 'net/dpaa2: fix L3/L4 checksum results' has been queued to stable release 24.11.4

Kevin Traynor ktraynor at redhat.com
Fri Oct 31 15:33:57 CET 2025


Hi,

FYI, your patch has been queued to stable release 24.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/05/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://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/ba3d5809e8a80dc33e8311409f2eeeb62903ea10

Thanks.

Kevin

---
>From ba3d5809e8a80dc33e8311409f2eeeb62903ea10 Mon Sep 17 00:00:00 2001
From: Brick Yang <brick.yang at nxp.com>
Date: Thu, 16 Oct 2025 15:57:53 +0530
Subject: [PATCH] net/dpaa2: fix L3/L4 checksum results

[ upstream commit 870354264644bc8a2f014571e9a34757258d2ec8 ]

Layer3 and layer4 checksum validation and error
status is part of word1 of annotation area, but
driver is looking into wrong word.
This patch fixes the checksum error status in packet
parsing.

Fixes: 94d31549c380 ("net/dpaa2: support Rx checksum offload in slow parsing")

Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
Signed-off-by: Brick Yang <brick.yang at nxp.com>
---
 drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h | 10 +++++-----
 drivers/net/dpaa2/dpaa2_rxtx.c               | 16 ++++------------
 2 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h b/drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h
index 7e5e499b6a..4f5ac1a481 100644
--- a/drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h
+++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h
@@ -2,5 +2,5 @@
  *
  *   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
- *   Copyright 2016,2019 NXP
+ *   Copyright 2016,2019,2022,2024 NXP
  *
  */
@@ -299,11 +299,11 @@ struct dpaa2_faead {
 #define DPAA2_ETH_FAS_BLE	       0x00000010
 /* L3 csum validation performed */
-#define DPAA2_ETH_FAS_L3CV	      0x00000008
+#define DPAA2_ETH_FAS_L3CV	      0x0000000800000000
 /* L3 csum error */
-#define DPAA2_ETH_FAS_L3CE	      0x00000004
+#define DPAA2_ETH_FAS_L3CE	      0x0000000400000000
 /* L4 csum validation performed */
-#define DPAA2_ETH_FAS_L4CV	      0x00000002
+#define DPAA2_ETH_FAS_L4CV	      0x0000000200000000
 /* L4 csum error */
-#define DPAA2_ETH_FAS_L4CE	      0x00000001
+#define DPAA2_ETH_FAS_L4CE	      0x0000000100000000
 
 #ifdef __cplusplus
diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index 36ce08ffe2..a88e83998e 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -201,12 +201,8 @@ dpaa2_dev_rx_parse_slow(struct rte_mbuf *mbuf,
 	}
 
-	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L3CE))
+	if (BIT_ISSET_AT_POS(annotation->word1, DPAA2_ETH_FAS_L3CE))
 		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_BAD;
-	else
-		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_GOOD;
-	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L4CE))
+	else if (BIT_ISSET_AT_POS(annotation->word1, DPAA2_ETH_FAS_L4CE))
 		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_BAD;
-	else
-		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_GOOD;
 
 	if (BIT_ISSET_AT_POS(annotation->word4, L3_IP_1_FIRST_FRAGMENT |
@@ -248,12 +244,8 @@ dpaa2_dev_rx_parse(struct rte_mbuf *mbuf, void *hw_annot_addr)
 			   annotation->word4);
 
-	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L3CE))
+	if (BIT_ISSET_AT_POS(annotation->word1, DPAA2_ETH_FAS_L3CE))
 		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_BAD;
-	else
-		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_GOOD;
-	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L4CE))
+	else if (BIT_ISSET_AT_POS(annotation->word1, DPAA2_ETH_FAS_L4CE))
 		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_BAD;
-	else
-		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_GOOD;
 
 	if (unlikely(dpaa2_print_parser_result))
-- 
2.51.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-10-31 13:53:55.693562874 +0000
+++ 0115-net-dpaa2-fix-L3-L4-checksum-results.patch	2025-10-31 13:53:52.295524177 +0000
@@ -1 +1 @@
-From 870354264644bc8a2f014571e9a34757258d2ec8 Mon Sep 17 00:00:00 2001
+From ba3d5809e8a80dc33e8311409f2eeeb62903ea10 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 870354264644bc8a2f014571e9a34757258d2ec8 ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index d156b07087..a670098958 100644
+index 7e5e499b6a..4f5ac1a481 100644
@@ -33 +34 @@
-@@ -305,11 +305,11 @@ struct dpaa2_faead {
+@@ -299,11 +299,11 @@ struct dpaa2_faead {
@@ -50 +51 @@
-index 656a3a423f..da0c06caad 100644
+index 36ce08ffe2..a88e83998e 100644
@@ -53 +54 @@
-@@ -202,12 +202,8 @@ dpaa2_dev_rx_parse_slow(struct rte_mbuf *mbuf,
+@@ -201,12 +201,8 @@ dpaa2_dev_rx_parse_slow(struct rte_mbuf *mbuf,
@@ -68 +69 @@
-@@ -249,12 +245,8 @@ dpaa2_dev_rx_parse(struct rte_mbuf *mbuf, void *hw_annot_addr)
+@@ -248,12 +244,8 @@ dpaa2_dev_rx_parse(struct rte_mbuf *mbuf, void *hw_annot_addr)



More information about the stable mailing list