The flow rule with symmetric toeplitz hash function and SRC_ONLY or DST_ONLY RSS type together should not be created successfully. Fix the RSS action parse function to stop the rule creation in this situation.
Fixes: 5ad3db8d4bdd ("net/ice: enable advanced RSS") Cc: sta...@dpdk.org Signed-off-by: Ting Xu <ting...@intel.com> --- drivers/net/ice/ice_hash.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index 3433cab28c..3c84a6a73f 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -1044,6 +1044,19 @@ ice_hash_parse_action(struct ice_pattern_match_item *pattern_match_item, ETH_RSS_L4_SRC_ONLY | ETH_RSS_L4_DST_ONLY; + /** + * Check if SRC_ONLY or DST_ONLY is set for + * SYMMETRIC_TOEPLITZ hash function. + */ + if (rss->func == + RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) { + if (rss_type & combine_type) + return rte_flow_error_set(error, + ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, + action, "Not supported RSS types for " + "symmetric toeplitz hash"); + } + /* Check if rss types match pattern. */ if (rss_type & ~combine_type & ~m->eth_rss_hint) { return rte_flow_error_set(error, -- 2.17.1