[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEA6p_CzWCyk+3rZZEy-BAB9Vn37fxdNOu3v7TmYq0Jm7eyvbQ@mail.gmail.com>
Date: Thu, 29 Nov 2018 09:47:42 -0800
From: Wei Wang <weiwan@...gle.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: David Ahern <dsahern@...il.com>,
Stephen Hemminger <stephen@...workplumber.org>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
Eric Dumazet <eric.dumazet@...il.com>,
Yuchung Cheng <ycheng@...gle.com>,
Neal Cardwell <ncardwell@...gle.com>,
Soheil Hassas Yeganeh <soheil@...gle.com>
Subject: Re: [PATCH iproute2] ss: add support for bytes_sent, bytes_retrans,
dsack_dups and reord_seen
On Thu, Nov 29, 2018 at 2:28 AM Eric Dumazet <edumazet@...gle.com> wrote:
>
> Wei Wang added these fields in linux-4.19
>
> Tested:
>
> ss -ti ...
>
> ts sack cubic wscale:8,8 rto:7 rtt:2.678/0.267 mss:1428 pmtu:1500
> rcvmss:536 advmss:1428 cwnd:91 ssthresh:65
> (*) bytes_sent:17470606104 bytes_retrans:2856
> bytes_acked:17470483297
> segs_out:12234320 segs_in:622983
> data_segs_out:12234318 send 388.2Mbps lastrcv:986784 lastack:1
> pacing_rate 465.8Mbps delivery_rate 162.7Mbps
> delivered:12234235 delivered_ce:3669056
> busy:986784ms unacked:84 retrans:0/2
> (*) dsack_dups:2
> rcv_space:14280 rcv_ssthresh:65535 notsent:2016336 minrtt:0.183
>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Cc: Wei Wang <weiwan@...gle.com>
> Cc: Yuchung Cheng <ycheng@...gle.com>
> Cc: Neal Cardwell <ncardwell@...gle.com>
> Cc: Soheil Hassas Yeganeh <soheil@...gle.com>
> ---
Acked-by: Wei Wang <weiwan@...gle.com>
Thanks Eric.
>
> misc/ss.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/misc/ss.c b/misc/ss.c
> index 3aa94f235085512510dca9fd597e8e37aaaf0fd3..3589ebedc5a0ab0615ba56f3df10d49198bed0d9 100644
> --- a/misc/ss.c
> +++ b/misc/ss.c
> @@ -819,6 +819,8 @@ struct tcpstat {
> unsigned int not_sent;
> unsigned int delivered;
> unsigned int delivered_ce;
> + unsigned int dsack_dups;
> + unsigned int reord_seen;
> double rcv_rtt;
> double min_rtt;
> int rcv_space;
> @@ -826,6 +828,8 @@ struct tcpstat {
> unsigned long long busy_time;
> unsigned long long rwnd_limited;
> unsigned long long sndbuf_limited;
> + unsigned long long bytes_sent;
> + unsigned long long bytes_retrans;
> bool has_ts_opt;
> bool has_sack_opt;
> bool has_ecn_opt;
> @@ -2426,6 +2430,10 @@ static void tcp_stats_print(struct tcpstat *s)
> if (s->ssthresh)
> out(" ssthresh:%d", s->ssthresh);
>
> + if (s->bytes_sent)
> + out(" bytes_sent:%llu", s->bytes_sent);
> + if (s->bytes_retrans)
> + out(" bytes_retrans:%llu", s->bytes_retrans);
> if (s->bytes_acked)
> out(" bytes_acked:%llu", s->bytes_acked);
> if (s->bytes_received)
> @@ -2512,10 +2520,14 @@ static void tcp_stats_print(struct tcpstat *s)
> out(" lost:%u", s->lost);
> if (s->sacked && s->ss.state != SS_LISTEN)
> out(" sacked:%u", s->sacked);
> + if (s->dsack_dups)
> + out(" dsack_dups:%u", s->dsack_dups);
> if (s->fackets)
> out(" fackets:%u", s->fackets);
> if (s->reordering != 3)
> out(" reordering:%d", s->reordering);
> + if (s->reord_seen)
> + out(" reord_seen:%d", s->reord_seen);
> if (s->rcv_rtt)
> out(" rcv_rtt:%g", s->rcv_rtt);
> if (s->rcv_space)
> @@ -2837,6 +2849,10 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
> s.sndbuf_limited = info->tcpi_sndbuf_limited;
> s.delivered = info->tcpi_delivered;
> s.delivered_ce = info->tcpi_delivered_ce;
> + s.dsack_dups = info->tcpi_dsack_dups;
> + s.reord_seen = info->tcpi_reord_seen;
> + s.bytes_sent = info->tcpi_bytes_sent;
> + s.bytes_retrans = info->tcpi_bytes_retrans;
> tcp_stats_print(&s);
> free(s.dctcp);
> free(s.bbr_info);
> --
> 2.20.0.rc0.387.gc7a69e6b6c-goog
>
Powered by blists - more mailing lists