diff --git a/bridge/bridge.c b/bridge/bridge.c index 389f1bd5..a3d8154b 100644 --- a/bridge/bridge.c +++ b/bridge/bridge.c @@ -171,9 +171,9 @@ main(int argc, char **argv) NEXT_ARG(); if (netns_switch(argv[1])) exit(-1); - } else if (matches_color(opt, &color)) { } else if (matches(opt, "-compressvlans") == 0) { ++compress_vlans; + } else if (matches_color(opt, &color)) { } else if (matches(opt, "-force") == 0) { ++force; } else if (matches(opt, "-json") == 0) { diff --git a/ip/ipl2tp.c b/ip/ipl2tp.c index 4308b591..f699b258 100644 --- a/ip/ipl2tp.c +++ b/ip/ipl2tp.c @@ -302,10 +302,11 @@ static void print_session(struct l2tp_data *data) print_uint(PRINT_FP, "peer_offset", " peer offset %u\n", 0); if (p->cookie_len > 0) - print_cookie("cookie", "cookie", + print_cookie("cookie", " cookie %s", p->cookie, p->cookie_len); + if (p->peer_cookie_len > 0) - print_cookie("peer_cookie", "peer cookie", + print_cookie("peer_cookie", " peer cookie %s", p->peer_cookie, p->peer_cookie_len); if (p->reorder_timeout != 0) diff --git a/man/man8/ip-route.8.in b/man/man8/ip-route.8.in index e11fba92..a664d848 100644 --- a/man/man8/ip-route.8.in +++ b/man/man8/ip-route.8.in @@ -187,7 +187,8 @@ throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]" .ti -8 .IR ENCAP " := [ " -.IR MPLS " | " IP " | " BPF " | " SEG6 " | " SEG6LOCAL " ] " +.IR ENCAP_MPLS " | " ENCAP_IP " | " ENCAP_BPF " | " +.IR ENCAP_SEG6 " | " ENCAP_SEG6LOCAL " ] " .ti -8 .IR ENCAP_MPLS " := " diff --git a/man/man8/rdma-dev.8 b/man/man8/rdma-dev.8 index 7c275180..069f4717 100644 --- a/man/man8/rdma-dev.8 +++ b/man/man8/rdma-dev.8 @@ -62,6 +62,7 @@ Renames the mlx5_3 device to rdma_0. .SH SEE ALSO .BR rdma (8), .BR rdma-link (8), +.BR rdma-resource (8), .br .SH AUTHOR diff --git a/man/man8/rdma-link.8 b/man/man8/rdma-link.8 index 97dd8bb9..bddf3474 100644 --- a/man/man8/rdma-link.8 +++ b/man/man8/rdma-link.8 @@ -49,6 +49,7 @@ Shows the state of specified rdma link. .SH SEE ALSO .BR rdma (8), .BR rdma-dev (8), +.BR rdma-resource (8), .br .SH AUTHOR diff --git a/man/man8/rdma.8 b/man/man8/rdma.8 index 12aa149b..b2b5aef8 100644 --- a/man/man8/rdma.8 +++ b/man/man8/rdma.8 @@ -106,6 +106,7 @@ Exit status is 0 if command was successful or a positive integer upon failure. .SH SEE ALSO .BR rdma-dev (8), .BR rdma-link (8), +.BR rdma-resource (8), .br .SH REPORTING BUGS diff --git a/misc/ss.c b/misc/ss.c index e4d6ae48..3589ebed 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -817,6 +817,10 @@ struct tcpstat { unsigned int fackets; unsigned int reordering; 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; @@ -824,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; @@ -2424,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) @@ -2483,6 +2493,10 @@ static void tcp_stats_print(struct tcpstat *s) if (s->delivery_rate) out(" delivery_rate %sbps", sprint_bw(b1, s->delivery_rate)); + if (s->delivered) + out(" delivered:%u", s->delivered); + if (s->delivered_ce) + out(" delivered_ce:%u", s->delivered_ce); if (s->app_limited) out(" app_limited"); @@ -2506,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) @@ -2829,6 +2847,12 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r, s.busy_time = info->tcpi_busy_time; s.rwnd_limited = info->tcpi_rwnd_limited; 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); diff --git a/misc/ssfilter.y b/misc/ssfilter.y index 0413ddda..a901ae75 100644 --- a/misc/ssfilter.y +++ b/misc/ssfilter.y @@ -54,10 +54,6 @@ null: /* NOTHING */ { $$ = NULL; } ; exprlist: expr - | '!' expr - { - $$ = alloc_node(SSF_NOT, $2); - } | exprlist '|' expr { $$ = alloc_node(SSF_OR, $1); @@ -83,6 +79,10 @@ expr: '(' exprlist ')' { $$ = $2; } + | '!' expr + { + $$ = alloc_node(SSF_NOT, $2); + } | DCOND eq HOSTCOND { $$ = alloc_node(SSF_DCOND, $3); diff --git a/tc/tc_util.c b/tc/tc_util.c index 82856a85..ab717890 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -838,8 +838,9 @@ void print_tcstats2_attr(FILE *fp, struct rtattr *rta, char *prefix, struct rtat memcpy(&q, RTA_DATA(tbs[TCA_STATS_QUEUE]), MIN(RTA_PAYLOAD(tbs[TCA_STATS_QUEUE]), sizeof(q))); if (!tbs[TCA_STATS_RATE_EST]) - print_string(PRINT_FP, NULL, "\n%s", prefix); + print_string(PRINT_FP, NULL, "\n", ""); print_uint(PRINT_JSON, "backlog", NULL, q.backlog); + print_string(PRINT_FP, NULL, "%s", prefix); print_string(PRINT_FP, NULL, "backlog %s", sprint_size(q.backlog, b1)); print_uint(PRINT_ANY, "qlen", " %up", q.qlen);