On Mon, Sep 8, 2025 at 10:34 AM <chia-yu.ch...@nokia-bell-labs.com> wrote: > > From: Chia-Yu Chang <chia-yu.ch...@nokia-bell-labs.com> > > AccECN option may fail in various way, handle these: > - Attempt to negotiate the use of AccECN on the 1st retransmitted SYN > - From the 2nd retransmitted SYN, stop AccECN negotiation > - Remove option from SYN/ACK rexmits to handle blackholes > - If no option arrives in SYN/ACK, assume Option is not usable > - If an option arrives later, re-enabled > - If option is zeroed, disable AccECN option processing > > This patch use existing padding bits in tcp_request_sock and > holes in tcp_sock without increasing the size. > > Signed-off-by: Ilpo Järvinen <i...@kernel.org> > Signed-off-by: Chia-Yu Chang <chia-yu.ch...@nokia-bell-labs.com> >
... > diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h > index 53e0e85b52be..00604b7f2f3f 100644 > --- a/include/uapi/linux/tcp.h > +++ b/include/uapi/linux/tcp.h > @@ -316,6 +316,8 @@ struct tcp_info { > * in milliseconds, including any > * unfinished recovery. > */ > + __u16 tcpi_accecn_fail_mode; > + __u16 tcpi_accecn_opt_seen; We never add fields in the middle of tcp_info , even in a patch series. Some people might miss this rule in the future, by looking at a patch doing this, and repeating the mistake... > __u32 tcpi_received_ce; /* # of CE marks received */ > __u32 tcpi_delivered_e1_bytes; /* Accurate ECN byte counters */ > __u32 tcpi_delivered_e0_bytes;