From e2b1848455b9d6bbbaab874d3879386e8cda3131 Mon Sep 17 00:00:00 2001 From: Alexander Kozyrev Date: Wed, 2 Mar 2022 00:47:39 +0200 Subject: [PATCH] app/testpmd: fix flow rule creation parsing A pattern template creation shares the parsing mechanism with a simple flow creation. The pattern template creation only consists of pattern items while the flow creation continues with actions. The parsing mechanism now accommodates both cases and allows to stop at the item end token, which should not happen for the flow creation. Fix parsing mechanism to differentiate between these two cases. Bugzilla ID: 941 Fixes: 04cc665fab38 ("app/testpmd: add flow template management") Signed-off-by: Alexander Kozyrev Acked-by: Ori Kam Tested-by: Zhimin Huang --- app/test-pmd/cmdline_flow.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 4f7a9f17f9..fc4a6d9cca 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -6864,6 +6864,14 @@ parse_vc(struct context *ctx, const struct token *token, ctx->object = out->args.vc.pattern; ctx->objmask = NULL; return len; + case ITEM_END: + if ((out->command == VALIDATE || out->command == CREATE) && + ctx->last) + return -1; + if (out->command == PATTERN_TEMPLATE_CREATE && + !ctx->last) + return -1; + break; case ACTIONS: out->args.vc.actions = (void *)RTE_ALIGN_CEIL((uintptr_t) -- 2.39.5