From: Patrick McHardy Date: Sun, 4 Mar 2007 19:15:01 +0000 (+0100) Subject: Add sprint_ticks() function and use in CBQ X-Git-Tag: v2.6.23-071016~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd29e35d9de9dc0b9015dd3a178ee2c716ce8301;p=thirdparty%2Fiproute2.git Add sprint_ticks() function and use in CBQ [IPROUTE]: Add sprint_ticks() function and use in CBQ Add helper function to print ticks to avoid assumptions about clock resolution in CBQ. Signed-off-by: Patrick McHardy Signed-off-by: Stephen Hemminger --- diff --git a/tc/q_cbq.c b/tc/q_cbq.c index 913b26a05..f2b4ce87d 100644 --- a/tc/q_cbq.c +++ b/tc/q_cbq.c @@ -418,6 +418,7 @@ static int cbq_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) struct tc_cbq_wrropt *wrr = NULL; struct tc_cbq_fopt *fopt = NULL; struct tc_cbq_ovl *ovl = NULL; + SPRINT_BUF(b1); if (opt == NULL) return 0; @@ -500,17 +501,17 @@ static int cbq_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) if (lss && show_details) { fprintf(f, "\nlevel %u ewma %u avpkt %ub ", lss->level, lss->ewma_log, lss->avpkt); if (lss->maxidle) { - fprintf(f, "maxidle %luus ", tc_core_tick2time(lss->maxidle>>lss->ewma_log)); + fprintf(f, "maxidle %s ", sprint_ticks(lss->maxidle>>lss->ewma_log, b1)); if (show_raw) fprintf(f, "[%08x] ", lss->maxidle); } if (lss->minidle!=0x7fffffff) { - fprintf(f, "minidle %luus ", tc_core_tick2time(lss->minidle>>lss->ewma_log)); + fprintf(f, "minidle %s ", sprint_ticks(lss->minidle>>lss->ewma_log, b1)); if (show_raw) fprintf(f, "[%08x] ", lss->minidle); } if (lss->offtime) { - fprintf(f, "offtime %luus ", tc_core_tick2time(lss->offtime)); + fprintf(f, "offtime %s ", sprint_ticks(lss->offtime, b1)); if (show_raw) fprintf(f, "[%08x] ", lss->offtime); } diff --git a/tc/q_netem.c b/tc/q_netem.c index 6035c4f00..67a2ff321 100644 --- a/tc/q_netem.c +++ b/tc/q_netem.c @@ -120,12 +120,6 @@ static int get_ticks(__u32 *ticks, const char *str) return 0; } -static char *sprint_ticks(__u32 ticks, char *buf) -{ - return sprint_usecs(tc_core_tick2usec(ticks), buf); -} - - static int netem_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nlmsghdr *n) { diff --git a/tc/tc_util.c b/tc/tc_util.c index b73fae96a..a7e42572d 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -255,6 +255,11 @@ char * sprint_time(__u32 time, char *buf) return buf; } +char * sprint_ticks(__u32 ticks, char *buf) +{ + return sprint_time(tc_core_tick2time(ticks), buf); +} + int get_size(unsigned *size, const char *str) { double sz; diff --git a/tc/tc_util.h b/tc/tc_util.h index b713cf14a..eade72d21 100644 --- a/tc/tc_util.h +++ b/tc/tc_util.h @@ -57,6 +57,7 @@ extern char * sprint_size(__u32 size, char *buf); extern char * sprint_qdisc_handle(__u32 h, char *buf); extern char * sprint_tc_classid(__u32 h, char *buf); extern char * sprint_time(__u32 time, char *buf); +extern char * sprint_ticks(__u32 ticks, char *buf); extern char * sprint_percent(__u32 percent, char *buf); extern void print_tcstats_attr(FILE *fp, struct rtattr *tb[], char *prefix, struct rtattr **xstats);