#ifndef __MLX5_LAG_H__
#define __MLX5_LAG_H__
#include <linux/debugfs.h>
#define MLX5_LAG_MAX_HASH_BUCKETS …
#include "mlx5_core.h"
#include "mp.h"
#include "port_sel.h"
#include "mpesw.h"
enum { … };
enum { … };
enum { … };
enum mlx5_lag_mode { … };
struct lag_func { … };
struct lag_tracker { … };
struct mlx5_lag { … };
static inline struct mlx5_lag *
mlx5_lag_dev(struct mlx5_core_dev *dev)
{ … }
static inline bool
__mlx5_lag_is_active(struct mlx5_lag *ldev)
{ … }
static inline bool
mlx5_lag_is_ready(struct mlx5_lag *ldev)
{ … }
bool mlx5_lag_check_prereq(struct mlx5_lag *ldev);
void mlx5_modify_lag(struct mlx5_lag *ldev,
struct lag_tracker *tracker);
int mlx5_activate_lag(struct mlx5_lag *ldev,
struct lag_tracker *tracker,
enum mlx5_lag_mode mode,
bool shared_fdb);
int mlx5_lag_dev_get_netdev_idx(struct mlx5_lag *ldev,
struct net_device *ndev);
char *mlx5_get_str_port_sel_mode(enum mlx5_lag_mode mode, unsigned long flags);
void mlx5_infer_tx_enabled(struct lag_tracker *tracker, u8 num_ports,
u8 *ports, int *num_enabled);
void mlx5_ldev_add_debugfs(struct mlx5_core_dev *dev);
void mlx5_ldev_remove_debugfs(struct dentry *dbg);
void mlx5_disable_lag(struct mlx5_lag *ldev);
void mlx5_lag_remove_devices(struct mlx5_lag *ldev);
int mlx5_deactivate_lag(struct mlx5_lag *ldev);
void mlx5_lag_add_devices(struct mlx5_lag *ldev);
struct mlx5_devcom_comp_dev *mlx5_lag_get_devcom_comp(struct mlx5_lag *ldev);
static inline bool mlx5_lag_is_supported(struct mlx5_core_dev *dev)
{ … }
#endif