> -----Original Message----- > From: Paolo Abeni <[email protected]> > Sent: Wednesday, November 19, 2025 11:40 AM > To: Chia-Yu Chang (Nokia) <[email protected]>; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; Koen De Schepper (Nokia) > <[email protected]>; [email protected]; > [email protected]; [email protected]; cheshire > <[email protected]>; [email protected]; [email protected]; Vidhi Goel > <[email protected]> > Subject: Re: [PATCH v6 net-next 03/14] net: update commnets for > SKB_GSO_TCP_ECN and SKB_GSO_TCP_ACCECN > > > CAUTION: This is an external email. Please be very careful when clicking > links or opening attachments. See the URL nok.it/ext for additional > information. > > > > On 11/19/25 11:24 AM, Chia-Yu Chang (Nokia) wrote: > > I was thinking to totally remove ECN from Rx path, > > ??? do you mean you intend to remove the existing virtio_net ECN support? I > guess/hope I misread the above. > > Note that removing features from virtio_net is an extreme pain at best, and > more probably simply impossible - see the UFO removal history. > > Please clarify, thanks! > > Paolo
This ECN flag on RX path shall not be used in Rx path for forwarding scenario. But it can still be used on Tx path in virtio_net. And on RX path, new ACCECN flag shall be used to avoid breaking CWR flag for latter GSO Tx in forwarding scenario. Let me borrow an example from Ilpo: SKB_GSO_TCP_ECN will not replicate the same TCP header flags in a forwarding scenario: Segment 1 CWR set Segment 2 CWR set GRO rx and GSO tx with SKB_GSO_TCP_ECN, after forwarding outputs these segments: Segment 1 CWR set Segment 2 CWR cleared Thus, the ACE field in Segment 2 no longer contains the same value as it was sent with. So, maybe a table below better represent this? +===============+======================+===========================+ | | SKB_GSO_TCP_ECN | SKB_GSO_TCP_ACCECN | +===============+======================+===========================+ | | The 1st TCP segment | The TCP segment uses | | Tx path | has CWR set and | the CWR flag as part of | | | suqsequent segments | ACE signal, and the CWR | | | have CWR cleared. | flag is not modified. | +---------------+----------------------+---------------------------+ | Rx path | Shall not be used to | Used to indicate latter | | of forwarding | avoid potential ACE | GSO Tx NOT to clear CWR | | scenario | signal corruption. | flag from the 2nd segment | +===============+======================+===========================+ Chia-Yu
