patch 'net/cnxk: fix NIX send header L3 type' has been queued to stable release 22.11.8
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Mon Feb 17 18:03:54 CET 2025
Hi,
FYI, your patch has been queued to stable release 22.11.8
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/19/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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/bf3f2c07d4ed6953ae982869c975f508c5eece40
Thanks.
Luca Boccassi
---
>From bf3f2c07d4ed6953ae982869c975f508c5eece40 Mon Sep 17 00:00:00 2001
From: Rahul Bhansali <rbhansali at marvell.com>
Date: Thu, 30 Jan 2025 17:25:26 +0530
Subject: [PATCH] net/cnxk: fix NIX send header L3 type
[ upstream commit 32c18e7364e30a8e43cc7cc6709a7ce606fa285e ]
For small packets less than 55 bytes, SQ error interrupts are
observed.
When checksum offload flag is enabled and mbuf ol_flags are not
set, then default L3 type will be set to IPv6 in vector
processing. Based on this, HW will still validate for minimum
header size and generate send header error if mismatch.
To address this, will set default L3 type to none. Mbuf ol_flags
RTE_MBUF_F_TX_IPV6 will set with offload feature TSO or L4
checksum only, so handled in corresponding routine.
Fixes: f71b7dbbf04b ("net/cnxk: add vector Tx for CN10K")
Fixes: e829e60c6917 ("net/cnxk: support Tx burst vector for CN20K")
Fixes: 862e28128707 ("net/cnxk: add vector Tx for CN9K")
Signed-off-by: Rahul Bhansali <rbhansali at marvell.com>
---
drivers/net/cnxk/cn10k_tx.h | 7 +++++--
drivers/net/cnxk/cn9k_tx.h | 7 +++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index cd9b1f225e..97d06ab491 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -1340,6 +1340,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
w0->lso_mps = m->tso_segsz;
w0->lso_format = NIX_LSO_FORMAT_IDX_TSOV4 + !!(ol_flags & RTE_MBUF_F_TX_IPV6);
w1->ol4type = NIX_SENDL4TYPE_TCP_CKSUM;
+ w1->ol3type = ((!!(ol_flags & RTE_MBUF_F_TX_IPV4)) << 1) +
+ ((!!(ol_flags & RTE_MBUF_F_TX_IPV6)) << 2) +
+ !!(ol_flags & RTE_MBUF_F_TX_IP_CKSUM);
/* Handle tunnel tso */
if ((flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) &&
@@ -2031,7 +2034,7 @@ again:
*/
const uint8x16_t tbl = {
/* [0-15] = il4type:il3type */
- 0x04, /* none (IPv6 assumed) */
+ 0x00, /* none */
0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6 assumed) */
0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6 assumed) */
0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6 assumed) */
@@ -2235,7 +2238,7 @@ again:
const uint8x16x2_t tbl = {{
{
/* [0-15] = il4type:il3type */
- 0x04, /* none (IPv6) */
+ 0x00, /* none */
0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6) */
0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6) */
0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6) */
diff --git a/drivers/net/cnxk/cn9k_tx.h b/drivers/net/cnxk/cn9k_tx.h
index 33db781abe..a76c071d8a 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -659,6 +659,9 @@ cn9k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
w0->lso_mps = m->tso_segsz;
w0->lso_format = NIX_LSO_FORMAT_IDX_TSOV4 + !!(ol_flags & RTE_MBUF_F_TX_IPV6);
w1->ol4type = NIX_SENDL4TYPE_TCP_CKSUM;
+ w1->ol3type = ((!!(ol_flags & RTE_MBUF_F_TX_IPV4)) << 1) +
+ ((!!(ol_flags & RTE_MBUF_F_TX_IPV6)) << 2) +
+ !!(ol_flags & RTE_MBUF_F_TX_IP_CKSUM);
/* Handle tunnel tso */
if ((flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) &&
@@ -1147,7 +1150,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
*/
const uint8x16_t tbl = {
/* [0-15] = il4type:il3type */
- 0x04, /* none (IPv6 assumed) */
+ 0x00, /* none */
0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6 assumed) */
0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6 assumed) */
0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6 assumed) */
@@ -1351,7 +1354,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
const uint8x16x2_t tbl = {{
{
/* [0-15] = il4type:il3type */
- 0x04, /* none (IPv6) */
+ 0x00, /* none */
0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6) */
0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6) */
0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6) */
--
2.47.2
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-17 16:13:17.617853929 +0000
+++ 0021-net-cnxk-fix-NIX-send-header-L3-type.patch 2025-02-17 16:13:16.802441593 +0000
@@ -1 +1 @@
-From 32c18e7364e30a8e43cc7cc6709a7ce606fa285e Mon Sep 17 00:00:00 2001
+From bf3f2c07d4ed6953ae982869c975f508c5eece40 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 32c18e7364e30a8e43cc7cc6709a7ce606fa285e ]
+
@@ -20 +21,0 @@
-Cc: stable at dpdk.org
@@ -25 +25,0 @@
- drivers/net/cnxk/cn20k_tx.h | 7 +++++--
@@ -27 +27 @@
- 3 files changed, 15 insertions(+), 6 deletions(-)
+ 2 files changed, 10 insertions(+), 4 deletions(-)
@@ -30 +30 @@
-index 7d9b259a5f..77f4e54cd8 100644
+index cd9b1f225e..97d06ab491 100644
@@ -33 +33 @@
-@@ -1773,6 +1773,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
+@@ -1340,6 +1340,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
@@ -43,33 +43 @@
-@@ -2477,7 +2480,7 @@ again:
- */
- const uint8x16_t tbl = {
- /* [0-15] = il4type:il3type */
-- 0x04, /* none (IPv6 assumed) */
-+ 0x00, /* none */
- 0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6 assumed) */
- 0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6 assumed) */
- 0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6 assumed) */
-@@ -2681,7 +2684,7 @@ again:
- const uint8x16x2_t tbl = {{
- {
- /* [0-15] = il4type:il3type */
-- 0x04, /* none (IPv6) */
-+ 0x00, /* none */
- 0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6) */
- 0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6) */
- 0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6) */
-diff --git a/drivers/net/cnxk/cn20k_tx.h b/drivers/net/cnxk/cn20k_tx.h
-index c731406529..8c3ba8326d 100644
---- a/drivers/net/cnxk/cn20k_tx.h
-+++ b/drivers/net/cnxk/cn20k_tx.h
-@@ -1733,6 +1733,9 @@ cn20k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1, union nix
- w0->lso_mps = m->tso_segsz;
- w0->lso_format = NIX_LSO_FORMAT_IDX_TSOV4 + !!(ol_flags & RTE_MBUF_F_TX_IPV6);
- w1->ol4type = NIX_SENDL4TYPE_TCP_CKSUM;
-+ w1->ol3type = ((!!(ol_flags & RTE_MBUF_F_TX_IPV4)) << 1) +
-+ ((!!(ol_flags & RTE_MBUF_F_TX_IPV6)) << 2) +
-+ !!(ol_flags & RTE_MBUF_F_TX_IP_CKSUM);
-
- /* Handle tunnel tso */
- if ((flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) && (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)) {
-@@ -2395,7 +2398,7 @@ again:
+@@ -2031,7 +2034,7 @@ again:
@@ -84 +52 @@
-@@ -2595,7 +2598,7 @@ again:
+@@ -2235,7 +2238,7 @@ again:
@@ -94 +62 @@
-index 9370985864..902a17860c 100644
+index 33db781abe..a76c071d8a 100644
@@ -97 +65 @@
-@@ -889,6 +889,9 @@ cn9k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
+@@ -659,6 +659,9 @@ cn9k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
@@ -107 +75 @@
-@@ -1402,7 +1405,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1147,7 +1150,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -116 +84 @@
-@@ -1606,7 +1609,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1351,7 +1354,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
More information about the stable
mailing list