]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
ss: add more tcp socket diagnostics
authorEric Dumazet <edumazet@google.com>
Wed, 1 Oct 2014 11:17:18 +0000 (04:17 -0700)
committerStephen Hemminger <shemming@brocade.com>
Thu, 9 Oct 2014 15:24:01 +0000 (08:24 -0700)
Display 4 additional tcp socket info fields :

backoff : exponential backoff
lastsnd : time in milli second since last send
lastrcv : time in milli second since last receive
lastack : time in milli second since last acknowledgement

$ ss -ti dst :22
State       Recv-Q Send-Q                  Local Address:Port
Peer Address:Port
ESTAB       0      0                        172.16.5.1:58470
172.17.131.143:ssh
 cubic wscale:7,7 rto:228 rtt:30/20 ato:40 mss:1256 cwnd:6 ssthresh:4
send 2.0Mbps lastsnd:3480 lastrcv:3464 lastack:3464 rcv_rtt:81.5
rcv_space:87812

Signed-off-by: Eric Dumazet <edumazet@google.com>
misc/ss.c

index c8479545d1068186d992e1cb8f995e22d0cc71b8..2420b51dd4c444392f02d3ea6611015d72eaad0a 100644 (file)
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -1554,6 +1554,8 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
                               info->tcpi_rcv_wscale);
                if (info->tcpi_rto && info->tcpi_rto != 3000000)
                        printf(" rto:%g", (double)info->tcpi_rto/1000);
+               if (info->tcpi_backoff)
+                       printf(" backoff:%u", info->tcpi_backoff);
                if (info->tcpi_rtt)
                        printf(" rtt:%g/%g", (double)info->tcpi_rtt/1000,
                               (double)info->tcpi_rttvar/1000);
@@ -1583,6 +1585,15 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
                                         / rtt));
                }
 
+               if (info->tcpi_last_data_sent)
+                       printf(" lastsnd:%u", info->tcpi_last_data_sent);
+
+               if (info->tcpi_last_data_recv)
+                       printf(" lastrcv:%u", info->tcpi_last_data_recv);
+
+               if (info->tcpi_last_ack_recv)
+                       printf(" lastack:%u", info->tcpi_last_ack_recv);
+
                if (info->tcpi_pacing_rate &&
                    info->tcpi_pacing_rate != ~0ULL) {
                        printf(" pacing_rate %sbps",