From: Wei Wang <wei...@google.com> This patch series adds 3 RFC4898 stats: 1. tcpEStatsPerfHCDataOctetsOut 2. tcpEStatsPerfOctetsRetrans 3. tcpEStatsStackDSACKDups and an addtional stat to record the number of data packet reordering events seen: 4. tcp_reord_seen
Together with the existing stats, application can use them to measure the retransmission rate in bytes, exclude spurious retransmissions reflected by DSACK, and keep track of the reordering events on live connections. In particular the networks with different MTUs make bytes-based loss stats more useful. Google servers have been using these stats for many years to instrument transport and network performance. Note: The first patch is a refactor to add a helper to calculate opt_stats size in order to make later changes cleaner. Wei Wang (5): tcp: add a helper to calculate size of opt_stats tcp: add data bytes sent stats tcp: add data bytes retransmitted stats tcp: add dsack blocks received stats tcp: add stat of data packet reordering events include/linux/tcp.h | 13 ++++++++++-- include/uapi/linux/tcp.h | 10 ++++++++- net/ipv4/tcp.c | 46 +++++++++++++++++++++++++++++++++++++--- net/ipv4/tcp_input.c | 4 +++- net/ipv4/tcp_output.c | 2 ++ net/ipv4/tcp_recovery.c | 2 +- 6 files changed, 69 insertions(+), 8 deletions(-) -- 2.18.0.345.g5c9ce644c3-goog