Message ID | 20191203154701.187275-1-edumazet@google.com |
---|---|
State | Accepted |
Delegated to: | stephen hemminger |
Headers | show |
Series | [iproute2] tc_util: support TCA_STATS_PKT64 attribute | expand |
On Tue, 3 Dec 2019 07:47:01 -0800 Eric Dumazet <edumazet@google.com> wrote: > Kernel exports 64bit packet counters for qdisc/class stats in linux-5.5 > > Tested: > > $ tc -s -d qd sh dev eth1 | grep pkt > Sent 4041158922097 bytes 46393862190 pkt (dropped 0, overlimits 0 requeues 2072) > Sent 501362903764 bytes 5762621697 pkt (dropped 0, overlimits 0 requeues 247) > Sent 533282357858 bytes 6128246542 pkt (dropped 0, overlimits 0 requeues 329) > Sent 515878280709 bytes 5875638916 pkt (dropped 0, overlimits 0 requeues 267) > Sent 516221011694 bytes 5933395197 pkt (dropped 0, overlimits 0 requeues 258) > Sent 513175109761 bytes 5898402114 pkt (dropped 0, overlimits 0 requeues 231) > Sent 480207942964 bytes 5519535407 pkt (dropped 0, overlimits 0 requeues 229) > Sent 483111196765 bytes 5552917950 pkt (dropped 0, overlimits 0 requeues 240) > Sent 497920120322 bytes 5723104387 pkt (dropped 0, overlimits 0 requeues 271) > $ tc -s -d cl sh dev eth1 | grep pkt > Sent 513196316238 bytes 5898645862 pkt (dropped 0, overlimits 0 requeues 231) > Sent 533304444981 bytes 6128500406 pkt (dropped 0, overlimits 0 requeues 329) > Sent 480227709687 bytes 5519762597 pkt (dropped 0, overlimits 0 requeues 229) > Sent 501383660279 bytes 5762860276 pkt (dropped 0, overlimits 0 requeues 247) > Sent 483131168192 bytes 5553147506 pkt (dropped 0, overlimits 0 requeues 240) > Sent 515899485505 bytes 5875882649 pkt (dropped 0, overlimits 0 requeues 267) > Sent 497940747031 bytes 5723341475 pkt (dropped 0, overlimits 0 requeues 271) > Sent 516242376893 bytes 5933640774 pkt (dropped 0, overlimits 0 requeues 258) > > Signed-off-by: Eric Dumazet <edumazet@google.com> > --- > tc/tc_util.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) Applied.
diff --git a/tc/tc_util.c b/tc/tc_util.c index afdfc78f2e5b11af178bdf1db540d917b1f457f3..23115f9b950a8786453fad25be4244ff7c3bdd76 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -809,11 +809,18 @@ void print_tcstats2_attr(FILE *fp, struct rtattr *rta, char *prefix, struct rtat if (tbs[TCA_STATS_BASIC]) { struct gnet_stats_basic bs = {0}; + __u64 packets64 = 0; + + if (tbs[TCA_STATS_PKT64]) + packets64 = rta_getattr_u64(tbs[TCA_STATS_PKT64]); memcpy(&bs, RTA_DATA(tbs[TCA_STATS_BASIC]), MIN(RTA_PAYLOAD(tbs[TCA_STATS_BASIC]), sizeof(bs))); print_string(PRINT_FP, NULL, "%s", prefix); print_lluint(PRINT_ANY, "bytes", "Sent %llu bytes", bs.bytes); - print_uint(PRINT_ANY, "packets", " %u pkt", bs.packets); + if (packets64) + print_lluint(PRINT_ANY, "packets", " %llu pkt", packets64); + else + print_uint(PRINT_ANY, "packets", " %u pkt", bs.packets); } if (tbs[TCA_STATS_QUEUE]) {
Kernel exports 64bit packet counters for qdisc/class stats in linux-5.5 Tested: $ tc -s -d qd sh dev eth1 | grep pkt Sent 4041158922097 bytes 46393862190 pkt (dropped 0, overlimits 0 requeues 2072) Sent 501362903764 bytes 5762621697 pkt (dropped 0, overlimits 0 requeues 247) Sent 533282357858 bytes 6128246542 pkt (dropped 0, overlimits 0 requeues 329) Sent 515878280709 bytes 5875638916 pkt (dropped 0, overlimits 0 requeues 267) Sent 516221011694 bytes 5933395197 pkt (dropped 0, overlimits 0 requeues 258) Sent 513175109761 bytes 5898402114 pkt (dropped 0, overlimits 0 requeues 231) Sent 480207942964 bytes 5519535407 pkt (dropped 0, overlimits 0 requeues 229) Sent 483111196765 bytes 5552917950 pkt (dropped 0, overlimits 0 requeues 240) Sent 497920120322 bytes 5723104387 pkt (dropped 0, overlimits 0 requeues 271) $ tc -s -d cl sh dev eth1 | grep pkt Sent 513196316238 bytes 5898645862 pkt (dropped 0, overlimits 0 requeues 231) Sent 533304444981 bytes 6128500406 pkt (dropped 0, overlimits 0 requeues 329) Sent 480227709687 bytes 5519762597 pkt (dropped 0, overlimits 0 requeues 229) Sent 501383660279 bytes 5762860276 pkt (dropped 0, overlimits 0 requeues 247) Sent 483131168192 bytes 5553147506 pkt (dropped 0, overlimits 0 requeues 240) Sent 515899485505 bytes 5875882649 pkt (dropped 0, overlimits 0 requeues 267) Sent 497940747031 bytes 5723341475 pkt (dropped 0, overlimits 0 requeues 271) Sent 516242376893 bytes 5933640774 pkt (dropped 0, overlimits 0 requeues 258) Signed-off-by: Eric Dumazet <edumazet@google.com> --- tc/tc_util.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)