diff mbox series

[iproute2-next] f_flower: simplify cfm dump function

Message ID 20230629195736.675018-1-zahari.doychev@linux.com (mailing list archive)
State Accepted
Commit 19f44c06e5e276a35758bb154fa4eaddf9f3b5b2
Delegated to: Stephen Hemminger
Headers show
Series [iproute2-next] f_flower: simplify cfm dump function | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Zahari Doychev June 29, 2023, 7:57 p.m. UTC
From: Zahari Doychev <zdoychev@maxlinear.com>

The standard print function can be used to print the cfm attributes in
both standard and json use cases. In this way no string buffer is needed
which simplifies the code.

Signed-off-by: Zahari Doychev <zdoychev@maxlinear.com>
---
 tc/f_flower.c | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

Comments

Petr Machata June 30, 2023, 11:22 a.m. UTC | #1
Zahari Doychev <zahari.doychev@linux.com> writes:

> From: Zahari Doychev <zdoychev@maxlinear.com>
>
> The standard print function can be used to print the cfm attributes in
> both standard and json use cases. In this way no string buffer is needed
> which simplifies the code.

This looks correct, but please make sure that the diff between the old
and the new way is empty in both JSON and FP mode.

> Signed-off-by: Zahari Doychev <zdoychev@maxlinear.com>

Reviewed-by: Petr Machata <me@pmachata.org>
Zahari Doychev June 30, 2023, 7:37 p.m. UTC | #2
On Fri, Jun 30, 2023 at 01:22:45PM +0200, Petr Machata wrote:
> 
> Zahari Doychev <zahari.doychev@linux.com> writes:
> 
> > From: Zahari Doychev <zdoychev@maxlinear.com>
> >
> > The standard print function can be used to print the cfm attributes in
> > both standard and json use cases. In this way no string buffer is needed
> > which simplifies the code.
> 
> This looks correct, but please make sure that the diff between the old
> and the new way is empty in both JSON and FP mode.

I have done that. The diff between the two is empty.

thanks

> 
> > Signed-off-by: Zahari Doychev <zdoychev@maxlinear.com>
> 
> Reviewed-by: Petr Machata <me@pmachata.org>
>
Stephen Hemminger June 30, 2023, 9:17 p.m. UTC | #3
On Thu, 29 Jun 2023 21:57:36 +0200
Zahari Doychev <zahari.doychev@linux.com> wrote:

> From: Zahari Doychev <zdoychev@maxlinear.com>
> 
> The standard print function can be used to print the cfm attributes in
> both standard and json use cases. In this way no string buffer is needed
> which simplifies the code.
> 
> Signed-off-by: Zahari Doychev <zdoychev@maxlinear.com>

Since this does not depend on new kernel features, will pick it up as part of
regular iproute2
Ido Schimmel July 3, 2023, 8:01 a.m. UTC | #4
On Thu, Jun 29, 2023 at 09:57:36PM +0200, Zahari Doychev wrote:
> From: Zahari Doychev <zdoychev@maxlinear.com>
> 
> The standard print function can be used to print the cfm attributes in
> both standard and json use cases. In this way no string buffer is needed
> which simplifies the code.
> 
> Signed-off-by: Zahari Doychev <zdoychev@maxlinear.com>

Reviewed-by: Ido Schimmel <idosch@nvidia.com>
patchwork-bot+netdevbpf@kernel.org July 3, 2023, 4:10 p.m. UTC | #5
Hello:

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

On Thu, 29 Jun 2023 21:57:36 +0200 you wrote:
> From: Zahari Doychev <zdoychev@maxlinear.com>
> 
> The standard print function can be used to print the cfm attributes in
> both standard and json use cases. In this way no string buffer is needed
> which simplifies the code.
> 
> Signed-off-by: Zahari Doychev <zdoychev@maxlinear.com>
> 
> [...]

Here is the summary with links:
  - [iproute2-next] f_flower: simplify cfm dump function
    https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=19f44c06e5e2

You are awesome, thank you!
diff mbox series

Patch

diff --git a/tc/f_flower.c b/tc/f_flower.c
index 6da5028a..c71394f7 100644
--- a/tc/f_flower.c
+++ b/tc/f_flower.c
@@ -2816,9 +2816,6 @@  static void flower_print_arp_op(const char *name,
 static void flower_print_cfm(struct rtattr *attr)
 {
 	struct rtattr *tb[TCA_FLOWER_KEY_CFM_OPT_MAX + 1];
-	struct rtattr *v;
-	SPRINT_BUF(out);
-	size_t sz = 0;
 
 	if (!attr || !(attr->rta_type & NLA_F_NESTED))
 		return;
@@ -2830,20 +2827,15 @@  static void flower_print_cfm(struct rtattr *attr)
 	print_string(PRINT_FP, NULL, "  cfm", NULL);
 	open_json_object("cfm");
 
-	v = tb[TCA_FLOWER_KEY_CFM_MD_LEVEL];
-	if (v) {
-		sz += sprintf(out, " mdl %u", rta_getattr_u8(v));
-		print_hhu(PRINT_JSON, "mdl", NULL, rta_getattr_u8(v));
-	}
+	if (tb[TCA_FLOWER_KEY_CFM_MD_LEVEL])
+		print_hhu(PRINT_ANY, "mdl", " mdl %u",
+			  rta_getattr_u8(tb[TCA_FLOWER_KEY_CFM_MD_LEVEL]));
 
-	v = tb[TCA_FLOWER_KEY_CFM_OPCODE];
-	if (v) {
-		sprintf(out + sz, " op %u", rta_getattr_u8(v));
-		print_hhu(PRINT_JSON, "op", NULL, rta_getattr_u8(v));
-	}
+	if (tb[TCA_FLOWER_KEY_CFM_OPCODE])
+		print_hhu(PRINT_ANY, "op", " op %u",
+			  rta_getattr_u8(tb[TCA_FLOWER_KEY_CFM_OPCODE]));
 
 	close_json_object();
-	print_string(PRINT_FP, "cfm", "%s", out);
 }
 
 static int flower_print_opt(struct filter_util *qu, FILE *f,