When a RSS rule with only RSS type modifier L2/L3/L4 SRC/DST_ONLY, it should return failure. This patch adds invalid RSS type check.
Fixes: dfaedcf20170 ("net/ice: refactor PF hash flow") Signed-off-by: Simei Su <simei...@intel.com> --- v2: * Add specific macro value in check rather than hard code. --- drivers/net/ice/ice_hash.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index cbd6116..2c79458 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -722,6 +722,17 @@ struct ice_hash_match_type ice_hash_type_list[] = { */ rss_type = rte_eth_rss_hf_refine(rss_type); + /* Check if only L2/L3/L4 SRC/DST_ONLY exists. */ + if ((rss_type & ~(ETH_RSS_L2_SRC_ONLY | + ETH_RSS_L2_DST_ONLY | + ETH_RSS_L3_SRC_ONLY | + ETH_RSS_L3_DST_ONLY | + ETH_RSS_L4_SRC_ONLY | + ETH_RSS_L4_DST_ONLY)) == 0) + return rte_flow_error_set(error, ENOTSUP, + RTE_FLOW_ERROR_TYPE_ACTION, action, + "rss type with only L2/L3/L4 src/dst only is invalid"); + combine_type = ETH_RSS_L2_SRC_ONLY | ETH_RSS_L2_DST_ONLY | ETH_RSS_L3_SRC_ONLY | -- 1.8.3.1