On Tue, Oct 09, 2018 at 10:25:34PM +0300, Dekel Peled wrote:
> This patch adds glue functions for operations:
> - Create packet reformat (encap/decap) flow action.
> - Destroy flow action.
> 
> The new operations depend on HAVE_IBV_FLOW_ACTION_DV_SUPPORT.
> 
> Signed-off-by: Dekel Peled <dek...@mellanox.com>
> ---
>  drivers/net/mlx5/Makefile    |  5 +++++
>  drivers/net/mlx5/meson.build |  2 ++
>  drivers/net/mlx5/mlx5_glue.c | 38 ++++++++++++++++++++++++++++++++++++++
>  drivers/net/mlx5/mlx5_glue.h | 13 +++++++++++++
>  4 files changed, 58 insertions(+)
> 
> diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
> index 92bae9d..474ad42 100644
> --- a/drivers/net/mlx5/Makefile
> +++ b/drivers/net/mlx5/Makefile
> @@ -142,6 +142,11 @@ mlx5_autoconf.h.new: 
> $(RTE_SDK)/buildtools/auto-config-h.sh
>               enum MLX5DV_FLOW_ACTION_TAG \
>               $(AUTOCONF_OUTPUT)
>       $Q sh -- '$<' '$@' \
> +             HAVE_IBV_FLOW_ACTION_DV_SUPPORT \
> +             infiniband/mlx5dv.h \
> +             func mlx5dv_create_flow_action_packet_reformat \
> +             $(AUTOCONF_OUTPUT)
> +     $Q sh -- '$<' '$@' \
>               HAVE_ETHTOOL_LINK_MODE_25G \
>               /usr/include/linux/ethtool.h \
>               enum ETHTOOL_LINK_MODE_25000baseCR_Full_BIT \
> diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
> index 6966248..d555c3c 100644
> --- a/drivers/net/mlx5/meson.build
> +++ b/drivers/net/mlx5/meson.build
> @@ -96,6 +96,8 @@ if build
>               'MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP' ],
>               [ 'HAVE_IBV_FLOW_DV_SUPPORT', 'infiniband/mlx5dv.h',
>               'MLX5DV_FLOW_ACTION_TAG' ],
> +             [ 'HAVE_IBV_FLOW_ACTION_DV_SUPPORT', 'infiniband/mlx5dv.h',
> +             'mlx5dv_create_flow_action_packet_reformat' ],
>               [ 'HAVE_IBV_DEVICE_MPLS_SUPPORT', 'infiniband/verbs.h',
>               'IBV_FLOW_SPEC_MPLS' ],
>               [ 'HAVE_IBV_WQ_FLAG_RX_END_PADDING', 'infiniband/verbs.h',
> diff --git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c
> index 48590df..63fbab1 100644
> --- a/drivers/net/mlx5/mlx5_glue.c
> +++ b/drivers/net/mlx5/mlx5_glue.c
> @@ -174,6 +174,17 @@
>       return ibv_destroy_flow(flow_id);
>  }
>  
> +static int
> +mlx5_glue_destroy_flow_action(struct ibv_flow_action *action)
> +{
> +#ifdef HAVE_IBV_FLOW_ACTION_DV_SUPPORT
> +     return ibv_destroy_flow_action(action);
> +#else
> +     (void)action;
> +     return NULL;

And this should be
        return ENOTSUP;
Return type mismatches, you'll see a compiler warning.

Thanks,
Yongseok

Reply via email to