> -----Original Message----- > From: Leon Romanovsky <leon@xxxxxxxxxx> > Sent: Wednesday, June 12, 2019 5:50 PM > To: Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe > <jgg@xxxxxxxxxxxx> > Cc: Leon Romanovsky <leonro@xxxxxxxxxxxx>; RDMA mailing list <linux- > rdma@xxxxxxxxxxxxxxx>; Maor Gottlieb <maorg@xxxxxxxxxxxx>; Mark Bloch > <markb@xxxxxxxxxxxx>; Parav Pandit <parav@xxxxxxxxxxxx>; Petr Vorel > <pvorel@xxxxxxx>; Saeed Mahameed <saeedm@xxxxxxxxxxxx>; linux- > netdev <netdev@xxxxxxxxxxxxxxx>; Jiri Pirko <jiri@xxxxxxxxxxxx> > Subject: [PATCH mlx5-next v1 2/4] net/mlx5: Expose eswitch encap mode > > From: Maor Gottlieb <maorg@xxxxxxxxxxxx> > > Add API to get the current Eswitch encap mode. > It will be used in downstream patches to check if flow table can be created > with encap support or not. > > Signed-off-by: Maor Gottlieb <maorg@xxxxxxxxxxxx> > Reviewed-by: Petr Vorel <pvorel@xxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > --- > drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 11 +++++++++++ > include/linux/mlx5/eswitch.h | 12 ++++++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c > b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c > index 9ea0ccfe5ef5..0c68d93bea79 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c > @@ -2452,6 +2452,17 @@ u8 mlx5_eswitch_mode(struct mlx5_eswitch > *esw) } EXPORT_SYMBOL_GPL(mlx5_eswitch_mode); > > +enum devlink_eswitch_encap_mode > +mlx5_eswitch_get_encap_mode(const struct mlx5_core_dev *dev) { > + struct mlx5_eswitch *esw; > + > + esw = dev->priv.eswitch; > + return ESW_ALLOWED(esw) ? esw->offloads.encap : > + DEVLINK_ESWITCH_ENCAP_MODE_NONE; > +} > +EXPORT_SYMBOL(mlx5_eswitch_get_encap_mode); > + > bool mlx5_esw_lag_prereq(struct mlx5_core_dev *dev0, struct > mlx5_core_dev *dev1) { > if ((dev0->priv.eswitch->mode == SRIOV_NONE && diff --git > a/include/linux/mlx5/eswitch.h b/include/linux/mlx5/eswitch.h index > 0ca77dd1429c..f57c73e81267 100644 > --- a/include/linux/mlx5/eswitch.h > +++ b/include/linux/mlx5/eswitch.h > @@ -7,6 +7,7 @@ > #define _MLX5_ESWITCH_ > > #include <linux/mlx5/driver.h> > +#include <net/devlink.h> > > #define MLX5_ESWITCH_MANAGER(mdev) MLX5_CAP_GEN(mdev, > eswitch_manager) > > @@ -60,4 +61,15 @@ u8 mlx5_eswitch_mode(struct mlx5_eswitch *esw); > struct mlx5_flow_handle * mlx5_eswitch_add_send_to_vport_rule(struct > mlx5_eswitch *esw, > int vport, u32 sqn); > + > +#ifdef CONFIG_MLX5_ESWITCH > +enum devlink_eswitch_encap_mode > +mlx5_eswitch_get_encap_mode(const struct mlx5_core_dev *dev); #else /* > +CONFIG_MLX5_ESWITCH */ static inline enum > devlink_eswitch_encap_mode > +mlx5_eswitch_get_encap_mode(const struct mlx5_core_dev *dev) { > + return DEVLINK_ESWITCH_ENCAP_MODE_NONE; } #endif /* > +CONFIG_MLX5_ESWITCH */ > #endif > -- > 2.20.1 Reviewed-by: Parav Pandit <parav@xxxxxxxxxxxx>