#endif
/* general class parameters */
u32 classid;
- struct tc_stats stats; /* generic stats */
+ struct gnet_stats_basic bstats;
+ struct gnet_stats_queue qstats;
+ struct gnet_stats_rate_est rate_est;
spinlock_t *stats_lock;
struct tc_htb_xstats xstats;/* our special stats */
int refcnt; /* usage count of this class */
#endif
else if (cl->un.leaf.q->enqueue(skb, cl->un.leaf.q) != NET_XMIT_SUCCESS) {
sch->qstats.drops++;
- cl->stats.drops++;
+ cl->qstats.drops++;
return NET_XMIT_DROP;
} else {
- cl->stats.packets++; cl->stats.bytes += skb->len;
+ cl->bstats.packets++; cl->bstats.bytes += skb->len;
htb_activate (q,cl);
}
}
} else if (cl->un.leaf.q->ops->requeue(skb, cl->un.leaf.q) != NET_XMIT_SUCCESS) {
sch->qstats.drops++;
- cl->stats.drops++;
+ cl->qstats.drops++;
return NET_XMIT_DROP;
} else
htb_activate (q,cl);
/* update byte stats except for leaves which are already updated */
if (cl->level) {
- cl->stats.bytes += bytes;
- cl->stats.packets++;
+ cl->bstats.bytes += bytes;
+ cl->bstats.packets++;
}
cl = cl->parent;
}