diff options
author | Wei Wang <weiwan@google.com> | 2018-07-31 20:46:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-08-01 12:56:10 -0400 |
commit | fb31c9b9f6c85b1bad569ecedbde78d9e37cd87b (patch) | |
tree | 7568903b4ab7b5784169b51d342ffb28ec6e31e2 /net/ipv4/tcp_output.c | |
parent | ba113c3aa79a7f941ac162d05a3620bdc985c58d (diff) |
tcp: add data bytes retransmitted stats
Introduce a new TCP stat to record the number of bytes retransmitted
(RFC4898 tcpEStatsPerfOctetsRetrans) and expose it in both tcp_info
(TCP_INFO) and opt_stats (SOF_TIMESTAMPING_OPT_STATS).
Signed-off-by: Wei Wang <weiwan@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 861531fe0e97..50cabf7656f3 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -2871,6 +2871,7 @@ int __tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb, int segs) | |||
2871 | if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_SYN) | 2871 | if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_SYN) |
2872 | __NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPSYNRETRANS); | 2872 | __NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPSYNRETRANS); |
2873 | tp->total_retrans += segs; | 2873 | tp->total_retrans += segs; |
2874 | tp->bytes_retrans += skb->len; | ||
2874 | 2875 | ||
2875 | /* make sure skb->data is aligned on arches that require it | 2876 | /* make sure skb->data is aligned on arches that require it |
2876 | * and check if ack-trimming & collapsing extended the headroom | 2877 | * and check if ack-trimming & collapsing extended the headroom |