diff mbox

print_rate: use knowledge in rate_suffix table for human readable rates.

Message ID 1362885998-14292-1-git-send-email-j.vimal@gmail.com
State Rejected, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Vimalkumar March 10, 2013, 3:26 a.m. UTC
Signed-off-by: Vimalkumar <j.vimal@gmail.com>
---
 tc/tc_util.c |   26 ++++++++++++--------------
 1 files changed, 12 insertions(+), 14 deletions(-)

Comments

Eric Dumazet March 10, 2013, 4:08 a.m. UTC | #1
On Sat, 2013-03-09 at 19:26 -0800, Vimalkumar wrote:
> Signed-off-by: Vimalkumar <j.vimal@gmail.com>
> ---
>  tc/tc_util.c |   26 ++++++++++++--------------
>  1 files changed, 12 insertions(+), 14 deletions(-)
> 
> diff --git a/tc/tc_util.c b/tc/tc_util.c
> index 0939536..6e68d87 100644
> --- a/tc/tc_util.c
> +++ b/tc/tc_util.c
> @@ -139,7 +139,8 @@ static const struct rate_suffix {
>  	{ "GBps",	8000000000. },
>  	{ "TiBps",	8.*1024.*1024.*1024.*1024. },
>  	{ "TBps",	8000000000000. },
> -	{ NULL }
> +	{ NULL },
> +	{ NULL },
>  };
>  

You'll have to explicitly add in the title a way to say its a patch for
iproute2.

[PATCH iproute2] tc:  use knowledge in rate_suffix table for human readable rates.

To avoid the confusion, as netdev is more likely to review kernel patches.


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Hemminger March 12, 2013, midnight UTC | #2
On Sat,  9 Mar 2013 19:26:38 -0800
Vimalkumar <j.vimal@gmail.com> wrote:

> 
> Signed-off-by: Vimalkumar <j.vimal@gmail.com>
> ---
>  tc/tc_util.c |   26 ++++++++++++--------------
>  1 files changed, 12 insertions(+), 14 deletions(-)
> 
> diff --git a/tc/tc_util.c b/tc/tc_util.c
> index 0939536..6e68d87 100644
> --- a/tc/tc_util.c
> +++ b/tc/tc_util.c
> @@ -139,7 +139,8 @@ static const struct rate_suffix {
>  	{ "GBps",	8000000000. },
>  	{ "TiBps",	8.*1024.*1024.*1024.*1024. },
>  	{ "TBps",	8000000000000. },
> -	{ NULL }
> +	{ NULL },
> +	{ NULL },
>  };
>  
>  
> @@ -171,21 +172,18 @@ void print_rate(char *buf, int len, __u64 rate)
>  {
>  	double tmp = (double)rate*8;
>  	extern int use_iec;
> +	int start = 0;
> +	const struct rate_suffix *s;
>  
>  	if (use_iec) {
> -		if (tmp >= 1000.0*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
> -			snprintf(buf, len, "%.0fbit", tmp);
> -	} else {
> -		if (tmp >= 1000.0*1000000.0)
> -			snprintf(buf, len, "%.0fMbit", tmp/1000000.0);
> -		else if (tmp >= 1000.0 * 1000.0)
> -			snprintf(buf, len, "%.0fKbit", tmp/1000.0);
> -		else
> -			snprintf(buf, len, "%.0fbit",  tmp);
> +		start = 1;
> +	}
> +
> +	snprintf(buf, len, "%.0fbit", tmp);
> +	for (s = &suffixes[start]; s->name; s += 2) {
> +		if (tmp >= s->scale) {
> +			snprintf(buf, len, "%.3f%s", tmp / s->scale, s->name);
> +		}
>  	}
>  }
>  

Sorry, can't accept this because your patch loses functionality.
The iec flag was added for those people who
prefer iec (1024 bit) intervals. Your patch gets rid of that.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/tc/tc_util.c b/tc/tc_util.c
index 0939536..6e68d87 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -139,7 +139,8 @@  static const struct rate_suffix {
 	{ "GBps",	8000000000. },
 	{ "TiBps",	8.*1024.*1024.*1024.*1024. },
 	{ "TBps",	8000000000000. },
-	{ NULL }
+	{ NULL },
+	{ NULL },
 };
 
 
@@ -171,21 +172,18 @@  void print_rate(char *buf, int len, __u64 rate)
 {
 	double tmp = (double)rate*8;
 	extern int use_iec;
+	int start = 0;
+	const struct rate_suffix *s;
 
 	if (use_iec) {
-		if (tmp >= 1000.0*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
-			snprintf(buf, len, "%.0fbit", tmp);
-	} else {
-		if (tmp >= 1000.0*1000000.0)
-			snprintf(buf, len, "%.0fMbit", tmp/1000000.0);
-		else if (tmp >= 1000.0 * 1000.0)
-			snprintf(buf, len, "%.0fKbit", tmp/1000.0);
-		else
-			snprintf(buf, len, "%.0fbit",  tmp);
+		start = 1;
+	}
+
+	snprintf(buf, len, "%.0fbit", tmp);
+	for (s = &suffixes[start]; s->name; s += 2) {
+		if (tmp >= s->scale) {
+			snprintf(buf, len, "%.3f%s", tmp / s->scale, s->name);
+		}
 	}
 }