Message ID | 20240512124306.740898-2-tariqt@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | e0e6adfe8c20f1b633017e4dafec1b06117da2df |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | mlx5 misc patches | expand |
On Sun, May 12, 2024 at 03:43:03PM +0300, Tariq Toukan wrote: > From: Shay Drory <shayd@nvidia.com> > > This patch adds to mlx5 drivers support for 8 ports HCAs. > Starting with ConnectX-8 HCAs with 8 ports are possible. > > As most driver parts aren't affected by such configuration most driver > code is unchanged. > > Specially the only affected areas are: > - Lag > - Multiport E-Switch > - Single FDB E-Switch > > All of the above are already factored in generic way, and LAG and VF LAG > are tested, so all that left is to change a #define and remove checks > which are no longer needed. > However, Multiport E-Switch is not tested yet, so it is left untouched. > > This patch will allow to create hardware LAG/VF LAG when all 8 ports are > added to the same bond device. > > for example, In order to activate the hardware lag a user can execute > the following: > > ip link add bond0 type bond > ip link set bond0 type bond miimon 100 mode 2 > ip link set eth2 master bond0 > ip link set eth3 master bond0 > ip link set eth4 master bond0 > ip link set eth5 master bond0 > ip link set eth6 master bond0 > ip link set eth7 master bond0 > ip link set eth8 master bond0 > ip link set eth9 master bond0 > > Where eth2, eth3, eth4, eth5, eth6, eth7, eth8 and eth9 are the PFs of > the same HCA. > > Signed-off-by: Shay Drory <shayd@nvidia.com> > Reviewed-by: Mark Bloch <mbloch@nvidia.com> > Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Reviewed-by: Simon Horman <horms@kernel.org>
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c index 69d482f7c5a2..5e2171ff0a89 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c @@ -713,7 +713,6 @@ int mlx5_deactivate_lag(struct mlx5_lag *ldev) return 0; } -#define MLX5_LAG_OFFLOADS_SUPPORTED_PORTS 4 bool mlx5_lag_check_prereq(struct mlx5_lag *ldev) { #ifdef CONFIG_MLX5_ESWITCH @@ -739,8 +738,6 @@ bool mlx5_lag_check_prereq(struct mlx5_lag *ldev) if (mlx5_eswitch_mode(ldev->pf[i].dev) != mode) return false; - if (mode == MLX5_ESWITCH_OFFLOADS && ldev->ports > MLX5_LAG_OFFLOADS_SUPPORTED_PORTS) - return false; #else for (i = 0; i < ldev->ports; i++) if (mlx5_sriov_is_enabled(ldev->pf[i].dev)) diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index bf9324a31ae9..8218588688b5 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -85,7 +85,7 @@ enum mlx5_sqp_t { }; enum { - MLX5_MAX_PORTS = 4, + MLX5_MAX_PORTS = 8, }; enum {