|
|
@@ -37,19 +37,9 @@
|
|
|
#include <linux/if_link.h>
|
|
|
#include <net/devlink.h>
|
|
|
#include <linux/mlx5/device.h>
|
|
|
+#include <linux/mlx5/eswitch.h>
|
|
|
#include "lib/mpfs.h"
|
|
|
|
|
|
-enum {
|
|
|
- SRIOV_NONE,
|
|
|
- SRIOV_LEGACY,
|
|
|
- SRIOV_OFFLOADS
|
|
|
-};
|
|
|
-
|
|
|
-enum {
|
|
|
- REP_ETH,
|
|
|
- NUM_REP_TYPES,
|
|
|
-};
|
|
|
-
|
|
|
#ifdef CONFIG_MLX5_ESWITCH
|
|
|
|
|
|
#define MLX5_MAX_UC_PER_VPORT(dev) \
|
|
|
@@ -145,24 +135,6 @@ struct mlx5_eswitch_fdb {
|
|
|
};
|
|
|
};
|
|
|
|
|
|
-struct mlx5_eswitch_rep;
|
|
|
-struct mlx5_eswitch_rep_if {
|
|
|
- int (*load)(struct mlx5_core_dev *dev,
|
|
|
- struct mlx5_eswitch_rep *rep);
|
|
|
- void (*unload)(struct mlx5_eswitch_rep *rep);
|
|
|
- void *(*get_proto_dev)(struct mlx5_eswitch_rep *rep);
|
|
|
- void *priv;
|
|
|
- bool valid;
|
|
|
-};
|
|
|
-
|
|
|
-struct mlx5_eswitch_rep {
|
|
|
- struct mlx5_eswitch_rep_if rep_if[NUM_REP_TYPES];
|
|
|
- u16 vport;
|
|
|
- u8 hw_id[ETH_ALEN];
|
|
|
- u16 vlan;
|
|
|
- u32 vlan_refcount;
|
|
|
-};
|
|
|
-
|
|
|
struct mlx5_esw_offload {
|
|
|
struct mlx5_flow_table *ft_offloads;
|
|
|
struct mlx5_flow_group *vport_rx_group;
|
|
|
@@ -232,9 +204,6 @@ int mlx5_eswitch_get_vport_config(struct mlx5_eswitch *esw,
|
|
|
int mlx5_eswitch_get_vport_stats(struct mlx5_eswitch *esw,
|
|
|
int vport,
|
|
|
struct ifla_vf_stats *vf_stats);
|
|
|
-struct mlx5_flow_handle *
|
|
|
-mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *esw, int vport,
|
|
|
- u32 sqn);
|
|
|
void mlx5_eswitch_del_send_to_vport_rule(struct mlx5_flow_handle *rule);
|
|
|
|
|
|
struct mlx5_flow_spec;
|
|
|
@@ -279,18 +248,7 @@ int mlx5_devlink_eswitch_inline_mode_get(struct devlink *devlink, u8 *mode);
|
|
|
int mlx5_eswitch_inline_mode_get(struct mlx5_eswitch *esw, int nvfs, u8 *mode);
|
|
|
int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, u8 encap);
|
|
|
int mlx5_devlink_eswitch_encap_mode_get(struct devlink *devlink, u8 *encap);
|
|
|
-void mlx5_eswitch_register_vport_rep(struct mlx5_eswitch *esw,
|
|
|
- int vport_index,
|
|
|
- struct mlx5_eswitch_rep_if *rep_if,
|
|
|
- u8 rep_type);
|
|
|
-void mlx5_eswitch_unregister_vport_rep(struct mlx5_eswitch *esw,
|
|
|
- int vport_index,
|
|
|
- u8 rep_type);
|
|
|
void *mlx5_eswitch_get_uplink_priv(struct mlx5_eswitch *esw, u8 rep_type);
|
|
|
-void *mlx5_eswitch_get_proto_dev(struct mlx5_eswitch *esw,
|
|
|
- int vport,
|
|
|
- u8 rep_type);
|
|
|
-void *mlx5_eswitch_uplink_get_proto_dev(struct mlx5_eswitch *esw, u8 rep_type);
|
|
|
|
|
|
int mlx5_eswitch_add_vlan_action(struct mlx5_eswitch *esw,
|
|
|
struct mlx5_esw_flow_attr *attr);
|