net/i40e: fix error when create two RSS flow rule

Message ID 1557370770-16508-1-git-send-email-wei.zhao1@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series net/i40e: fix error when create two RSS flow rule |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Zhao1, Wei May 9, 2019, 2:59 a.m. UTC
  There is need to refuse to create the second RSS flow rule
as only one RSS key and HASH register for each PF port.
Users should delete the first rule before setup the second
rule.

Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")
Cc: stable@dpdk.org

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
---
 drivers/net/i40e/i40e_flow.c | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Comments

Zhao1, Wei May 9, 2019, 3:34 a.m. UTC | #1
Tested-by: Li WenjieX <wenjiex.a.li@intel.com>

> -----Original Message-----
> From: Zhao1, Wei
> Sent: Thursday, May 9, 2019 11:00 AM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Peng, Yuan
> <yuan.peng@intel.com>; Zhao1, Wei <wei.zhao1@intel.com>
> Subject: [PATCH] net/i40e: fix error when create two RSS flow rule
> 
> There is need to refuse to create the second RSS flow rule as only one RSS key
> and HASH register for each PF port.
> Users should delete the first rule before setup the second rule.
> 
> Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
> ---
>  drivers/net/i40e/i40e_flow.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index
> 5447e4e..bca93b6 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -4444,6 +4444,14 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> *dev,
>  		}
>  	}
> 
> +	if (rss_info->conf.queue_num) {
> +		rte_flow_error_set(error, EINVAL,
> +				RTE_FLOW_ERROR_TYPE_ACTION,
> +				act,
> +				"rss only allow one valid rule");
> +		return -rte_errno;
> +	}
> +
>  	/* Parse RSS related parameters from configuration */
>  	if (rss->func != RTE_ETH_HASH_FUNCTION_DEFAULT)
>  		return rte_flow_error_set
> --
> 2.7.5
  
Qi Zhang May 14, 2019, 12:58 p.m. UTC | #2
> -----Original Message-----
> From: Zhao1, Wei
> Sent: Thursday, May 9, 2019 11:35 AM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Peng, Yuan
> <yuan.peng@intel.com>; Li, WenjieX A <wenjiex.a.li@intel.com>
> Subject: RE: [PATCH] net/i40e: fix error when create two RSS flow rule
> 
> Tested-by: Li WenjieX <wenjiex.a.li@intel.com>
> 
> > -----Original Message-----
> > From: Zhao1, Wei
> > Sent: Thursday, May 9, 2019 11:00 AM
> > To: dev@dpdk.org
> > Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Peng, Yuan
> > <yuan.peng@intel.com>; Zhao1, Wei <wei.zhao1@intel.com>
> > Subject: [PATCH] net/i40e: fix error when create two RSS flow rule
> >
> > There is need to refuse to create the second RSS flow rule as only one
> > RSS key and HASH register for each PF port.
> > Users should delete the first rule before setup the second rule.
> >
> > Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Wei Zhao <wei.zhao1@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  

Patch

diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
index 5447e4e..bca93b6 100644
--- a/drivers/net/i40e/i40e_flow.c
+++ b/drivers/net/i40e/i40e_flow.c
@@ -4444,6 +4444,14 @@  i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
 		}
 	}
 
+	if (rss_info->conf.queue_num) {
+		rte_flow_error_set(error, EINVAL,
+				RTE_FLOW_ERROR_TYPE_ACTION,
+				act,
+				"rss only allow one valid rule");
+		return -rte_errno;
+	}
+
 	/* Parse RSS related parameters from configuration */
 	if (rss->func != RTE_ETH_HASH_FUNCTION_DEFAULT)
 		return rte_flow_error_set