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