> -----Original Message----- > From: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> > Sent: Monday, March 17, 2025 2:36 PM > To: Chia-Yu Chang (Nokia) <chia-yu.chang@xxxxxxxxxxxxxxxxxxx> > Cc: netdev@xxxxxxxxxxxxxxx; dave.taht@xxxxxxxxx; pabeni@xxxxxxxxxx; jhs@xxxxxxxxxxxx; kuba@xxxxxxxxxx; xiyou.wangcong@xxxxxxxxx; jiri@xxxxxxxxxxx; davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; horms@xxxxxxxxxx; andrew+netdev@xxxxxxx; donald.hunter@xxxxxxxxx; ast@xxxxxxxxxxx; liuhangbin@xxxxxxxxx; shuah@xxxxxxxxxx; linux-kselftest@xxxxxxxxxxxxxxx; ij@xxxxxxxxxx; ncardwell@xxxxxxxxxx; Koen De Schepper (Nokia) <koen.de_schepper@xxxxxxxxxxxxxxxxxxx>; g.white <g.white@xxxxxxxxxxxxx>; ingemar.s.johansson@xxxxxxxxxxxx; mirja.kuehlewind@xxxxxxxxxxxx; cheshire@xxxxxxxxx; rs.ietf@xxxxxx; Jason_Livingood@xxxxxxxxxxx; vidhi_goel <vidhi_goel@xxxxxxxxx>; Olga Albisser <olga@xxxxxxxxxxxx>; Olivier Tilmans (Nokia) <olivier.tilmans@xxxxxxxxx>; Bob Briscoe <research@xxxxxxxxxxxxxx>; Henrik Steen <henrist@xxxxxxxxxxx> > Subject: Re: [PATCH v4 iproute2-next 1/1] tc: add dualpi2 scheduler module > > > CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information. > > > > On Sun, 16 Mar 2025 16:39:17 +0100 > chia-yu.chang@xxxxxxxxxxxxxxxxxxx wrote: > > > +static int dualpi2_print_xstats(struct qdisc_util *qu, FILE *f, > > + struct rtattr *xstats) { > > + struct tc_dualpi2_xstats *st; > > + > > + if (xstats == NULL) > > + return 0; > > + > > + if (RTA_PAYLOAD(xstats) < sizeof(*st)) > > + return -1; > > + > > + st = RTA_DATA(xstats); > > + fprintf(f, "prob %f delay_c %uus delay_l %uus\n", > > + (double)st->prob / (double)MAX_PROB, st->delay_c, st->delay_l); > > + fprintf(f, "pkts_in_c %u pkts_in_l %u maxq %u\n", > > + st->packets_in_c, st->packets_in_l, st->maxq); > > + fprintf(f, "ecn_mark %u step_marks %u\n", st->ecn_mark, st->step_marks); > > + fprintf(f, "credit %d (%c)\n", st->credit, st->credit > 0 ? 'C' : 'L'); > > + fprintf(f, "memory used %u (max %u) of memory limit %u\n", > > + st->memory_used, st->max_memory_used, st->memory_limit); > > + return 0; > > + > > You should support JSON for the stats as well. Sure, will do that in the next version.