On Wed, Jan 21, 2026 at 3:32 PM <[email protected]> wrote:
>
> From: Chia-Yu Chang <[email protected]>
>
> Add 2-bit tcpi_ecn_mode feild within tcp_info to indicate which ECN
> mode is negotiated: ECN_MODE_DISABLED, ECN_MODE_RFC3168, ECN_MODE_ACCECN,
> or ECN_MODE_PENDING. This is done by utilizing available bits from
> tcpi_accecn_opt_seen (reduced from 16 bits to 2 bits) and
> tcpi_accecn_fail_mode (reduced from 16 bits to 4 bits).
>
> Also, an extra 24-bit tcpi_options2 field is identified to represent
> newer options and connection features, as all 8 bits of tcpi_options
> field have been used.
>
> Signed-off-by: Chia-Yu Chang <[email protected]>
> Co-developed-by: Neal Cardwell <[email protected]>
> Signed-off-by: Neal Cardwell <[email protected]>
> ---
>
+
> struct tcp_info {
> __u8 tcpi_state;
> __u8 tcpi_ca_state;
> @@ -316,15 +334,17 @@ struct tcp_info {
> * in milliseconds, including any
> * unfinished recovery.
> */
> - __u32 tcpi_received_ce; /* # of CE marks received */
> + __u32 tcpi_received_ce; /* # of CE marked segments received */
> __u32 tcpi_delivered_e1_bytes; /* Accurate ECN byte counters */
> __u32 tcpi_delivered_e0_bytes;
> __u32 tcpi_delivered_ce_bytes;
> __u32 tcpi_received_e1_bytes;
> __u32 tcpi_received_e0_bytes;
> __u32 tcpi_received_ce_bytes;
> - __u16 tcpi_accecn_fail_mode;
> - __u16 tcpi_accecn_opt_seen;
> + __u32 tcpi_ecn_mode:2,
> + tcpi_accecn_opt_seen:2,
> + tcpi_accecn_fail_mode:4,
> + tcpi_options2:24;
> };
I guess this is fine, iproute2 got no support yet for
tcpi_accecn_fail_mode / tcpi_accecn_opt_seen
Reviewed-by: Eric Dumazet <[email protected]>
BTW, are you planning to patch iproute2 misc/ss soon ?