Merge tag 'tty-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[linux-2.6-microblaze.git] / drivers / net / ethernet / mellanox / mlx5 / core / lag_mp.h
1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2 /* Copyright (c) 2019 Mellanox Technologies. */
3
4 #ifndef __MLX5_LAG_MP_H__
5 #define __MLX5_LAG_MP_H__
6
7 #include "lag.h"
8 #include "mlx5_core.h"
9
10 enum mlx5_lag_port_affinity {
11         MLX5_LAG_NORMAL_AFFINITY,
12         MLX5_LAG_P1_AFFINITY,
13         MLX5_LAG_P2_AFFINITY,
14 };
15
16 struct lag_mp {
17         struct notifier_block     fib_nb;
18         struct fib_info           *mfi; /* used in tracking fib events */
19         struct workqueue_struct   *wq;
20 };
21
22 #ifdef CONFIG_MLX5_ESWITCH
23
24 int mlx5_lag_mp_init(struct mlx5_lag *ldev);
25 void mlx5_lag_mp_cleanup(struct mlx5_lag *ldev);
26
27 #else /* CONFIG_MLX5_ESWITCH */
28
29 static inline int mlx5_lag_mp_init(struct mlx5_lag *ldev) { return 0; }
30 static inline void mlx5_lag_mp_cleanup(struct mlx5_lag *ldev) {}
31
32 #endif /* CONFIG_MLX5_ESWITCH */
33 #endif /* __MLX5_LAG_MP_H__ */