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 |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
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>
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> >
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
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>
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 --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,