[v3] net/i40e: fix set rss hash function invalid
Checks
Commit Message
i40e can support following rss hash function types: default/toeplitz,
symmetric toeplitz, and simple_xor. However, when filter engine parses
pattern action, it only supports symmetric toeplitz & default.
Add simple_xor and toeplitz hash functions support when parsing pattern
action.
Fixes: ef4c16fd9148 ("net/i40e: refactor RSS flow")
Cc: stable@dpdk.org
Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
v3:
- add Cc stable line.
v2:
- add the fix line.
- support simple_xor and toeplitz hash functions explicitly.
drivers/net/i40e/i40e_hash.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
Comments
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Steve Yang
> Sent: Monday, June 21, 2021 4:04 PM
> To: dev@dpdk.org
> Cc: Xing, Beilei <beilei.xing@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH v3] net/i40e: fix set rss hash function invalid
>
> i40e can support following rss hash function types: default/toeplitz,
> symmetric toeplitz, and simple_xor. However, when filter engine parses
> pattern action, it only supports symmetric toeplitz & default.
>
> Add simple_xor and toeplitz hash functions support when parsing pattern
> action.
>
> Fixes: ef4c16fd9148 ("net/i40e: refactor RSS flow")
> Cc: stable@dpdk.org
>
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
> v3:
> - add Cc stable line.
> v2:
> - add the fix line.
> - support simple_xor and toeplitz hash functions explicitly.
>
> drivers/net/i40e/i40e_hash.c | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/i40e/i40e_hash.c b/drivers/net/i40e/i40e_hash.c
> index b1cb24f437..0cef21c88f 100644
> --- a/drivers/net/i40e/i40e_hash.c
> +++ b/drivers/net/i40e/i40e_hash.c
> @@ -1105,13 +1105,21 @@ i40e_hash_parse_pattern_act(const struct
> rte_eth_dev *dev,
> NULL,
> "RSS Queues not supported when
> pattern specified");
>
> - if (rss_act->func ==
> RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ)
> + switch (rss_act->func) {
> + case RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ:
> rss_conf->symmetric_enable = true;
> - else if (rss_act->func != RTE_ETH_HASH_FUNCTION_DEFAULT)
> - return rte_flow_error_set(error, -EINVAL,
> -
> RTE_FLOW_ERROR_TYPE_ACTION_CONF,
> - NULL,
> - "Only symmetric TOEPLITZ
> supported when pattern specified");
> + break;
> + case RTE_ETH_HASH_FUNCTION_DEFAULT:
> + case RTE_ETH_HASH_FUNCTION_TOEPLITZ:
> + case RTE_ETH_HASH_FUNCTION_SIMPLE_XOR:
> + break;
> + default:
> + return rte_flow_error_set(error, EINVAL,
> + RTE_FLOW_ERROR_TYPE_ACTION_CONF,
> + NULL,
> + "RSS hash function not supported "
> + "when pattern specified");
> + }
>
> if (!i40e_hash_validate_rss_types(rss_act->types))
> return rte_flow_error_set(error, EINVAL,
> --
> 2.27.0
Acked-by: Beilei Xing <beilei.xing@intel.com>
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Xing, Beilei
> Sent: Monday, June 21, 2021 4:19 PM
> To: Yang, SteveX <stevex.yang@intel.com>; dev@dpdk.org
> Cc: Yang, SteveX <stevex.yang@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3] net/i40e: fix set rss hash function invalid
>
>
>
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Steve Yang
> > Sent: Monday, June 21, 2021 4:04 PM
> > To: dev@dpdk.org
> > Cc: Xing, Beilei <beilei.xing@intel.com>; Yang, SteveX
> > <stevex.yang@intel.com>; stable@dpdk.org
> > Subject: [dpdk-dev] [PATCH v3] net/i40e: fix set rss hash function
> > invalid
> >
> > i40e can support following rss hash function types: default/toeplitz,
> > symmetric toeplitz, and simple_xor. However, when filter engine parses
> > pattern action, it only supports symmetric toeplitz & default.
> >
> > Add simple_xor and toeplitz hash functions support when parsing
> > pattern action.
> >
> > Fixes: ef4c16fd9148 ("net/i40e: refactor RSS flow")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Steve Yang <stevex.yang@intel.com>
> > ---
> > v3:
> > - add Cc stable line.
> > v2:
> > - add the fix line.
> > - support simple_xor and toeplitz hash functions explicitly.
> >
> > drivers/net/i40e/i40e_hash.c | 20 ++++++++++++++------
> > 1 file changed, 14 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_hash.c
> > b/drivers/net/i40e/i40e_hash.c index b1cb24f437..0cef21c88f 100644
> > --- a/drivers/net/i40e/i40e_hash.c
> > +++ b/drivers/net/i40e/i40e_hash.c
> > @@ -1105,13 +1105,21 @@ i40e_hash_parse_pattern_act(const struct
> > rte_eth_dev *dev,
> > NULL,
> > "RSS Queues not supported when pattern
> specified");
> >
> > - if (rss_act->func ==
> > RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ)
> > + switch (rss_act->func) {
> > + case RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ:
> > rss_conf->symmetric_enable = true;
> > - else if (rss_act->func != RTE_ETH_HASH_FUNCTION_DEFAULT)
> > - return rte_flow_error_set(error, -EINVAL,
> > -
> > RTE_FLOW_ERROR_TYPE_ACTION_CONF,
> > - NULL,
> > - "Only symmetric TOEPLITZ
> > supported when pattern specified");
> > + break;
> > + case RTE_ETH_HASH_FUNCTION_DEFAULT:
> > + case RTE_ETH_HASH_FUNCTION_TOEPLITZ:
> > + case RTE_ETH_HASH_FUNCTION_SIMPLE_XOR:
> > + break;
> > + default:
> > + return rte_flow_error_set(error, EINVAL,
> > + RTE_FLOW_ERROR_TYPE_ACTION_CONF,
> > + NULL,
> > + "RSS hash function not supported "
> > + "when pattern specified");
> > + }
> >
> > if (!i40e_hash_validate_rss_types(rss_act->types))
> > return rte_flow_error_set(error, EINVAL,
> > --
> > 2.27.0
>
> Acked-by: Beilei Xing <beilei.xing@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -1105,13 +1105,21 @@ i40e_hash_parse_pattern_act(const struct rte_eth_dev *dev,
NULL,
"RSS Queues not supported when pattern specified");
- if (rss_act->func == RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ)
+ switch (rss_act->func) {
+ case RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ:
rss_conf->symmetric_enable = true;
- else if (rss_act->func != RTE_ETH_HASH_FUNCTION_DEFAULT)
- return rte_flow_error_set(error, -EINVAL,
- RTE_FLOW_ERROR_TYPE_ACTION_CONF,
- NULL,
- "Only symmetric TOEPLITZ supported when pattern specified");
+ break;
+ case RTE_ETH_HASH_FUNCTION_DEFAULT:
+ case RTE_ETH_HASH_FUNCTION_TOEPLITZ:
+ case RTE_ETH_HASH_FUNCTION_SIMPLE_XOR:
+ break;
+ default:
+ return rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ACTION_CONF,
+ NULL,
+ "RSS hash function not supported "
+ "when pattern specified");
+ }
if (!i40e_hash_validate_rss_types(rss_act->types))
return rte_flow_error_set(error, EINVAL,