[dpdk-dev] [RFC] net/mlx5: support count flow action

Ori Kam orika at mellanox.com
Thu Aug 24 16:04:32 CEST 2017


Hi Nelio,

Please see my comments in line.

Ori

> -----Original Message-----
> From: Nélio Laranjeiro [mailto:nelio.laranjeiro at 6wind.com]
> Sent: Thursday, August 24, 2017 9:54 AM
> To: Ori Kam <orika at mellanox.com>
> Cc: adrien.mazaruil at 6wind.com; dev at dpdk.org
> Subject: Re: [RFC] net/mlx5: support count flow action
> 
> Hi Ori,
> 
> Please keep the coding style of the file, and pass checkpatch before
> submitting a patch on the mailing list.  It helps the review by having a correct
> patch respecting the coding style of the file.
> I won't spot out here all the coding style issues, if you need some help, feel
> free to ask.
> 
Sorry won't happen again.

> On Mon, Aug 21, 2017 at 03:35:41PM +0300, Ori Kam wrote:
> > Support count flow action.
> 
> Why copy/pasting the title in the commit message?
> 
I was under the impression that main function of the RFC should also be in the message body.

> > This patch is basic design only, do to missing features on the verbs
> > driver. As soon as the features will be implemented on the verbs
> > driver this will be updated and rebased on top of
> > dpdk.org/ml/archives/dev/2017-August/072351.html
> > (The verbs driver should be ready starting September)
> >
> > This RFC should be applied on top of
> > dpdk.org/ml/archives/dev/2017-August/072351.html
> 
> Last two comments should be after '---' line.
> 
Those two lines are part of the commit message, any way I will move them.

> > Signed-off-by: Ori Kam <orika at mellanox.com>
> > ---
> >  drivers/net/mlx5/mlx5.h      |   4 ++
> >  drivers/net/mlx5/mlx5_flow.c | 163
> > ++++++++++++++++++++++++++++++++++++++++++-
> 
> There are missing changes in the Makefile to have the
> HAVE_VERBS_IBV_EXP_FLOW_SPEC_ACTION_COUNT and the include of the
> mlx5_autoconf.h in mlx5_flow.c.
> 
I haven't added them since this feature is not supported yet, and 
I don't want anybody trying to activate them.
When the feature will be supported on the verbs then I will update
those files. 

> >  2 files changed, 166 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index
> > e89aba8..434e848 100644
> > --- a/drivers/net/mlx5/mlx5.h
> > +++ b/drivers/net/mlx5/mlx5.h
> >[...]
> > +/**
> > + * Query an existing flow rule.
> > + *
> > + * @see rte_flow_query()
> > + * @see rte_flow_ops
> > + */
> > +int
> > +mlx5_flow_query(struct rte_eth_dev *dev,
> > +		struct rte_flow *flow,
> > +		enum rte_flow_action_type type,
> > +		void *res,
> > +		struct rte_flow_error *error)
> > +{
> > +
> > +	int res_value = 0;
> > +	switch (type){
> > +		case RTE_FLOW_ACTION_TYPE_COUNT:
> > +			if (!flow->counter) {
> > +				rte_flow_error_set(error, EINVAL,
> > +
> RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
> > +								   NULL,
> > +								   "No counter
> is set for this flow");
> > +				return -1;
> 
> Wrong returned value, read the rte_flow_query API allowed values.
> 
Will be fixed
> > +			}
> > +#ifdef HAVE_VERBS_IBV_EXP_FLOW_SPEC_ACTION_COUNT
> > +			res_value =
> priv_flow_query_counter(mlx5_get_priv(dev), flow->counter,
> > +					(struct rte_flow_query_count*)res,
> > +					error);
> > +#else
> > +			rte_flow_error_set(error, ENOTSUP,
> RTE_FLOW_ERROR_TYPE_ACTION,
> > +									NULL,
> "Flow count unsupported");
> > +			(void)dev;
> > +			(void)flow;
> > +			(void)type;
> > +			(void)res;
> > +			(void)error;
> > +			return -1;
> 
> Same here.
> 
Will be fixed.

> > +#endif
> 
> I'll suggest to have a dedicated function here to handle this situation, like a
> mlx5_flow_query_counters() and call it from this case.  It will clearly ease the
> readability and maintenance.
> 
Will be update according to your suggestion.

> Thanks,
> 
> --
> Nélio Laranjeiro
> 6WIND
Thanks,
Ori Kam


More information about the dev mailing list