From: Nithin Dabilpuram <ndabilpuram@marvell.com>
To: <jerinj@marvell.com>, Nithin Dabilpuram <ndabilpuram@marvell.com>,
"Kiran Kumar K" <kirankumark@marvell.com>,
Sunil Kumar Kori <skori@marvell.com>,
Satha Rao <skoteshwar@marvell.com>,
Harman Kalra <hkalra@marvell.com>
Cc: <dev@dpdk.org>, Rahul Bhansali <rbhansali@marvell.com>
Subject: [PATCH 29/34] net/cnxk: fix of NIX send header L3 type
Date: Fri, 31 Jan 2025 13:35:24 +0530 [thread overview]
Message-ID: <20250131080530.3224977-29-ndabilpuram@marvell.com> (raw)
In-Reply-To: <20250131080530.3224977-1-ndabilpuram@marvell.com>
From: Rahul Bhansali <rbhansali@marvell.com>
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")
Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
---
drivers/net/cnxk/cn10k_tx.h | 7 +++++--
drivers/net/cnxk/cn20k_tx.h | 7 +++++--
drivers/net/cnxk/cn9k_tx.h | 7 +++++--
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index 5a8e728bc1..809fafb2f7 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -1773,6 +1773,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) &&
@@ -2477,7 +2480,7 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws,
*/
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 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws,
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 7674c1644a..c419778970 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 @@ cn20k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws, struct rte_mbuf **tx_pk
*/
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) */
@@ -2595,7 +2598,7 @@ cn20k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws, struct rte_mbuf **tx_pk
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 9370985864..902a17860c 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -889,6 +889,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) &&
@@ -1402,7 +1405,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) */
@@ -1606,7 +1609,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.34.1
next prev parent reply other threads:[~2025-01-31 8:08 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-31 8:04 [PATCH 01/34] net/cnxk: allow duplicate SPI in outbound IPsec Nithin Dabilpuram
2025-01-31 8:04 ` [PATCH 02/34] common/cnxk: remove unused param in SA init Nithin Dabilpuram
2025-01-31 8:04 ` [PATCH 03/34] net/cnxk: remove unnecessary delay on stats read Nithin Dabilpuram
2025-01-31 8:04 ` [PATCH 04/34] common/cnxk: move CTX defines to common Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 05/34] common/cnxk: add cn20k CPT result struct Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 06/34] common/cnxk: enable IE with cn9k and cn10k only Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 07/34] common/cnxk: make special handling only for 9k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 08/34] common/cnxk: add CPT cn20k device enumeration Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 09/34] common/cnxk: add CPT LMT defines Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 10/34] common/cnxk: add 20k defines for IPsec Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 11/34] common/cnxk: update default eng group for cn20k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 12/34] common/cnxk: support for cn20k IPsec session Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 13/34] common/cnxk: add cn20k meta pkt structs Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 14/34] common/cnxk: support for inline IPsec for cn20k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 15/34] common/cnxk: support inline SA context invalidate Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 16/34] common/cnxk: update feature flags for cn20k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 17/34] common/cnxk: add mbox define for inline profile support Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 18/34] common/cnxk: support for inline inbound queue Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 19/34] common/cnxk: add NIX inline reassembly profile config Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 20/34] common/cnxk: add API to fetch inline profile ID Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 21/34] common/cnxk: add NPC action2 support Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 22/34] common/cnxk: support for NPC inline rule for cn20k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 23/34] net/cnxk: support for cn20k inline IPsec session Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 24/34] common/cnxk: update CPT RXC time config mbox for cn20k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 25/34] net/cnxk: store pool buffer size in lookup memory Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 26/34] net/cnxk: inline IPsec Rx support for cn20k Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 27/34] event/cnxk: " Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 28/34] common/cnxk: enable allmulti mode on rpm/cgx VF Nithin Dabilpuram
2025-01-31 8:05 ` Nithin Dabilpuram [this message]
2025-01-31 8:05 ` [PATCH 30/34] common/cnxk: fix inbound IPsec sa setup Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 31/34] common/cnxk: add stats reset for inline device Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 32/34] common/cnxk: change the error log to a debug log Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 33/34] net/cnxk: update MC address list configure API Nithin Dabilpuram
2025-01-31 8:05 ` [PATCH 34/34] common/cnxk: move interrupt handling to platform-specific Nithin Dabilpuram
2025-02-24 7:17 ` Jerin Jacob
2025-02-24 9:38 ` [PATCH v2 01/33] net/cnxk: allow duplicate SPI in outbound IPsec Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 02/33] common/cnxk: remove unused param in SA init Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 03/33] net/cnxk: remove unnecessary delay on stats read Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 04/33] common/cnxk: move CTX defines to common Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 05/33] common/cnxk: add cn20k CPT result struct Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 06/33] common/cnxk: enable IE with cn9k and cn10k only Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 07/33] common/cnxk: make special handling only for 9k Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 08/33] common/cnxk: add CPT cn20k device enumeration Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 09/33] common/cnxk: add CPT LMT defines Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 10/33] common/cnxk: add 20k defines for IPsec Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 11/33] common/cnxk: update default eng group for cn20k Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 12/33] common/cnxk: support for cn20k IPsec session Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 13/33] common/cnxk: add cn20k meta pkt structs Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 14/33] common/cnxk: support for inline IPsec for cn20k Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 15/33] common/cnxk: support inline SA context invalidate Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 16/33] common/cnxk: update feature flags for cn20k Nithin Dabilpuram
2025-02-24 9:38 ` [PATCH v2 17/33] common/cnxk: add mbox define for inline profile support Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 18/33] common/cnxk: support for inline inbound queue Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 19/33] common/cnxk: add NIX inline reassembly profile config Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 20/33] common/cnxk: add API to fetch inline profile ID Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 21/33] common/cnxk: add NPC action2 support Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 22/33] common/cnxk: support for NPC inline rule for cn20k Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 23/33] net/cnxk: support for cn20k inline IPsec session Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 24/33] common/cnxk: update CPT RXC time config mbox for cn20k Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 25/33] net/cnxk: store pool buffer size in lookup memory Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 26/33] net/cnxk: inline IPsec Rx support for cn20k Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 27/33] event/cnxk: " Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 28/33] common/cnxk: enable allmulti mode on rpm/cgx VF Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 29/33] common/cnxk: fix inbound IPsec sa setup Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 30/33] common/cnxk: add stats reset for inline device Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 31/33] common/cnxk: change the error log to a debug log Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 32/33] net/cnxk: update MC address list configure API Nithin Dabilpuram
2025-02-24 9:39 ` [PATCH v2 33/33] common/cnxk: move interrupt handling to platform-specific Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 01/33] net/cnxk: allow duplicate SPI in outbound IPsec Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 02/33] common/cnxk: remove unused param in SA init Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 03/33] net/cnxk: remove unnecessary delay on stats read Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 04/33] common/cnxk: move CTX defines to common Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 05/33] common/cnxk: add cn20k CPT result struct Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 06/33] common/cnxk: enable IE with cn9k and cn10k only Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 07/33] common/cnxk: make special handling only for 9k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 08/33] common/cnxk: add CPT cn20k device enumeration Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 09/33] common/cnxk: add CPT LMT defines Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 10/33] common/cnxk: add 20k defines for IPsec Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 11/33] common/cnxk: update default eng group for cn20k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 12/33] common/cnxk: support for cn20k IPsec session Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 13/33] common/cnxk: add cn20k meta pkt structs Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 14/33] common/cnxk: support for inline IPsec for cn20k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 15/33] common/cnxk: support inline SA context invalidate Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 16/33] common/cnxk: update feature flags for cn20k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 17/33] common/cnxk: add mbox define for inline profile support Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 18/33] common/cnxk: support for inline inbound queue Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 19/33] common/cnxk: add NIX inline reassembly profile config Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 20/33] common/cnxk: add API to fetch inline profile ID Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 21/33] common/cnxk: add NPC action2 support Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 22/33] common/cnxk: support for NPC inline rule for cn20k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 23/33] net/cnxk: support for cn20k inline IPsec session Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 24/33] common/cnxk: update CPT RXC time config mbox for cn20k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 25/33] net/cnxk: store pool buffer size in lookup memory Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 26/33] net/cnxk: inline IPsec Rx support for cn20k Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 27/33] event/cnxk: " Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 28/33] common/cnxk: enable allmulti mode on rpm/cgx VF Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 29/33] common/cnxk: fix inbound IPsec sa setup Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 30/33] common/cnxk: add stats reset for inline device Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 31/33] common/cnxk: change the error log to a debug log Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 32/33] net/cnxk: update MC address list configure API Nithin Dabilpuram
2025-02-24 9:52 ` [PATCH v3 33/33] common/cnxk: move interrupt handling to platform-specific Nithin Dabilpuram
2025-02-24 16:52 ` [PATCH v3 01/33] net/cnxk: allow duplicate SPI in outbound IPsec Jerin Jacob
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=20250131080530.3224977-29-ndabilpuram@marvell.com \
--to=ndabilpuram@marvell.com \
--cc=dev@dpdk.org \
--cc=hkalra@marvell.com \
--cc=jerinj@marvell.com \
--cc=kirankumark@marvell.com \
--cc=rbhansali@marvell.com \
--cc=skori@marvell.com \
--cc=skoteshwar@marvell.com \
/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).