Introduce a new TCP stats to record the number of reordering events seen and expose it in both tcp_info (TCP_INFO) and opt_stats (SOF_TIMESTAMPING_OPT_STATS). Application can use this stats to track the frequency of the reordering events in addition to the existing reordering stats which tracks the magnitude of the latest reordering event. Note: this new stats tracks reordering events triggered by ACKs, which could often be fewer than the actual number of packets being delivered out-of-order.
Showing the changes to include/uapi/linux (1 of 5 files). Show all
Unified · Split
| @@ -239,6 +239,7 @@ struct tcp_info { · 238 unmodified lines | |||
| 239 | __u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */ | 239 | __u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */ |
| 240 | __u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */ | 240 | __u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */ |
| 241 | __u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */ | 241 | __u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */ |
| 242 | __u32 tcpi_reord_seen; /* reordering events seen */ | ||
| 242 | }; | 243 | }; |
| 243 | 244 | ||
| 244 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ | 245 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ |
| @@ -264,6 +265,7 @@ enum { · 19 unmodified lines | |||
| 264 | TCP_NLA_BYTES_SENT, /* Data bytes sent including retransmission */ | 265 | TCP_NLA_BYTES_SENT, /* Data bytes sent including retransmission */ |
| 265 | TCP_NLA_BYTES_RETRANS, /* Data bytes retransmitted */ | 266 | TCP_NLA_BYTES_RETRANS, /* Data bytes retransmitted */ |
| 266 | TCP_NLA_DSACK_DUPS, /* DSACK blocks received */ | 267 | TCP_NLA_DSACK_DUPS, /* DSACK blocks received */ |
| 268 | TCP_NLA_REORD_SEEN, /* reordering events seen */ | ||
| 267 | }; | 269 | }; |
| 268 | 270 | ||
| 269 | /* for TCP_MD5SIG socket option */ | 271 | /* for TCP_MD5SIG socket option */ |