On Tue, 6 Mar 2018 17:16:08 -0800 Jesus Sanchez-Palencia <jesus.sanchez-palen...@intel.com> wrote:
> atic int tbs_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) > +{ > + struct rtattr *tb[TCA_TBS_MAX+1]; > + struct tc_tbs_qopt *qopt; > + > + if (opt == NULL) > + return 0; > + > + parse_rtattr_nested(tb, TCA_TBS_MAX, opt); > + > + if (tb[TCA_TBS_PARMS] == NULL) > + return -1; > + > + qopt = RTA_DATA(tb[TCA_TBS_PARMS]); > + if (RTA_PAYLOAD(tb[TCA_TBS_PARMS]) < sizeof(*qopt)) > + return -1; > + > + fprintf(f, "clockid "); > + if (qopt->clockid == CLOCKID_INVALID) > + fprintf(f, "invalid "); > + else > + fprintf(f, "%d ", qopt->clockid); > + > + fprintf(f, "delta %d ", qopt->delta); > + fprintf(f, "offload %s ", (qopt->flags & TC_TBS_OFFLOAD_ON) ? > + "on" : "off"); > + fprintf(f, "sorting %s", (qopt->flags & TC_TBS_SORTING_ON) ? > + "on" : "off"); > + > + return 0; > +} All new print code in iproute2 should support JSON output. Look at other code using json_print.h for simple way to handle this.