From: Jakub Kicinski Date: Fri, 26 Jan 2018 19:27:57 +0000 (-0800) Subject: tc: prio: JSON-ify prio output X-Git-Tag: v4.16.0~76 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c061b75895870010ea38979760dfb6806dd6fcbd;p=thirdparty%2Fiproute2.git tc: prio: JSON-ify prio output Make JSON output work with prio Qdiscs. This will also make other qdiscs which reuse the print_qopt work, like mqprio or pfifo_fast. Note that there is a double space between "priomap" and first prio number. Keep this original behaviour. Signed-off-by: Jakub Kicinski Signed-off-by: David Ahern --- diff --git a/tc/q_prio.c b/tc/q_prio.c index 358cf06cc..8ef7cfa26 100644 --- a/tc/q_prio.c +++ b/tc/q_prio.c @@ -107,13 +107,17 @@ int prio_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) sizeof(*qopt))) return -1; - fprintf(f, "bands %u priomap ", qopt->bands); + print_uint(PRINT_ANY, "bands", "bands %u ", qopt->bands); + open_json_array(PRINT_ANY, "priomap "); for (i = 0; i <= TC_PRIO_MAX; i++) - fprintf(f, " %d", qopt->priomap[i]); + print_uint(PRINT_ANY, NULL, " %d", qopt->priomap[i]); + close_json_array(PRINT_ANY, ""); if (tb[TCA_PRIO_MQ]) - fprintf(f, " multiqueue: %s ", - rta_getattr_u8(tb[TCA_PRIO_MQ]) ? "on" : "off"); + print_string(PRINT_FP, NULL, " multiqueue: %s ", + rta_getattr_u8(tb[TCA_PRIO_MQ]) ? "on" : "off"); + print_bool(PRINT_JSON, "multiqueue", NULL, + tb[TCA_PRIO_MQ] && rta_getattr_u8(tb[TCA_PRIO_MQ])); return 0; }