iplink: Validate minimum tx rate is less than maximum tx rate

According to the documentation (man ip-link), the minimum TXRATE should
be always <= Maximum TXRATE, but commit f89a2a05ff ("Add support to
configure SR-IOV VF minimum and maximum Tx rate through ip tool") didn't
enforce it.

Fixes: f89a2a05ff ("Add support to configure SR-IOV VF minimum and maximum Tx rate through ip tool")
Cc: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Gal Pressman <galp@mellanox.com>
Reviewed-by: Eran Ben Elisha <eranbe@mellanox.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
This commit is contained in:
Gal Pressman 2018-01-16 15:41:58 +02:00 committed by Stephen Hemminger
parent a3e0229e25
commit 04be08e0bd
1 changed files with 8 additions and 0 deletions

View File

@ -539,6 +539,14 @@ static int iplink_parse_vf(int vf, int *argcp, char ***argvp,
if (tivt.max_tx_rate == -1)
tivt.max_tx_rate = tmax;
}
if (tivt.max_tx_rate && tivt.min_tx_rate > tivt.max_tx_rate) {
fprintf(stderr,
"Invalid min_tx_rate %d - must be <= max_tx_rate %d\n",
tivt.min_tx_rate, tivt.max_tx_rate);
return -1;
}
addattr_l(&req->n, sizeof(*req), IFLA_VF_RATE, &tivt,
sizeof(tivt));
}