From: Eric Dumazet <edumazet@google.com>
To: David Ahern <dsahern@gmail.com>,
Stephen Hemminger <stephen@networkplumber.org>
Cc: netdev <netdev@vger.kernel.org>,
Eric Dumazet <edumazet@google.com>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: [PATCH iproute2] tc_util: support TCA_STATS_PKT64 attribute
Date: Tue, 3 Dec 2019 07:47:01 -0800 [thread overview]
Message-ID: <20191203154701.187275-1-edumazet@google.com> (raw)
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(-)
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]) {
--
2.24.0.393.g34dc348eaf-goog
next reply other threads:[~2019-12-03 15:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-03 15:47 Eric Dumazet [this message]
2019-12-04 18:58 ` [PATCH iproute2] tc_util: support TCA_STATS_PKT64 attribute Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191203154701.187275-1-edumazet@google.com \
--to=edumazet@google.com \
--cc=dsahern@gmail.com \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).