[iproute PATCH] ip-route: Pretty-print expired routes

Subsystems: the rest

STALE3706d

5 messages, 3 authors, 2016-08-12 · open the first message on its own page

[iproute PATCH] ip-route: Pretty-print expired routes

From: Phil Sutter <phil@nwl.cc>
Date: 2016-08-10 18:24:07

Instead of printing 'expires -23sec' for expired (but not yet garbage
collected) routes, print 'expired 23sec' instead.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index c52294d298210..a89a26d68be0f 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -305,6 +305,14 @@ static void print_rtax_features(FILE *fp, unsigned int features)
 		fprintf(fp, " 0x%x", of);
 }
 
+static void print_expires(FILE *fp, __s32 expires, int hz)
+{
+	if (expires > 0)
+		fprintf(fp, " expires %dsec", expires/hz);
+	else
+		fprintf(fp, " expired %dsec", -expires/hz);
+}
+
 int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 {
 	FILE *fp = (FILE *)arg;
@@ -502,7 +510,7 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 			if (!hz)
 				hz = get_user_hz();
 			if (ci->rta_expires != 0)
-				fprintf(fp, " expires %dsec", ci->rta_expires/hz);
+				print_expires(fp, ci->rta_expires, hz);
 			if (ci->rta_error != 0)
 				fprintf(fp, " error %d", ci->rta_error);
 			if (show_stats) {
@@ -530,7 +538,7 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 			if (r->rtm_flags & RTM_F_CLONED)
 				fprintf(fp, "%s    cache ", _SL_);
 			if (ci->rta_expires)
-				fprintf(fp, " expires %dsec", ci->rta_expires/hz);
+				print_expires(fp, ci->rta_expires, hz);
 			if (ci->rta_error != 0)
 				fprintf(fp, " error %d", ci->rta_error);
 			if (show_stats) {
-- 
2.8.2

Re: [iproute PATCH] ip-route: Pretty-print expired routes

From: Edward Cree <hidden>
Date: 2016-08-11 13:46:39

On 10/08/16 12:14, Phil Sutter wrote:
quoted hunk
Instead of printing 'expires -23sec' for expired (but not yet garbage
collected) routes, print 'expired 23sec' instead.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index c52294d298210..a89a26d68be0f 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -305,6 +305,14 @@ static void print_rtax_features(FILE *fp, unsigned int features)
 		fprintf(fp, " 0x%x", of);
 }
 
+static void print_expires(FILE *fp, __s32 expires, int hz)
+{
+	if (expires > 0)
+		fprintf(fp, " expires %dsec", expires/hz);
+	else
+		fprintf(fp, " expired %dsec", -expires/hz);
+}
Perhaps something that differs by more than a single character, to
make it stand out more?  I don't know what to suggest, though.

-Ed

Re: [iproute PATCH] ip-route: Pretty-print expired routes

From: Phil Sutter <phil@nwl.cc>
Date: 2016-08-11 13:55:04

On Thu, Aug 11, 2016 at 02:46:26PM +0100, Edward Cree wrote:
On 10/08/16 12:14, Phil Sutter wrote:
quoted
Instead of printing 'expires -23sec' for expired (but not yet garbage
collected) routes, print 'expired 23sec' instead.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index c52294d298210..a89a26d68be0f 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -305,6 +305,14 @@ static void print_rtax_features(FILE *fp, unsigned int features)
              fprintf(fp, " 0x%x", of);
 }

+static void print_expires(FILE *fp, __s32 expires, int hz)
+{
+     if (expires > 0)
+             fprintf(fp, " expires %dsec", expires/hz);
+     else
+             fprintf(fp, " expired %dsec", -expires/hz);
+}
Perhaps something that differs by more than a single character, to
make it stand out more?  I don't know what to suggest, though.
Yes, I thought about that, too. At first, I had "expired for %dsec" for
the second case, but decided that it was a bit too verbose given that
all route info goes into a single line and is still meant to be
human-readable. :)

Cheers, Phil

Re: [iproute PATCH] ip-route: Pretty-print expired routes

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2016-08-12 19:58:18

On Thu, 11 Aug 2016 15:54:50 +0200
Phil Sutter [off-list ref] wrote:
On Thu, Aug 11, 2016 at 02:46:26PM +0100, Edward Cree wrote:
quoted
On 10/08/16 12:14, Phil Sutter wrote:  
quoted
Instead of printing 'expires -23sec' for expired (but not yet garbage
collected) routes, print 'expired 23sec' instead.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index c52294d298210..a89a26d68be0f 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -305,6 +305,14 @@ static void print_rtax_features(FILE *fp, unsigned int features)
              fprintf(fp, " 0x%x", of);
 }

+static void print_expires(FILE *fp, __s32 expires, int hz)
+{
+     if (expires > 0)
+             fprintf(fp, " expires %dsec", expires/hz);
+     else
+             fprintf(fp, " expired %dsec", -expires/hz);
+}  
Perhaps something that differs by more than a single character, to
make it stand out more?  I don't know what to suggest, though.  
Yes, I thought about that, too. At first, I had "expired for %dsec" for
the second case, but decided that it was a bit too verbose given that
all route info goes into a single line and is still meant to be
human-readable. :)

Cheers, Phil
This makes sense to humans but changing the output format can break some brittle
scripts that parse output of iproute tools.  The risk of incompatibility is a
bigger issue than the small gain in readability. Sorry, not taking this.

Re: [iproute PATCH] ip-route: Pretty-print expired routes

From: Phil Sutter <phil@nwl.cc>
Date: 2016-08-12 21:11:29

On Fri, Aug 12, 2016 at 12:58:15PM -0700, Stephen Hemminger wrote:
On Thu, 11 Aug 2016 15:54:50 +0200
Phil Sutter [off-list ref] wrote:
quoted
On Thu, Aug 11, 2016 at 02:46:26PM +0100, Edward Cree wrote:
quoted
On 10/08/16 12:14, Phil Sutter wrote:  
quoted
Instead of printing 'expires -23sec' for expired (but not yet garbage
collected) routes, print 'expired 23sec' instead.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/ip/iproute.c b/ip/iproute.c
index c52294d298210..a89a26d68be0f 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -305,6 +305,14 @@ static void print_rtax_features(FILE *fp, unsigned int features)
              fprintf(fp, " 0x%x", of);
 }

+static void print_expires(FILE *fp, __s32 expires, int hz)
+{
+     if (expires > 0)
+             fprintf(fp, " expires %dsec", expires/hz);
+     else
+             fprintf(fp, " expired %dsec", -expires/hz);
+}  
Perhaps something that differs by more than a single character, to
make it stand out more?  I don't know what to suggest, though.  
Yes, I thought about that, too. At first, I had "expired for %dsec" for
the second case, but decided that it was a bit too verbose given that
all route info goes into a single line and is still meant to be
human-readable. :)

Cheers, Phil
This makes sense to humans but changing the output format can break some brittle
scripts that parse output of iproute tools.  The risk of incompatibility is a
bigger issue than the small gain in readability. Sorry, not taking this.
Sure, no problem.

Thanks, Phil
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help