[PATCH] iproute: fix tc -iec display of Mibit rates
From: Andreas Henriksson <hidden>
Date: 2012-03-09 16:06:43
As reported by Thomas Mühlgrabner [off-list ref] in http://bugs.debian.org/662979 : When showing htb class configuration with "tc -iec class show", the output for Mibit is actually the value for bit. Example: configure a class with a ceil of 1000Mibit. Output states 1048576000 Mibit. The cause is missing parenteses in the display code of tc.... (Please also note that a lower value of 100Mibit will be displayed as 102400 Kibit, which I think is kind of ugly.) Reported-by: Thomas Mühlgrabner <redacted> Signed-off-by: Andreas Henriksson <redacted>
diff --git a/tc/tc_util.c b/tc/tc_util.c
index 5829d61..36e3c7d 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c@@ -203,7 +203,7 @@ void print_rate(char *buf, int len, __u32 rate) if (use_iec) { if (tmp >= 1000.0*1024.0*1024.0) - snprintf(buf, len, "%.0fMibit", tmp/1024.0*1024.0); + snprintf(buf, len, "%.0fMibit", tmp/(1024.0*1024.0)); else if (tmp >= 1000.0*1024) snprintf(buf, len, "%.0fKibit", tmp/1024); else