When a RSS rule with symmetric hash function, the RSS type shouldn't carry with SRC/DST_ONLY. This patch adds invalid RSS type check for the case.
Fixes: 91f27b2e39ab ("net/iavf: refactor RSS") Signed-off-by: Simei Su <simei...@intel.com> --- drivers/net/iavf/iavf_hash.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index be821b6..6d0360a 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -917,6 +917,22 @@ iavf_hash_parse_action(struct iavf_pattern_match_item *match_item, */ rss_type = rte_eth_rss_hf_refine(rss_type); + /** + * Check if SRC/DST_ONLY is set for SYMMETRIC_TOEPLITZ + * hash function. + */ + if (rss->func == + RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) { + if (rss_type & ((VALID_RSS_ATTR & + ~RTE_ETH_RSS_L3_PRE64) | + ~(VALID_RSS_IPV4 | VALID_RSS_IPV6))) + return rte_flow_error_set(error, + ENOTSUP, + RTE_FLOW_ERROR_TYPE_ACTION, + action, + "invalid rss types"); + } + if (iavf_any_invalid_rss_type(rss_type, match_item->input_set_mask)) return rte_flow_error_set(error, ENOTSUP, -- 2.9.5