aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_red.c
diff options
context:
space:
mode:
authorJarek Poplawski <jarkao2@gmail.com>2008-10-31 03:45:55 -0400
committerDavid S. Miller <davem@davemloft.net>2008-10-31 03:45:55 -0400
commit8e3af97899db433111287e07d5105189f56fe191 (patch)
tree40e7779ea4b587c9c3b882018ccaac1b53419f1c /net/sched/sch_red.c
parent99c0db26797edb39cf83c8c5f8972067f5426b4e (diff)
pkt_sched: Add qdisc->ops->peek() implementation.
Add qdisc->ops->peek() implementation for work-conserving qdiscs. With feedback from Patrick McHardy. Signed-off-by: Jarek Poplawski <jarkao2@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_red.c')
-rw-r--r--net/sched/sch_red.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c
index 5da05839e225..7abc51454c2d 100644
--- a/net/sched/sch_red.c
+++ b/net/sched/sch_red.c
@@ -140,6 +140,14 @@ static struct sk_buff * red_dequeue(struct Qdisc* sch)
140 return skb; 140 return skb;
141} 141}
142 142
143static struct sk_buff * red_peek(struct Qdisc* sch)
144{
145 struct red_sched_data *q = qdisc_priv(sch);
146 struct Qdisc *child = q->qdisc;
147
148 return child->ops->peek(child);
149}
150
143static unsigned int red_drop(struct Qdisc* sch) 151static unsigned int red_drop(struct Qdisc* sch)
144{ 152{
145 struct red_sched_data *q = qdisc_priv(sch); 153 struct red_sched_data *q = qdisc_priv(sch);
@@ -361,6 +369,7 @@ static struct Qdisc_ops red_qdisc_ops __read_mostly = {
361 .cl_ops = &red_class_ops, 369 .cl_ops = &red_class_ops,
362 .enqueue = red_enqueue, 370 .enqueue = red_enqueue,
363 .dequeue = red_dequeue, 371 .dequeue = red_dequeue,
372 .peek = red_peek,
364 .requeue = red_requeue, 373 .requeue = red_requeue,
365 .drop = red_drop, 374 .drop = red_drop,
366 .init = red_init, 375 .init = red_init,