Skip to content

Commit 1fdabf2

Browse files
roidayangregkh
authored andcommitted
net/mlx5e: Lag, Only handle events from highest priority multipath entry
[ Upstream commit ad11c4f ] 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: 544fe7c ("net/mlx5e: Activate HW multipath and handle port affinity based on FIB events") Signed-off-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Maor Dickman <maord@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent f3331bc commit 1fdabf2

File tree

1 file changed

+8
-3
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+8
-3
lines changed

drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
123123
return;
124124
}
125125

126+
/* Handle multipath entry with lower priority value */
127+
if (mp->mfi && mp->mfi != fi && fi->fib_priority >= mp->mfi->fib_priority)
128+
return;
129+
126130
/* Handle add/replace event */
127131
nhs = fib_info_num_path(fi);
128132
if (nhs == 1) {
@@ -132,12 +136,13 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
132136
int i = mlx5_lag_dev_get_netdev_idx(ldev, nh_dev);
133137

134138
if (i < 0)
135-
i = MLX5_LAG_NORMAL_AFFINITY;
136-
else
137-
++i;
139+
return;
138140

141+
i++;
139142
mlx5_lag_set_port_affinity(ldev, i);
140143
}
144+
145+
mp->mfi = fi;
141146
return;
142147
}
143148

0 commit comments

Comments
 (0)