From a57d92d73d784dd60f036842069ce1034a2ffe5d Mon Sep 17 00:00:00 2001 From: Cristian Dumitrescu Date: Mon, 5 Jul 2021 23:56:50 +0100 Subject: [PATCH] pipeline: fix table entry read The rte_swx_pipeline_table_entry_read() function is used to read from a character string a table entry that is to be added to the table, deleted from the table or set as the default entry of the table. Addition needs both the match and the part of the entry, deletion ignores the action part, while the default set ignores the match part, hence the need to make both the match and the action part optional. The logic for skipping the match or the action part was broken, hence the current fix. Fixes: b32c0a2c5e4c ("pipeline: add SWX table update high level API") Cc: stable@dpdk.org Signed-off-by: Cristian Dumitrescu Signed-off-by: Venkata Suresh Kumar P Signed-off-by: Churchill Khangar --- lib/pipeline/rte_swx_ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pipeline/rte_swx_ctl.c b/lib/pipeline/rte_swx_ctl.c index 5d04e750f4..d1a5ba431f 100644 --- a/lib/pipeline/rte_swx_ctl.c +++ b/lib/pipeline/rte_swx_ctl.c @@ -1636,7 +1636,7 @@ rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl, /* * Match. */ - if (n_tokens && strcmp(tokens[0], "match")) + if (!(n_tokens && !strcmp(tokens[0], "match"))) goto action; if (n_tokens < 1 + table->info.n_match_fields) @@ -1719,7 +1719,7 @@ rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl, * Action. */ action: - if (n_tokens && strcmp(tokens[0], "action")) + if (!(n_tokens && !strcmp(tokens[0], "action"))) goto other; if (n_tokens < 2) -- 2.20.1