aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/tcp.h
diff options
context:
space:
mode:
authorThomas Higdon <tph@fb.com>2019-09-13 23:23:34 +0000
committerDavid S. Miller <davem@davemloft.net>2019-09-16 16:26:11 +0200
commitf9af2dbbfe01def62765a58af7fbc488351893c3 (patch)
tree87f014f2ed384ae68fbab1d470b532135220f7d5 /include/linux/tcp.h
parentnet: mdio: switch to using gpiod_get_optional() (diff)
downloadlinux-dev-f9af2dbbfe01def62765a58af7fbc488351893c3.tar.xz
linux-dev-f9af2dbbfe01def62765a58af7fbc488351893c3.zip
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>
Diffstat (limited to 'include/linux/tcp.h')
-rw-r--r--include/linux/tcp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index f3a85a7fb4b1..99617e528ea2 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -354,6 +354,8 @@ struct tcp_sock {
#define BPF_SOCK_OPS_TEST_FLAG(TP, ARG) 0
#endif
+ u32 rcv_ooopack; /* Received out-of-order packets, for tcpinfo */
+
/* Receiver side RTT estimation */
u32 rcv_rtt_last_tsecr;
struct {