[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260128144426.15870-2-chia-yu.chang@nokia-bell-labs.com>
Date: Wed, 28 Jan 2026 15:44:24 +0100
From: chia-yu.chang@...ia-bell-labs.com
To: pabeni@...hat.com,
edumazet@...gle.com,
parav@...dia.com,
linux-doc@...r.kernel.org,
corbet@....net,
horms@...nel.org,
dsahern@...nel.org,
kuniyu@...gle.com,
bpf@...r.kernel.org,
netdev@...r.kernel.org,
dave.taht@...il.com,
jhs@...atatu.com,
kuba@...nel.org,
stephen@...workplumber.org,
xiyou.wangcong@...il.com,
jiri@...nulli.us,
davem@...emloft.net,
andrew+netdev@...n.ch,
donald.hunter@...il.com,
ast@...erby.net,
liuhangbin@...il.com,
shuah@...nel.org,
linux-kselftest@...r.kernel.org,
ij@...nel.org,
ncardwell@...gle.com,
koen.de_schepper@...ia-bell-labs.com,
g.white@...lelabs.com,
ingemar.s.johansson@...csson.com,
mirja.kuehlewind@...csson.com,
cheshire@...le.com,
rs.ietf@....at,
Jason_Livingood@...cast.com,
vidhi_goel@...le.com
Cc: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
Subject: [PATCH v1 net-next 1/3] net: update commnets for SKB_GSO_TCP_ECN and SKB_GSO_TCP_ACCECN
From: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
No functional changes.
Co-developed-by: Ilpo Järvinen <ij@...nel.org>
Signed-off-by: Ilpo Järvinen <ij@...nel.org>
Signed-off-by: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
---
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
Powered by blists - more mailing lists