]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ss: group DCTCP socket statistics
authorHagen Paul Pfeifer <hagen@jauu.net>
Tue, 24 Feb 2015 21:24:51 +0000 (22:24 +0100)
committerStephen Hemminger <shemming@brocade.com>
Tue, 24 Feb 2015 23:59:44 +0000 (15:59 -0800)
Keep ss output consistent and format DCTCP socket statistics similar to skmen
and timer where a group of logical values are grouped by brackets. This makes
parser scripts *and* humans more happy.

Current output of 'ss -inetm dst :80':
ESTAB       0      0 192.168.11.14:55511 173.194.66.189:443
        timer:(keepalive,14sec,0) uid:1000 ino:428768
        sk:ffff88020ceb5b00 <-> skmem:(r0,rb372480,t0,tb87040,f0,w0,o0,bl0)
        ts sack wscale:7,7 rto:250 rtt:49.225/20.837 ato:40 mss:1408 cwnd:10
        ce_state 23 alpha 23 ab_ecn 23 ab_tot 23 send 2.3Mbps
        lastsnd:121026 lastrcv:121026 lastack:30850 pacing_rate 4.6Mbps
        retrans:0/2 rcv_rtt:40.416 rcv_space:2920

New grouped output:
ESTAB       0      0 192.168.11.14:55511 173.194.66.189:443
        timer:(keepalive,14sec,0) uid:1000 ino:428768
        sk:ffff88020ceb5b00 <-> skmem:(r0,rb372480,t0,tb87040,f0,w0,o0,bl0)
        ts sack wscale:7,7 rto:250 rtt:49.225/20.837 ato:40 mss:1408 cwnd:10
        dctcp(ce_state:23,alpha:23,ab_ecn:23,ab_tot:23) send 2.3Mbps
        lastsnd:121026 lastrcv:121026 lastack:30850 pacing_rate 4.6Mbps
        retrans:0/2 rcv_rtt:40.416 rcv_space:2920

Cc: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
misc/ss.c

index 5113d85cfc02cda0623ea5f9c2b8434b32ea409d..21a4366a7db0b03637ac49b8004cfa9123a4bc8a 100644 (file)
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -1680,11 +1680,11 @@ static void tcp_stats_print(struct tcpstat *s)
        if (s->dctcp && s->dctcp->enabled) {
                struct dctcpstat *dctcp = s->dctcp;
 
-               printf(" ce_state %u alpha %u ab_ecn %u ab_tot %u",
+               printf("dctcp:(ce_state:%u,alpha:%u,ab_ecn:%u,ab_tot:%u)",
                                dctcp->ce_state, dctcp->alpha, dctcp->ab_ecn,
                                dctcp->ab_tot);
        } else if (s->dctcp) {
-               printf(" fallback_mode");
+               printf("dctcp:fallback_mode");
        }
 
        if (s->send_bps)