--- iproute2-2.6.8/include/linux/pkt_sched.h 2004-08-23 16:22:16.000000000 -0400 +++ iproute2-2.6.8-mod/include/linux/pkt_sched.h 2004-08-27 10:18:32.000000000 -0400 @@ -38,6 +38,7 @@ __u32 pps; /* Current flow packet rate */ __u32 qlen; __u32 backlog; + __u32 reqs; }; struct tc_estimator --- iproute2-2.6.8/tc/tc_qdisc.c 2004-08-23 16:22:16.000000000 -0400 +++ iproute2-2.6.8-mod/tc/tc_qdisc.c 2004-08-29 13:20:25.000000000 -0400 @@ -171,8 +171,8 @@ { SPRINT_BUF(b1); - fprintf(fp, " Sent %llu bytes %u pkts (dropped %u, overlimits %u ) ", - (unsigned long long)st->bytes, st->packets, st->drops, st->overlimits); + fprintf(fp, " Sent %llu bytes %u pkts (dropped %u, overlimits %u requeus%u ) ", + (unsigned long long)st->bytes, st->packets, st->drops, st->overlimits, st->reqs); if (st->bps || st->pps || st->qlen || st->backlog) { fprintf(fp, "\n "); if (st->bps || st->pps) { @@ -255,8 +255,13 @@ fprintf(fp, "\n"); if (show_stats) { if (tb[TCA_STATS]) { + /* FIXME: need to work with old kernels. + * At the moment this just catches them + */ if (RTA_PAYLOAD(tb[TCA_STATS]) < sizeof(struct tc_stats)) - fprintf(fp, "statistics truncated"); + fprintf(fp, "statistics truncated "); + fprintf (fp, "expected %d bytes got %d\n",sizeof(struct tc_stats),RTA_PAYLOAD(tb[TCA_STATS])); + fprintf("Maybe an old kernel?"); else { struct tc_stats st; memcpy(&st, RTA_DATA(tb[TCA_STATS]), sizeof(st));