History

tcp: Add TCP_INFO counter for packets received out-of-order

For receive-heavy cases on the server-side, we want to track the connection quality for individual client IPs. This counter, similar to the existing system-wide TCPOFOQueue counter in /proc/net/netstat, tracks out-of-order packet reception. By providing this counter in TCP_INFO, it will allow understanding to what degree receive-heavy sockets are experiencing out-of-order delivery and packet drops indicating congestion. Please note that this is similar to the counter in NetBSD TCP_INFO, and has the same name. Also note that we avoid increasing the size of the tcp_sock struct by taking advantage of a hole.

Thomas Higdon committed 7 years ago

Commit f9af2db1 parent 40ba6a14 files · +7 −0Browse files

Showing the changes to include/uapi/linux (1 of 4 files). Show all

Unified · Split

include/uapi/linux/tcp.h+2−0
@@ -270,6 +270,8 @@ struct tcp_info { · 269 unmodified lines
270270 __u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */
271271 __u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */
272272 __u32 tcpi_reord_seen; /* reordering events seen */
273+
274+ __u32 tcpi_rcv_ooopack; /* Out-of-order packets received */
273275 };
274276
275277 /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */