[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221210034648.90592-1-stephen@networkplumber.org>
Date: Fri, 9 Dec 2022 19:46:48 -0800
From: Stephen Hemminger <stephen@...workplumber.org>
To: netdev@...r.kernel.org
Cc: Stephen Hemminger <stephen@...workplumber.org>
Subject: [PATCH] iplink: support JSON in MPLS output
The MPLS statistics did not support oneline or JSON
in current code.
Fixes: 837552b445f5 ("iplink: add support for afstats subcommand")
Signed-off-by: Stephen Hemminger <stephen@...workplumber.org>
---
ip/iplink.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/ip/iplink.c b/ip/iplink.c
index adb9524c3b93..b8a5284febfb 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -1570,7 +1570,7 @@ void print_mpls_link_stats(FILE *fp, const struct mpls_link_stats *stats,
print_num(fp, cols[2], stats->rx_errors);
print_num(fp, cols[3], stats->rx_dropped);
print_num(fp, cols[4], stats->rx_noroute);
- fprintf(fp, "\n");
+ print_nl();
fprintf(fp, "%sTX: %*s %*s %*s %*s%s", indent,
cols[0] - 4, "bytes", cols[1], "packets",
@@ -1594,9 +1594,11 @@ static void print_mpls_stats(FILE *fp, struct rtattr *attr)
return;
stats = RTA_DATA(mrtb[MPLS_STATS_LINK]);
- fprintf(fp, " mpls:\n");
+ print_string(PRINT_FP, NULL, " mpls:", NULL);
+ print_nl();
print_mpls_link_stats(fp, stats, " ");
- fprintf(fp, "\n");
+ print_string(PRINT_FP, NULL, "%s", "\n");
+ fflush(fp);
}
static void print_af_stats_attr(FILE *fp, int ifindex, struct rtattr *attr)
@@ -1612,8 +1614,12 @@ static void print_af_stats_attr(FILE *fp, int ifindex, struct rtattr *attr)
continue;
if (!if_printed) {
- fprintf(fp, "%u: %s\n", ifindex,
- ll_index_to_name(ifindex));
+ print_uint(PRINT_ANY, "ifindex",
+ "%u:", ifindex);
+ print_color_string(PRINT_ANY, COLOR_IFNAME,
+ "ifname", "%s",
+ ll_index_to_name(ifindex));
+ print_nl();
if_printed = true;
}
@@ -1696,6 +1702,8 @@ static int iplink_afstats(int argc, char **argv)
}
}
+ new_json_obj(json);
+
if (rtnl_statsdump_req_filter(&rth, AF_UNSPEC, filt_mask,
NULL, NULL) < 0) {
perror("Cannont send dump request");
@@ -1707,6 +1715,7 @@ static int iplink_afstats(int argc, char **argv)
return 1;
}
+ delete_json_obj();
return 0;
}
--
2.35.1
Powered by blists - more mailing lists