diff options
author | Stephen Hemminger <stephen@networkplumber.org> | 2022-11-22 20:16:07 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2022-11-22 20:46:57 -0800 |
commit | 6af6f02cce42c00f3ee48a58a5c4f80aae9faf93 (patch) | |
tree | 5897f4ef4013687ab513396957ec94fa36ab2ad1 /tc | |
parent | a04a01a59470ad763d79fb82c6ba97f88e79426f (diff) | |
download | iproute2-6af6f02cce42c00f3ee48a58a5c4f80aae9faf93.tar.gz |
tc: add json support to size table
Fix the JSON output if size addaption table is used.
Example:
[ {
"kind": "fq_codel",
"handle": "1:",
"dev": "enp2s0",
"root": true,
"refcnt": 2,
"options": {
"limit": 10240,
"flows": 1024,
"quantum": 1514,
"target": 4999,
"interval": 99999,
"memory_limit": 33554432,
"ecn": true,
"drop_batch": 64
},
"stab": {
"overhead": 30,
"mpu": 68,
"mtu": 2047,
"tsize": 512
}
} ]
Remove fixed prefix arg and no longer needed fp arg.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'tc')
-rw-r--r-- | tc/tc_common.h | 2 | ||||
-rw-r--r-- | tc/tc_qdisc.c | 2 | ||||
-rw-r--r-- | tc/tc_stab.c | 22 |
3 files changed, 16 insertions, 10 deletions
diff --git a/tc/tc_common.h b/tc/tc_common.h index 58dc9d6a..f1561d80 100644 --- a/tc/tc_common.h +++ b/tc/tc_common.h @@ -16,7 +16,7 @@ int print_action(struct nlmsghdr *n, void *arg); int print_filter(struct nlmsghdr *n, void *arg); int print_qdisc(struct nlmsghdr *n, void *arg); int print_class(struct nlmsghdr *n, void *arg); -void print_size_table(FILE *fp, const char *prefix, struct rtattr *rta); +void print_size_table(struct rtattr *rta); struct tc_estimator; int parse_estimator(int *p_argc, char ***p_argv, struct tc_estimator *est); diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c index b79029d9..33a6665e 100644 --- a/tc/tc_qdisc.c +++ b/tc/tc_qdisc.c @@ -329,7 +329,7 @@ int print_qdisc(struct nlmsghdr *n, void *arg) print_nl(); if (show_details && tb[TCA_STAB]) { - print_size_table(fp, " ", tb[TCA_STAB]); + print_size_table(tb[TCA_STAB]); print_nl(); } diff --git a/tc/tc_stab.c b/tc/tc_stab.c index c61ecfd2..06dc1b13 100644 --- a/tc/tc_stab.c +++ b/tc/tc_stab.c @@ -103,7 +103,7 @@ int parse_size_table(int *argcp, char ***argvp, struct tc_sizespec *sp) return 0; } -void print_size_table(FILE *fp, const char *prefix, struct rtattr *rta) +void print_size_table(struct rtattr *rta) { struct rtattr *tb[TCA_STAB_MAX + 1]; @@ -117,17 +117,23 @@ void print_size_table(FILE *fp, const char *prefix, struct rtattr *rta) memcpy(&s, RTA_DATA(tb[TCA_STAB_BASE]), MIN(RTA_PAYLOAD(tb[TCA_STAB_BASE]), sizeof(s))); - fprintf(fp, "%s", prefix); + print_string(PRINT_FP, NULL, " ", NULL); + if (s.linklayer) - fprintf(fp, "linklayer %s ", - sprint_linklayer(s.linklayer, b1)); + print_string(PRINT_ANY, "linklayer", + "linklayer %s ", + sprint_linklayer(s.linklayer, b1)); if (s.overhead) - fprintf(fp, "overhead %d ", s.overhead); + print_int(PRINT_ANY, "overhead", + "overhead %d ", s.overhead); if (s.mpu) - fprintf(fp, "mpu %u ", s.mpu); + print_uint(PRINT_ANY, "mpu", + "mpu %u ", s.mpu); if (s.mtu) - fprintf(fp, "mtu %u ", s.mtu); + print_uint(PRINT_ANY, "mtu", + "mtu %u ", s.mtu); if (s.tsize) - fprintf(fp, "tsize %u ", s.tsize); + print_uint(PRINT_ANY, "tsize", + "tsize %u ", s.tsize); } } |