Commit e401a184 authored by Eli Cohen's avatar Eli Cohen Committed by Saeed Mahameed

net/mlx5: E-Switch, Prevent ingress rate configuration of uplink rep

Since the implementation relies on limiting the VF transmit rate to
simulate ingress rate limiting, and since either uplink representor or
ecpf are not associated with a VF, we limit the rate limit configuration
for those ports.

Fixes: fcb64c0f ("net/mlx5: E-Switch, add ingress rate support")
Signed-off-by: default avatarEli Cohen <eli@mellanox.com>
Reviewed-by: default avatarRoi Dayan <roid@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
parent b850a821
...@@ -4036,6 +4036,13 @@ static int apply_police_params(struct mlx5e_priv *priv, u32 rate, ...@@ -4036,6 +4036,13 @@ static int apply_police_params(struct mlx5e_priv *priv, u32 rate,
u32 rate_mbps; u32 rate_mbps;
int err; int err;
vport_num = rpriv->rep->vport;
if (vport_num >= MLX5_VPORT_ECPF) {
NL_SET_ERR_MSG_MOD(extack,
"Ingress rate limit is supported only for Eswitch ports connected to VFs");
return -EOPNOTSUPP;
}
esw = priv->mdev->priv.eswitch; esw = priv->mdev->priv.eswitch;
/* rate is given in bytes/sec. /* rate is given in bytes/sec.
* First convert to bits/sec and then round to the nearest mbit/secs. * First convert to bits/sec and then round to the nearest mbit/secs.
...@@ -4044,8 +4051,6 @@ static int apply_police_params(struct mlx5e_priv *priv, u32 rate, ...@@ -4044,8 +4051,6 @@ static int apply_police_params(struct mlx5e_priv *priv, u32 rate,
* 1 mbit/sec. * 1 mbit/sec.
*/ */
rate_mbps = rate ? max_t(u32, (rate * 8 + 500000) / 1000000, 1) : 0; rate_mbps = rate ? max_t(u32, (rate * 8 + 500000) / 1000000, 1) : 0;
vport_num = rpriv->rep->vport;
err = mlx5_esw_modify_vport_rate(esw, vport_num, rate_mbps); err = mlx5_esw_modify_vport_rate(esw, vport_num, rate_mbps);
if (err) if (err)
NL_SET_ERR_MSG_MOD(extack, "failed applying action to hardware"); NL_SET_ERR_MSG_MOD(extack, "failed applying action to hardware");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment