When creating a template table, the object pointer of the command line "struct context" was set with an offset from the original out buffer if there is a template ID.
If the "rules_number" is specified after the template IDs, it couldn't be set and passed to the API correctly. With this commit, the pointer is reset before pasring the "rules_number" field. Fixes: c4b38873346b ("app/testpmd: add flow table management") Cc: akozy...@nvidia.com Cc: sta...@dpdk.org Signed-off-by: Bing Zhao <bi...@nvidia.com> --- app/test-pmd/cmdline_flow.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 5771281125..bd626e2347 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -3369,6 +3369,7 @@ static const struct token token_list[] = { NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct buffer, args.table.attr.nb_flows)), + .call = parse_table, }, [TABLE_PATTERN_TEMPLATE] = { .name = "pattern_template", @@ -10157,6 +10158,11 @@ parse_table(struct context *ctx, const struct token *token, return -1; out->args.table.attr.specialize = RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG; return len; + case TABLE_RULES_NUMBER: + ctx->objdata = 0; + ctx->object = out; + ctx->objmask = NULL; + return len; default: return -1; } -- 2.34.1