#include <linux/netdevice.h>
#include <net/nexthop.h>
#include "lag/lag.h"
#include "lag/mp.h"
#include "mlx5_core.h"
#include "eswitch.h"
#include "lib/events.h"
static bool __mlx5_lag_is_multipath(struct mlx5_lag *ldev)
{ … }
#define MLX5_LAG_MULTIPATH_OFFLOADS_SUPPORTED_PORTS …
static bool mlx5_lag_multipath_check_prereq(struct mlx5_lag *ldev)
{ … }
bool mlx5_lag_is_multipath(struct mlx5_core_dev *dev)
{ … }
static void mlx5_lag_set_port_affinity(struct mlx5_lag *ldev,
enum mlx5_lag_port_affinity port)
{ … }
static void mlx5_lag_fib_event_flush(struct notifier_block *nb)
{ … }
static void mlx5_lag_fib_set(struct lag_mp *mp, struct fib_info *fi, u32 dst, int dst_len)
{ … }
struct mlx5_fib_event_work { … };
static struct net_device*
mlx5_lag_get_next_fib_dev(struct mlx5_lag *ldev,
struct fib_info *fi,
struct net_device *current_dev)
{ … }
static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev, unsigned long event,
struct fib_entry_notifier_info *fen_info)
{ … }
static void mlx5_lag_fib_nexthop_event(struct mlx5_lag *ldev,
unsigned long event,
struct fib_nh *fib_nh,
struct fib_info *fi)
{ … }
static void mlx5_lag_fib_update(struct work_struct *work)
{ … }
static struct mlx5_fib_event_work *
mlx5_lag_init_fib_work(struct mlx5_lag *ldev, unsigned long event)
{ … }
static int mlx5_lag_fib_event(struct notifier_block *nb,
unsigned long event,
void *ptr)
{ … }
void mlx5_lag_mp_reset(struct mlx5_lag *ldev)
{ … }
int mlx5_lag_mp_init(struct mlx5_lag *ldev)
{ … }
void mlx5_lag_mp_cleanup(struct mlx5_lag *ldev)
{ … }