diff options
author | Jarek Poplawski <jarkao2@gmail.com> | 2008-10-31 03:45:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-10-31 03:45:55 -0400 |
commit | 8e3af97899db433111287e07d5105189f56fe191 (patch) | |
tree | 40e7779ea4b587c9c3b882018ccaac1b53419f1c /net/sched/sch_red.c | |
parent | 99c0db26797edb39cf83c8c5f8972067f5426b4e (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.c | 9 |
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 | ||
143 | static 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 | |||
143 | static unsigned int red_drop(struct Qdisc* sch) | 151 | static 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, |