Skip to content

Commit ad11c4f

Browse files
roidayanSaeed Mahameed
authored and
Saeed Mahameed
committed
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: 544fe7c ("net/mlx5e: Activate HW multipath and handle port affinity based on FIB events") Signed-off-by: Roi Dayan <[email protected]> Reviewed-by: Maor Dickman <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 39bab83 commit ad11c4f

File tree

1 file changed

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

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
@@ -126,6 +126,10 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
126126
return;
127127
}
128128

129+
/* Handle multipath entry with lower priority value */
130+
if (mp->mfi && mp->mfi != fi && fi->fib_priority >= mp->mfi->fib_priority)
131+
return;
132+
129133
/* Handle add/replace event */
130134
nhs = fib_info_num_path(fi);
131135
if (nhs == 1) {
@@ -135,12 +139,13 @@ static void mlx5_lag_fib_route_event(struct mlx5_lag *ldev,
135139
int i = mlx5_lag_dev_get_netdev_idx(ldev, nh_dev);
136140

137141
if (i < 0)
138-
i = MLX5_LAG_NORMAL_AFFINITY;
139-
else
140-
++i;
142+
return;
141143

144+
i++;
142145
mlx5_lag_set_port_affinity(ldev, i);
143146
}
147+
148+
mp->mfi = fi;
144149
return;
145150
}
146151

0 commit comments

Comments
 (0)