[V2] pipeline: fix table entry read

Message ID 20210705225650.92268-1-cristian.dumitrescu@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [V2] pipeline: fix table entry read |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot success github build: passed
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing fail Testing issues
ci/iol-abi-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

Cristian Dumitrescu July 5, 2021, 10:56 p.m. UTC
  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 <cristian.dumitrescu@intel.com>
Signed-off-by: Venkata Suresh Kumar P <venkata.suresh.kumar.p@intel.com>
Signed-off-by: Churchill Khangar <churchill.khangar@intel.com>
---
 lib/pipeline/rte_swx_ctl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Thomas Monjalon July 9, 2021, 9:12 p.m. UTC | #1
06/07/2021 00:56, Cristian Dumitrescu:
> 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 <cristian.dumitrescu@intel.com>
> Signed-off-by: Venkata Suresh Kumar P <venkata.suresh.kumar.p@intel.com>
> Signed-off-by: Churchill Khangar <churchill.khangar@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/pipeline/rte_swx_ctl.c b/lib/pipeline/rte_swx_ctl.c
index 8cabce2b9..4ee47df10 100644
--- a/lib/pipeline/rte_swx_ctl.c
+++ b/lib/pipeline/rte_swx_ctl.c
@@ -2282,7 +2282,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)
@@ -2365,7 +2365,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)