#include <linux/module.h>
#include <asm/uaccess.h>
#include <asm/system.h>
-#include <asm/bitops.h>
+#include <linux/bitops.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
{
struct fifo_sched_data *q = qdisc_priv(sch);
- if (sch->stats.backlog + skb->len <= q->limit) {
+ if (sch->qstats.backlog + skb->len <= q->limit) {
__skb_queue_tail(&sch->q, skb);
- sch->stats.backlog += skb->len;
- sch->stats.bytes += skb->len;
- sch->stats.packets++;
+ sch->qstats.backlog += skb->len;
+ sch->bstats.bytes += skb->len;
+ sch->bstats.packets++;
return 0;
}
- sch->stats.drops++;
+ sch->qstats.drops++;
#ifdef CONFIG_NET_CLS_POLICE
if (sch->reshape_fail==NULL || sch->reshape_fail(skb, sch))
#endif
bfifo_requeue(struct sk_buff *skb, struct Qdisc* sch)
{
__skb_queue_head(&sch->q, skb);
- sch->stats.backlog += skb->len;
+ sch->qstats.backlog += skb->len;
+ sch->qstats.requeues++;
return 0;
}
skb = __skb_dequeue(&sch->q);
if (skb)
- sch->stats.backlog -= skb->len;
+ sch->qstats.backlog -= skb->len;
return skb;
}
skb = __skb_dequeue_tail(&sch->q);
if (skb) {
unsigned int len = skb->len;
- sch->stats.backlog -= len;
+ sch->qstats.backlog -= len;
kfree_skb(skb);
return len;
}
fifo_reset(struct Qdisc* sch)
{
skb_queue_purge(&sch->q);
- sch->stats.backlog = 0;
+ sch->qstats.backlog = 0;
}
static int
if (sch->q.qlen < q->limit) {
__skb_queue_tail(&sch->q, skb);
- sch->stats.bytes += skb->len;
- sch->stats.packets++;
+ sch->bstats.bytes += skb->len;
+ sch->bstats.packets++;
return 0;
}
- sch->stats.drops++;
+ sch->qstats.drops++;
#ifdef CONFIG_NET_CLS_POLICE
if (sch->reshape_fail==NULL || sch->reshape_fail(skb, sch))
#endif
pfifo_requeue(struct sk_buff *skb, struct Qdisc* sch)
{
__skb_queue_head(&sch->q, skb);
+ sch->qstats.requeues++;
return 0;
}