As /sys/class/net/<iface>/speed indicates a value in Mbits/sec, the conversion is necessary to create the correct limits.
This guarantees the same result for the following commands in an 1000Mbit/sec device: tc class add ... htb rate 500Mbit tc class add ... htb rate 50% Fixes: 927e3cfb52b5 ("tc: B.W limits can now be specified in %.") Signed-off-by: Marcos Antonio Moraes <marcos.anto...@digirati.com.br> --- tc/tc_util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tc/tc_util.c b/tc/tc_util.c index 4e289ae9..07216fba 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -195,7 +195,7 @@ static int parse_percent_rate(char *rate, size_t len, { long dev_mbit; int ret; - double perc, rate_mbit; + double perc, rate_bit; char *str_perc = NULL; if (!dev[0]) { @@ -220,9 +220,9 @@ static int parse_percent_rate(char *rate, size_t len, return -1; } - rate_mbit = perc * dev_mbit; + rate_bit = perc * dev_mbit * 1000 * 1000; - ret = snprintf(rate, len, "%lf", rate_mbit); + ret = snprintf(rate, len, "%lf", rate_bit); if (ret <= 0 || ret >= len) { fprintf(stderr, "Unable to parse calculated rate\n"); return -1; -- 2.17.1