[ovs-dev] [ofp-print 06/18] ofp-print: Print durations more readably.

Ben Pfaff blp at nicira.com
Thu Dec 9 00:26:58 UTC 2010


It's easier to read "duration=1.75s" than "duration_sec=1s
duration_nsec=750000000ns".
---
 lib/ofp-print.c |   42 +++++++++++++++++++++++++++---------------
 1 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index b35e698..4dd8924 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -853,6 +853,19 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh,
 }
 
 static void
+ofp_print_duration(struct ds *string, unsigned int sec, unsigned int nsec)
+{
+    ds_put_format(string, "%u", sec);
+    if (nsec > 0) {
+        ds_put_format(string, ".%09u", nsec);
+        while (string->string[string->length - 1] == '0') {
+            string->length--;
+        }
+    }
+    ds_put_char(string, 's');
+}
+
+static void
 ofp_print_flow_removed(struct ds *string, const struct ofp_flow_removed *ofr,
                        int verbosity)
 {
@@ -879,9 +892,10 @@ ofp_print_flow_removed(struct ds *string, const struct ofp_flow_removed *ofr,
     if (ofr->priority != htons(32768)) {
         ds_put_format(string, " pri:%"PRIu16, ntohs(ofr->priority));
     }
-    ds_put_format(string, " secs%"PRIu32" nsecs%"PRIu32
-         " idle%"PRIu16" pkts%"PRIu64" bytes%"PRIu64"\n",
-         ntohl(ofr->duration_sec), ntohl(ofr->duration_nsec),
+    ds_put_cstr(string, " duration");
+    ofp_print_duration(string,
+                       ntohl(ofr->duration_sec), ntohl(ofr->duration_nsec));
+    ds_put_format(string, " idle%"PRIu16" pkts%"PRIu64" bytes%"PRIu64"\n",
          ntohs(ofr->idle_timeout), ntohll(ofr->packet_count),
          ntohll(ofr->byte_count));
 }
@@ -1103,12 +1117,11 @@ ofp_print_ofpst_flow_reply(struct ds *string, const struct ofp_header *oh,
             break;
         }
 
-        ds_put_format(string, " cookie=0x%"PRIx64", ", ntohll(fs->cookie));
-        ds_put_format(string, "duration_sec=%"PRIu32"s, ",
-                    ntohl(fs->duration_sec));
-        ds_put_format(string, "duration_nsec=%"PRIu32"ns, ",
-                    ntohl(fs->duration_nsec));
-        ds_put_format(string, "table_id=%"PRIu8", ", fs->table_id);
+        ds_put_format(string, " cookie=0x%"PRIx64", duration=",
+                      ntohll(fs->cookie));
+        ofp_print_duration(string, ntohl(fs->duration_sec),
+                           ntohl(fs->duration_nsec));
+        ds_put_format(string, ", table_id=%"PRIu8", ", fs->table_id);
         ds_put_format(string, "priority=%"PRIu16", ", ntohs(fs->priority));
         ds_put_format(string, "n_packets=%"PRIu64", ",
                     ntohll(fs->packet_count));
@@ -1165,12 +1178,11 @@ ofp_print_nxst_flow_reply(struct ds *string, const struct ofp_header *oh)
             break;
         }
 
-        ds_put_format(string, " cookie=0x%"PRIx64", ", ntohll(fs->cookie));
-        ds_put_format(string, "duration_sec=%"PRIu32"s, ",
-                    ntohl(fs->duration_sec));
-        ds_put_format(string, "duration_nsec=%"PRIu32"ns, ",
-                    ntohl(fs->duration_nsec));
-        ds_put_format(string, "table_id=%"PRIu8", ", fs->table_id);
+        ds_put_format(string, " cookie=0x%"PRIx64", duration=",
+                      ntohll(fs->cookie));
+        ofp_print_duration(string, ntohl(fs->duration_sec),
+                           ntohl(fs->duration_nsec));
+        ds_put_format(string, ", table_id=%"PRIu8", ", fs->table_id);
         ds_put_format(string, "priority=%"PRIu16", ", ntohs(fs->priority));
         ds_put_format(string, "n_packets=%"PRIu64", ",
                     ntohll(fs->packet_count));
-- 
1.7.1





More information about the dev mailing list