Commit ad11c4f1 authored by Roi Dayan's avatar Roi Dayan Committed by Saeed Mahameed
Browse files

net/mlx5e: Lag, Only handle events from highest priority multipath entry



There could be multiple multipath entries but changing the port affinity
for each one doesn't make much sense and there should be a default one.
So only track the entry with lowest priority value.
The commit doesn't affect existing users with a single entry.

Fixes: 544fe7c2 ("net/mlx5e: Activate HW multipath and handle port affinity based on FIB events")
Signed-off-by: default avatarRoi Dayan <roid@nvidia.com>
Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 39bab83b
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -126,6 +126,10 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
		return;
	}

	/* Handle multipath entry with lower priority value */
	if (mp->mfi && mp->mfi != fi && fi->fib_priority >= mp->mfi->fib_priority)
		return;

	/* Handle add/replace event */
	nhs = fib_info_num_path(fi);
	if (nhs == 1) {
@@ -135,12 +139,13 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
			int i = mlx5_lag_dev_get_netdev_idx(ldev, nh_dev);

			if (i < 0)
				i = MLX5_LAG_NORMAL_AFFINITY;
			else
				++i;
				return;

			i++;
			mlx5_lag_set_port_affinity(ldev, i);
		}

		mp->mfi = fi;
		return;
	}