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 <jakub.kicinski@netronome.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
Jakub Kicinski 2018-01-26 11:27:57 -08:00 committed by David Ahern
parent 097415d510
commit c061b75895
1 changed files with 8 additions and 4 deletions

View File

@ -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;
}