On Mon, Sep 8, 2025 at 10:34 AM chia-yu.chang@nokia-bell-labs.com wrote:
From: Chia-Yu Chang chia-yu.chang@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 ij@kernel.org Signed-off-by: Chia-Yu Chang chia-yu.chang@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;