From 1ff227545ce1e0e9daf7ecb3eec52ddafff57eb5 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 13 Oct 2022 08:30:34 -0700 Subject: [PATCH] u32: fix json formatting of flowid The code to print json was not done for the flow id. This would lead to incorrect JSON format output. Signed-off-by: Stephen Hemminger --- tc/f_u32.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tc/f_u32.c b/tc/f_u32.c index d787eb915..e4e0ab121 100644 --- a/tc/f_u32.c +++ b/tc/f_u32.c @@ -1275,12 +1275,14 @@ static int u32_print_opt(struct filter_util *qu, FILE *f, struct rtattr *opt, fprintf(stderr, "divisor and hash missing "); } if (tb[TCA_U32_CLASSID]) { + __u32 classid = rta_getattr_u32(tb[TCA_U32_CLASSID]); SPRINT_BUF(b1); - fprintf(f, "%sflowid %s ", - !sel || !(sel->flags & TC_U32_TERMINAL) ? "*" : "", - sprint_tc_classid(rta_getattr_u32(tb[TCA_U32_CLASSID]), - b1)); - } else if (sel && sel->flags & TC_U32_TERMINAL) { + if (sel && (sel->flags & TC_U32_TERMINAL)) + print_string(PRINT_FP, NULL, "*", NULL); + + print_string(PRINT_ANY, "flowid", "flowid %s ", + sprint_tc_classid(classid, b1)); + } else if (sel && (sel->flags & TC_U32_TERMINAL)) { print_string(PRINT_FP, NULL, "terminal flowid ", NULL); } if (tb[TCA_U32_LINK]) { -- 2.47.3