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.jan...@intel.com> Signed-off-by: R, Kamalakannan <kamalakanna...@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitre...@intel.com> --- lib/pipeline/rte_swx_pipeline_spec.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) 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]; -- 2.25.1