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

Justin Pettit jpettit at nicira.com
Thu Dec 9 01:27:32 UTC 2010


Nice addition.

--Justin


On Dec 8, 2010, at 4:26 PM, Ben Pfaff wrote:

> 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
> 
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org





More information about the dev mailing list