From: Shaiq Wani <shaiq.w...@intel.com> The function ice_add_special_words() is meant to add special words (such as traffic direction) to the rule. The function that interprets/translates these additional words is ice_get_sw_fv_list().
However, the ice_get_sw_fv_list() is called *before* ice_add_special_words(), so the "special" words weren't added at that point yet, hence they're not translated. This results in the driver ignoring whatever special words that were added. The fix is to call ice_get_sw_fv_list() *after* ice_add_special_words(). Fixes: ed3066a3b1b0 ("net/ice/base: refactor DDP code") Cc: sta...@dpdk.org Signed-off-by: Jeff Shaw <jeffrey.b.s...@intel.com> Signed-off-by: Shaiq Wani <shaiq.w...@intel.com> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> --- drivers/net/intel/ice/base/ice_switch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/intel/ice/base/ice_switch.c b/drivers/net/intel/ice/base/ice_switch.c index 54cc2e1c07..f16bec044c 100644 --- a/drivers/net/intel/ice/base/ice_switch.c +++ b/drivers/net/intel/ice/base/ice_switch.c @@ -8287,10 +8287,6 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups, */ ice_get_compat_fv_bitmap(hw, rinfo, fv_bitmap); - status = ice_get_sw_fv_list(hw, lkup_exts, fv_bitmap, &rm->fv_list); - if (status) - goto err_unroll; - /* Create any special protocol/offset pairs, such as looking at tunnel * bits by extracting metadata */ @@ -8298,6 +8294,10 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups, if (status) goto err_free_lkup_exts; + status = ice_get_sw_fv_list(hw, lkup_exts, fv_bitmap, &rm->fv_list); + if (status) + goto err_unroll; + /* Group match words into recipes using preferred recipe grouping * criteria. */ -- 2.47.3