pipeline: fix rss configuration

Message ID 20230302052942.1282634-1-yogesh.jangra@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers
Series pipeline: fix rss configuration |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS

Commit Message

Yogesh Jangra March 2, 2023, 5:29 a.m. UTC
  From: yjangra <yogesh.jangra@intel.com>

Currently, the rss object is configured after action, which leads
to rss instruction failure, when rss instruction is called from
action block. To resolve the error, rss object is configured
before action and apply block.

Fixes: 8ba342ce6f0 (pipeline: add RSS)

Signed-off-by: Yogesh Jangra <yogesh.jangra@intel.com>
Signed-off-by: R, Kamalakannan <kamalakannan.r@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 lib/pipeline/rte_swx_pipeline_spec.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)
  

Patch

diff --git a/lib/pipeline/rte_swx_pipeline_spec.c b/lib/pipeline/rte_swx_pipeline_spec.c
index a164275526..006b24082a 100644
--- a/lib/pipeline/rte_swx_pipeline_spec.c
+++ b/lib/pipeline/rte_swx_pipeline_spec.c
@@ -3557,6 +3557,18 @@  pipeline_spec_configure(struct rte_swx_pipeline *p,
 		}
 	}
 
+	/* rss. */
+	for (i = 0; i < s->n_rss; i++) {
+		struct rss_spec *rss_spec = &s->rss[i];
+
+		status = rte_swx_pipeline_rss_config(p, rss_spec->name);
+		if (status) {
+			if (err_msg)
+				*err_msg = "rss object configuration error.";
+			return status;
+		}
+	}
+
 	/* metarray. */
 	for (i = 0; i < s->n_metarrays; i++) {
 		struct metarray_spec *metarray_spec = &s->metarrays[i];
@@ -3678,18 +3690,6 @@  pipeline_spec_configure(struct rte_swx_pipeline *p,
 		}
 	}
 
-	/* rss. */
-	for (i = 0; i < s->n_rss; i++) {
-		struct rss_spec *rss_spec = &s->rss[i];
-
-		status = rte_swx_pipeline_rss_config(p, rss_spec->name);
-		if (status) {
-			if (err_msg)
-				*err_msg = "rss object configuration error.";
-			return status;
-		}
-	}
-
 	/* apply. */
 	for (i = 0; i < s->n_apply; i++) {
 		struct apply_spec *apply_spec = &s->apply[i];