mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
net/mlx5: Add support for querying bond speed
Add mlx5_lag_query_bond_speed() to query the aggregated speed of lag configurations with a bond device. Signed-off-by: Or Har-Toov <ohartoov@nvidia.com> Reviewed-by: Mark Bloch <mbloch@nvidia.com> Signed-off-by: Edward Srouji <edwards@nvidia.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
28ea6036da
commit
f0b2fde980
|
|
@ -1464,6 +1464,33 @@ static void mlx5_lag_update_tracker_speed(struct lag_tracker *tracker,
|
|||
tracker->bond_speed_mbps = lksettings.base.speed;
|
||||
}
|
||||
|
||||
/* Returns speed in Mbps. */
|
||||
int mlx5_lag_query_bond_speed(struct mlx5_core_dev *mdev, u32 *speed)
|
||||
{
|
||||
struct mlx5_lag *ldev;
|
||||
unsigned long flags;
|
||||
int ret = 0;
|
||||
|
||||
spin_lock_irqsave(&lag_lock, flags);
|
||||
ldev = mlx5_lag_dev(mdev);
|
||||
if (!ldev) {
|
||||
ret = -ENODEV;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
*speed = ldev->tracker.bond_speed_mbps;
|
||||
|
||||
if (*speed == SPEED_UNKNOWN) {
|
||||
mlx5_core_dbg(mdev, "Bond speed is unknown\n");
|
||||
ret = -EINVAL;
|
||||
}
|
||||
|
||||
unlock:
|
||||
spin_unlock_irqrestore(&lag_lock, flags);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx5_lag_query_bond_speed);
|
||||
|
||||
/* this handler is always registered to netdev events */
|
||||
static int mlx5_lag_netdev_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
|
|
|
|||
|
|
@ -1149,7 +1149,7 @@ int mlx5_cmd_destroy_vport_lag(struct mlx5_core_dev *dev);
|
|||
bool mlx5_lag_is_roce(struct mlx5_core_dev *dev);
|
||||
bool mlx5_lag_is_sriov(struct mlx5_core_dev *dev);
|
||||
bool mlx5_lag_is_active(struct mlx5_core_dev *dev);
|
||||
int mlx5_lag_query_bond_speed(struct net_device *bond_dev, u32 *speed);
|
||||
int mlx5_lag_query_bond_speed(struct mlx5_core_dev *dev, u32 *speed);
|
||||
bool mlx5_lag_mode_is_hash(struct mlx5_core_dev *dev);
|
||||
bool mlx5_lag_is_master(struct mlx5_core_dev *dev);
|
||||
bool mlx5_lag_is_shared_fdb(struct mlx5_core_dev *dev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user