[v2] net/i40e: fix argument in RSS action
Checks
Commit Message
The driver must check for the queue number
in the RSS action list and if not should
return with a proper error message to user.
Bugzilla ID: 573
Fixes: 9486d60b94b5 ("net/i40e: fix flow RSS queue index check")
Cc: wei.zhao1@intel.com
Signed-off-by: Kumar Amber <kumar.amber@intel.com>
---
drivers/net/i40e/i40e_flow.c | 11 +++++++++++
1 file changed, 11 insertions(+)
Comments
Hi,
According to Bo's test, this fix patch will cause other cases fail, so NACK.
@Bo, could you please detail which cases will FAIL, thanks.
BR,
Beilei
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Kumar Amber
> Sent: Wednesday, November 11, 2020 6:11 PM
> To: dev@dpdk.org
> Cc: Zhao1, Wei <wei.zhao1@intel.com>
> Subject: [dpdk-dev] [PATCH v2] net/i40e: fix argument in RSS action
>
> The driver must check for the queue number in the RSS action list and if not
> should return with a proper error message to user.
>
> Bugzilla ID: 573
> Fixes: 9486d60b94b5 ("net/i40e: fix flow RSS queue index check")
> Cc: wei.zhao1@intel.com
>
> Signed-off-by: Kumar Amber <kumar.amber@intel.com>
> ---
> drivers/net/i40e/i40e_flow.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index
> 5bec0c7a84..975340cb1a 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -4917,6 +4917,17 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> *dev,
> NEXT_ITEM_OF_ACTION(act, actions, index);
> rss = act->conf;
>
> + /**
> + * Check if Queue number is specified
> + * in argument else throw an error.
> + */
> + if (rss->queue == NULL) {
> + rte_flow_error_set(error, EINVAL,
> + RTE_FLOW_ERROR_TYPE_ACTION,
> + act, "Queue numbers not given.");
> + return -rte_errno;
> + }
> +
> /**
> * RSS only supports forwarding,
> * check if the first not void action is RSS.
> --
> 2.17.1
Hi, Beilei
If you merge this patch, some common rules will fail to set on fvl, such as:
flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end
Regards,
Chen Bo
> -----Original Message-----
> From: Xing, Beilei <beilei.xing@intel.com>
> Sent: December 17, 2020 11:20
> To: Amber, Kumar <kumar.amber@intel.com>; dev@dpdk.org; Chen, BoX C
> <box.c.chen@intel.com>
> Cc: Zhao1, Wei <wei.zhao1@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v2] net/i40e: fix argument in RSS action
>
> Hi,
>
> According to Bo's test, this fix patch will cause other cases fail, so NACK.
> @Bo, could you please detail which cases will FAIL, thanks.
>
> BR,
> Beilei
>
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Kumar Amber
> > Sent: Wednesday, November 11, 2020 6:11 PM
> > To: dev@dpdk.org
> > Cc: Zhao1, Wei <wei.zhao1@intel.com>
> > Subject: [dpdk-dev] [PATCH v2] net/i40e: fix argument in RSS action
> >
> > The driver must check for the queue number in the RSS action list and
> > if not should return with a proper error message to user.
> >
> > Bugzilla ID: 573
> > Fixes: 9486d60b94b5 ("net/i40e: fix flow RSS queue index check")
> > Cc: wei.zhao1@intel.com
> >
> > Signed-off-by: Kumar Amber <kumar.amber@intel.com>
> > ---
> > drivers/net/i40e/i40e_flow.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/net/i40e/i40e_flow.c
> > b/drivers/net/i40e/i40e_flow.c index 5bec0c7a84..975340cb1a 100644
> > --- a/drivers/net/i40e/i40e_flow.c
> > +++ b/drivers/net/i40e/i40e_flow.c
> > @@ -4917,6 +4917,17 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> > *dev,
> > NEXT_ITEM_OF_ACTION(act, actions, index);
> > rss = act->conf;
> >
> > + /**
> > + * Check if Queue number is specified
> > + * in argument else throw an error.
> > + */
> > + if (rss->queue == NULL) {
> > + rte_flow_error_set(error, EINVAL,
> > + RTE_FLOW_ERROR_TYPE_ACTION,
> > + act, "Queue numbers not given.");
> > + return -rte_errno;
> > + }
> > +
> > /**
> > * RSS only supports forwarding,
> > * check if the first not void action is RSS.
> > --
> > 2.17.1
@@ -4917,6 +4917,17 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
NEXT_ITEM_OF_ACTION(act, actions, index);
rss = act->conf;
+ /**
+ * Check if Queue number is specified
+ * in argument else throw an error.
+ */
+ if (rss->queue == NULL) {
+ rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ACTION,
+ act, "Queue numbers not given.");
+ return -rte_errno;
+ }
+
/**
* RSS only supports forwarding,
* check if the first not void action is RSS.