diff mbox series

[iproute2] tc: add json support to size table

Message ID 20221123044949.4785-1-stephen@networkplumber.org (mailing list archive)
State Accepted
Commit 6af6f02cce42c00f3ee48a58a5c4f80aae9faf93
Delegated to: David Ahern
Headers show
Series [iproute2] tc: add json support to size table | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Stephen Hemminger Nov. 23, 2022, 4:49 a.m. UTC
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>
---
 tc/tc_common.h |  2 +-
 tc/tc_qdisc.c  |  2 +-
 tc/tc_stab.c   | 22 ++++++++++++++--------
 3 files changed, 16 insertions(+), 10 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Nov. 23, 2022, 6:40 a.m. UTC | #1
Hello:

This patch was applied to iproute2/iproute2.git (main)
by Stephen Hemminger <stephen@networkplumber.org>:

On Tue, 22 Nov 2022 20:49:49 -0800 you wrote:
> 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
>         }
>     } ]
> 
> [...]

Here is the summary with links:
  - [iproute2] tc: add json support to size table
    https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=6af6f02cce42

You are awesome, thank you!
diff mbox series

Patch

diff --git a/tc/tc_common.h b/tc/tc_common.h
index 58dc9d6a6c4f..f1561d80a43b 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 b79029d96202..33a6665eaac0 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 c61ecfd200ca..06dc1b134d85 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);
 	}
 }