tcp: Add TCP_INFO counter for packets received out-of-order
authorThomas Higdon <tph@fb.com>
Fri, 13 Sep 2019 23:23:34 +0000 (23:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Sep 2019 14:26:11 +0000 (16:26 +0200)
commitf9af2dbbfe01def62765a58af7fbc488351893c3
tree87f014f2ed384ae68fbab1d470b532135220f7d5
parent40ba6a12a5488e0fbcfae2f21a4f62bdb02d44d3
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.

Signed-off-by: Thomas Higdon <tph@fb.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/tcp.h
include/uapi/linux/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_input.c