Hi,

> -----Original Message-----
> From: Bing Zhao <bi...@nvidia.com>
> Sent: Tuesday, October 27, 2020 4:47 PM
> To: Slava Ovsiienko <viachesl...@nvidia.com>; Matan Azrad
> <ma...@nvidia.com>; Ori Kam <or...@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasl...@nvidia.com>
> Subject: [PATCH v2 1/2] common/mlx5: add glue function for domain sync
> 
> In rdma-core, the "mlx5dv_dr_domain_sync" function was already
> provided. It is used to flush the rule submission queue. The wrapper
> function in the glue layer is added for using this.
> It only supports DR flows right now the same as domain creating and
> destroying functions.
> 
> Signed-off-by: Bing Zhao <bi...@nvidia.com>
> Acked-by: Ori Kam <or...@nvidia.com>
> ---
>  drivers/common/mlx5/linux/mlx5_glue.c | 14 ++++++++++++++
>  drivers/common/mlx5/linux/mlx5_glue.h |  1 +
>  2 files changed, 15 insertions(+)
> 
> diff --git a/drivers/common/mlx5/linux/mlx5_glue.c
> b/drivers/common/mlx5/linux/mlx5_glue.c
> index 47b7e98..4a76902 100644
> --- a/drivers/common/mlx5/linux/mlx5_glue.c
> +++ b/drivers/common/mlx5/linux/mlx5_glue.c
> @@ -494,6 +494,19 @@
>  #endif
>  }
> 
> +static int
> +mlx5_glue_dr_sync_domain(void *domain, uint32_t flags)
> +{
> +#ifdef HAVE_MLX5DV_DR
> +     return mlx5dv_dr_domain_sync(domain, flags);
> +#else
> +     (void)domain;
> +     (void)flags;
> +     errno = ENOTSUP;
> +     return errno;
> +#endif
> +}
> +
>  static struct ibv_cq_ex *
>  mlx5_glue_dv_create_cq(struct ibv_context *context,
>                      struct ibv_cq_init_attr_ex *cq_attr,
> @@ -1331,6 +1344,7 @@
>       .dr_destroy_flow_tbl = mlx5_glue_dr_destroy_flow_tbl,
>       .dr_create_domain = mlx5_glue_dr_create_domain,
>       .dr_destroy_domain = mlx5_glue_dr_destroy_domain,
> +     .dr_sync_domain = mlx5_glue_dr_sync_domain,
>       .dv_create_cq = mlx5_glue_dv_create_cq,
>       .dv_create_wq = mlx5_glue_dv_create_wq,
>       .dv_query_device = mlx5_glue_dv_query_device,
> diff --git a/drivers/common/mlx5/linux/mlx5_glue.h
> b/drivers/common/mlx5/linux/mlx5_glue.h
> index 42b2f61..a5e7fb3 100644
> --- a/drivers/common/mlx5/linux/mlx5_glue.h
> +++ b/drivers/common/mlx5/linux/mlx5_glue.h
> @@ -224,6 +224,7 @@ struct mlx5_glue {
>       void *(*dr_create_domain)(struct ibv_context *ctx,
>                                 enum mlx5dv_dr_domain_type domain);
>       int (*dr_destroy_domain)(void *domain);
> +     int (*dr_sync_domain)(void *domain, uint32_t flags);
>       struct ibv_cq_ex *(*dv_create_cq)
>               (struct ibv_context *context,
>                struct ibv_cq_init_attr_ex *cq_attr,
> --
> 1.8.3.1
Series applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
 

Reply via email to