On 11/6/25 12:06 PM, Paolo Abeni wrote:
> On 10/30/25 3:34 PM, [email protected] wrote:
>> From: Chia-Yu Chang <[email protected]>
>>
>> No functional changes.
>>
>> Co-developed-by: Ilpo Järvinen <[email protected]>
>> Signed-off-by: Ilpo Järvinen <[email protected]>
>> Signed-off-by: Chia-Yu Chang <[email protected]>
>> ---
>>  include/linux/skbuff.h | 13 ++++++++++++-
>>  1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
>> index a7cc3d1f4fd1..74d6a209e203 100644
>> --- a/include/linux/skbuff.h
>> +++ b/include/linux/skbuff.h
>> @@ -671,7 +671,12 @@ 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. This cannot be
>> +     * used on Rx, because the connection to which the segment belongs is
>> +     * not tracked to use RFC3168 or Accurate ECN, and using RFC3168 ECN
>> +     * offload may corrupt AccECN signal of AccECN segments.
>> +     */
> 
> The intended difference between RX and TX sounds bad to me; I think it
> conflicts with the basic GRO design goal of making aggregated and
> re-segmented traffic indistinguishable from the original stream. Also
> what about forwarded packet?

Uhm... I missed completely the point that SKB_GSO_TCP_ECN is TX path
only, i.e. GRO never produces aggregated SKB_GSO_TCP_ECN packets. Except
virtio_net uses it in the RX path ( virtio_net_hdr_to_skb ). Please
clarify the statement accordingly.

/P



Reply via email to