]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
tc: prio: JSON-ify prio output
authorJakub Kicinski <jakub.kicinski@netronome.com>
Fri, 26 Jan 2018 19:27:57 +0000 (11:27 -0800)
committerDavid Ahern <dsahern@gmail.com>
Fri, 26 Jan 2018 21:00:18 +0000 (13:00 -0800)
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>
tc/q_prio.c

index 358cf06cca0a3f42d5e2647f8fdd750fdd16e1e0..8ef7cfa260d5bf5a3363a65035247e3ff1c7880a 100644 (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;
 }