]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
misc/ss: tcp cwnd should be unsigned
authorHangbin Liu <liuhangbin@gmail.com>
Thu, 22 Sep 2016 08:40:28 +0000 (16:40 +0800)
committerStephen Hemminger <stephen@networkplumber.org>
Thu, 22 Sep 2016 23:38:22 +0000 (16:38 -0700)
tcp->snd_cwd is a u32, but ss treats it like a signed int. This may
results in negative bandwidth calculations.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Phil Sutter <phil@nwl.cc>
misc/ss.c

index 7f8453418fae5882c9e758dcb068857563b1ab5c..dd77b8153b6da4b0ccf368ada378c02d8ab8ced7 100644 (file)
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -755,11 +755,12 @@ struct tcpstat {
        int                 probes;
        char                cong_alg[16];
        double              rto, ato, rtt, rttvar;
-       int                 qack, cwnd, ssthresh, backoff;
+       int                 qack, ssthresh, backoff;
        double              send_bps;
        int                 snd_wscale;
        int                 rcv_wscale;
        int                 mss;
+       unsigned int        cwnd;
        unsigned int        lastsnd;
        unsigned int        lastrcv;
        unsigned int        lastack;
@@ -1805,7 +1806,7 @@ static void tcp_stats_print(struct tcpstat *s)
        if (s->mss)
                printf(" mss:%d", s->mss);
        if (s->cwnd)
-               printf(" cwnd:%d", s->cwnd);
+               printf(" cwnd:%u", s->cwnd);
        if (s->ssthresh)
                printf(" ssthresh:%d", s->ssthresh);
 
@@ -1924,7 +1925,7 @@ static int tcp_show_line(char *line, const struct filter *f, int family)
                return 0;
 
        opt[0] = 0;
-       n = sscanf(data, "%x %x:%x %x:%x %x %d %d %u %d %llx %d %d %d %d %d %[^\n]\n",
+       n = sscanf(data, "%x %x:%x %x:%x %x %d %d %u %d %llx %d %d %d %u %d %[^\n]\n",
                   &s.ss.state, &s.ss.wq, &s.ss.rq,
                   &s.timer, &s.timeout, &s.retrans, &s.ss.uid, &s.probes,
                   &s.ss.ino, &s.ss.refcnt, &s.ss.sk, &rto, &ato, &s.qack, &s.cwnd,