From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id ACB594624E for ; Mon, 17 Feb 2025 18:06:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A706C400D6; Mon, 17 Feb 2025 18:06:07 +0100 (CET) Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by mails.dpdk.org (Postfix) with ESMTP id 1340C400D6 for ; Mon, 17 Feb 2025 18:06:06 +0100 (CET) Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4397e5d5d99so8382765e9.1 for ; Mon, 17 Feb 2025 09:06:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739811966; x=1740416766; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wbaOuz0mWvSmVI71IlWMTAND46MU4T0VqWnNRhWJZo8=; b=MJOhr6+H1UMaNI1j5ke7xg33P+4bFj2Tn5B+zzx1u9UL1P0Zk4VGErt1ZXKPBCmBZv ky/DIc6oXky6lo3bBHyjBwv8ATnnYRmFGyRxUDJMoiIZUVzjL3h4tuic0F5qF5grwKv1 +bYl7ohTS7/7qdSygiF1GM/7u+HryRdqCRmFR6kOV39oYGHuhm4R6w1XLb++Ut87nJqv ROgSnu7yPpoRhaw9Qir/rV1sxCJcDjVjc+G1AwbSt8EhcrFvhGrzJ63dq1OGeRT3KoeF +endx/T55NMZ2NPYwavooRle6prRrj/7imzawu8W3+LkHciEGtf6FAQWtUzp0kOukkhN pEzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739811966; x=1740416766; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wbaOuz0mWvSmVI71IlWMTAND46MU4T0VqWnNRhWJZo8=; b=r4ZlI3Bq9Z2TrH4U5RaTfcjIFFuZ6qmUvBKywUHm4jOHLF/9gpNYL3/nasMUVDwV+W vfLBXwYdmivz7/gOBIunJJRUVkl97CSLmt4+sx4n+ueCgCljQkYHtW4HgWIzpmMNixKs tv75TxlJ5ctW4nTwALo+MJJgckFe3WVt6zBTKN8B/MA+902bsFLYfHtTAD1yR07rSjic 69r2Ppfg8RI227vwUyen73yekX5CKmoFx/1XJmkyHkJPp0BXeHGjTX4wp5TNRhd+P3yP WQxSDDKJ4Si4C8ttp7Iy8+2MclYOKg03C0AFQ6E9jCDWGriS/3qKDLQ9UxPTyKa1QiR4 KU3Q== X-Gm-Message-State: AOJu0YzhkugPpdlJp+AJBihVIgaRTCtFr6jgHZqH0BWm0FsuVwphSulP jHHKZ+haTm+5BZYkuHGDlWe5IHZBSaaw0uKAZ4HO5ndIWZjpzQhiJ24bl4LfkA3Qnw== X-Gm-Gg: ASbGnctcQLue57CHh2ebLd/GGYhhyXnDWC5/wFmUdqBm1HTn8gPO8q1ieSSamVYbrcJ hcUv/cPWy1RPCDBFnKSrd/09VRqihWn9GFgZI2/2bwcFZ5JZW2xvYRK8a0pi9M03StEHiXOWSel KiMCYTCezn33eHdBppWsmvbJFi07WJl6cX28PCMcqOsRprP/o7LUtOygA4DkZ3vQbIg6asYMNk5 q1r4hk3FZiCEPAi6NY6uGQzIDWhmgNzaTCxc5qtYC6xA2QTbYvxp1yG9c4nWGZxxLss97gnQPBj +Z5mBC9DX8wrXUTWVKbjzw== X-Google-Smtp-Source: AGHT+IGv6LqmIc9RlZMnnBUDqCZuvryh7U9fR4kQ6m/93XjlmEdlyLNjxOzX2N95d/TKKw5Ud5omwQ== X-Received: by 2002:a05:600c:4f84:b0:436:5fc9:30ba with SMTP id 5b1f17b1804b1-4396e7664a9mr93994285e9.29.1739811965283; Mon, 17 Feb 2025 09:06:05 -0800 (PST) Received: from localhost ([2a01:4b00:d036:ae00:f83c:95e7:29fd:a997]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-43982bcc607sm39018795e9.16.2025.02.17.09.06.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 09:06:04 -0800 (PST) From: luca.boccassi@gmail.com To: Rahul Bhansali Cc: dpdk stable Subject: patch 'net/cnxk: fix NIX send header L3 type' has been queued to stable release 22.11.8 Date: Mon, 17 Feb 2025 17:03:54 +0000 Message-ID: <20250217170456.1068278-21-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250217170456.1068278-1-luca.boccassi@gmail.com> References: <20250217170456.1068278-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org 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 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 --- 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@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,