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.

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?

> 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.

> Signed-off-by: Ori Kam <or...@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.

>  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.

> +                     }
> +#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.

> +#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.

Thanks,

-- 
Nélio Laranjeiro
6WIND

Reply via email to