On Thu, Nov 29, 2018 at 2:28 AM Eric Dumazet <eduma...@google.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 <eduma...@google.com> > Cc: Wei Wang <wei...@google.com> > Cc: Yuchung Cheng <ych...@google.com> > Cc: Neal Cardwell <ncardw...@google.com> > Cc: Soheil Hassas Yeganeh <soh...@google.com> > ---
Acked-by: Wei Wang <wei...@google.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 >