Thread (14 messages) 14 messages, 3 authors, 2026-02-02

Re: [PATCH v1 net-next 1/3] net: update commnets for SKB_GSO_TCP_ECN and SKB_GSO_TCP_ACCECN

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2026-02-01 09:01:26
Also in: bpf, linux-doc, linux-kselftest, linux-rdma, virtualization

On Sat, Jan 31, 2026 at 11:55:08PM +0100, chia-yu.chang@nokia-bell-labs.com wrote:
From: Chia-Yu Chang <redacted>

No functional changes.

Co-developed-by: Ilpo Järvinen <ij@kernel.org>
Signed-off-by: Ilpo Järvinen <ij@kernel.org>
Signed-off-by: Chia-Yu Chang <redacted>
Subject: comments?
quoted hunk ↗ jump to hunk
---
 include/linux/skbuff.h | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index e6bfe5d0c525..30a8dc4233ba 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -671,7 +671,13 @@ enum {
 	/* This indicates the skb is from an untrusted source. */
 	SKB_GSO_DODGY = 1 << 1,
 
-	/* This indicates the tcp segment has CWR set. */
+	/* For Tx, this indicates the first TCP segment has CWR set, and any
+	 * subsequent segment in the same skb has CWR cleared. However, because
+	 * the connection to which the segment belongs is not tracked to use
+	 * RFC3168 or AccECN (RFC9768), and using RFC3168 ECN offload may clear
+	 * ACE signal (CWR is one of it). Therefore, this cannot be used on Rx.
+	 * Instead, SKB_GSO_TCP_ACCECN shall be used to avoid CWR corruption.
+	 */
 	SKB_GSO_TCP_ECN = 1 << 2,
 
 	__SKB_GSO_TCP_FIXEDID = 1 << 3,
@@ -706,6 +712,14 @@ enum {
 
 	SKB_GSO_FRAGLIST = 1 << 18,
 
+	/* For TX, this indicates the TCP segment uses the CWR flag as part of
+	 * ACE signal, and the CWR flag is not modified in the skb. For RX, any
+	 * CWR flagged segment must use SKB_GSO_TCP_ACCECN to ensure CWR flag
+	 * is not cleared by any RFC3168 ECN offload, and thus keeping ACE
+	 * signal of AccECN segments. This is particularly used for Rx of
+	 * virtio_net driver in order to tell latter GSO Tx in a forwarding
+	 * scenario that it is NOT ok to clean CWR flag from the 2nd segment.
+	 */
 	SKB_GSO_TCP_ACCECN = 1 << 19,
 
 	/* These indirectly map onto the same netdev feature.
-- 
2.34.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help