aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorWei Wang <weiwan@google.com>2018-07-31 20:46:22 -0400
committerDavid S. Miller <davem@davemloft.net>2018-08-01 12:56:10 -0400
commitfb31c9b9f6c85b1bad569ecedbde78d9e37cd87b (patch)
tree7568903b4ab7b5784169b51d342ffb28ec6e31e2 /net/ipv4/tcp_output.c
parentba113c3aa79a7f941ac162d05a3620bdc985c58d (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.c1
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