diff options
author | Stephen Hemminger <stephen@networkplumber.org> | 2024-03-11 12:26:35 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2024-03-13 10:07:33 -0700 |
commit | fc4226d2475ad0acb201d388a93d3892320a6878 (patch) | |
tree | 129130298ffe4aec75c4ef13d9c549e7c9f8848d /tc | |
parent | f31afe64d6d8ce8c722c95a25a9146d0deceed59 (diff) |
tc: support JSON for legacy stats
The extended stats already supported JSON output, add to the
legacy stats as well.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'tc')
-rw-r--r-- | tc/tc_util.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/tc/tc_util.c b/tc/tc_util.c index c293643d..a347a2d5 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -799,28 +799,30 @@ void print_tcstats_attr(FILE *fp, struct rtattr *tb[], const char *prefix, memcpy(&st, RTA_DATA(tb[TCA_STATS]), MIN(RTA_PAYLOAD(tb[TCA_STATS]), sizeof(st))); - fprintf(fp, - "%sSent %llu bytes %u pkts (dropped %u, overlimits %u) ", - prefix, (unsigned long long)st.bytes, - st.packets, st.drops, st.overlimits); + print_string(PRINT_FP, NULL, "%s", prefix); + print_lluint(PRINT_ANY, "bytes", "Sent %llu bytes", + (unsigned long long)st.bytes); + print_uint(PRINT_ANY, "packets", " %u pkts", st.packets); + print_uint(PRINT_ANY, "dropped", " (dropped %u,", st.drops); + print_uint(PRINT_ANY, "overlimits", " overlimits %u) ", st.overlimits); if (st.bps || st.pps || st.qlen || st.backlog) { - fprintf(fp, "\n%s", prefix); + print_nl(); + print_string(PRINT_FP, NULL, "%s", prefix); + if (st.bps || st.pps) { - fprintf(fp, "rate "); + print_string(PRINT_FP, NULL, "rate ", NULL); if (st.bps) - tc_print_rate(PRINT_FP, NULL, "%s ", - st.bps); + tc_print_rate(PRINT_ANY, "rate", "%s ", st.bps); if (st.pps) - fprintf(fp, "%upps ", st.pps); + print_uint(PRINT_ANY, "pps", "%upps ", st.pps); } if (st.qlen || st.backlog) { - fprintf(fp, "backlog "); + print_string(PRINT_FP, NULL, "backlog ", NULL); if (st.backlog) - print_size(PRINT_FP, NULL, "%s ", - st.backlog); + print_size(PRINT_ANY, "backlog", "%s ", st.backlog); if (st.qlen) - fprintf(fp, "%up ", st.qlen); + print_uint(PRINT_ANY, "qlen", "%up ", st.qlen); } } } |