On Tue,  4 Aug 2026 23:35:09 +0200 [email protected]
wrote:
> This corresponds to discussions in virtio mailing list:
> https://lore.kernel.org/all/[email protected]/
> And it was suggested to clarify SKB_GSO_TCP_ECN and SKB_GSO_TCP_ACCECN.

> -     /* This indicates the tcp segment has CWR set. */
> +     /* For TX, this indicates that the first TCP segment has CWR set, and
> +      * any subsequent segment in the same skb has CWR cleared. This flag
> +      * must not be used in RX, because the connection to which the segment
> +      * belongs is not tracked to use RFC3168 or AccECN. Using RFC3168 ECN
> +      * offload may clear CWR and corrupt ACE signal (CWR is part of it).
> +      * Instead, SKB_GSO_TCP_ACCECN shall be used to avoid CWR corruption.
> +      */

I still can't wrap my head around this TBH.

SKB_GSO_TCP_ECN means RFC3168
SKB_GSO_TCP_ACCECN means AccECN

If the HW can correctly detect cwr on first frame and then no cwr 
and report that as ECN/RFC3168 - what's the problem? TSO will produce
the exact expected segment sequence.

Is the program that if we re-GRO that frame in SW we end up with
ECN+ACCECN on the same skb?

Reply via email to