提交 321090e7 编写于 作者: T Thomas Graf 提交者: David S. Miller

[PKT_SCHED]: Add and use prio2list() in the pfifo_fast qdisc

prio2list() returns the relevant sk_buff_head for the
band specified by the priority for a given skb.
Signed-off-by: NThomas Graf <tgraf@suug.ch>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 821d24ae
...@@ -311,12 +311,17 @@ static const u8 prio2band[TC_PRIO_MAX+1] = ...@@ -311,12 +311,17 @@ static const u8 prio2band[TC_PRIO_MAX+1] =
generic prio+fifo combination. generic prio+fifo combination.
*/ */
static int static inline struct sk_buff_head *prio2list(struct sk_buff *skb,
pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc) struct Qdisc *qdisc)
{ {
struct sk_buff_head *list = qdisc_priv(qdisc); struct sk_buff_head *list = qdisc_priv(qdisc);
return list + prio2band[skb->priority & TC_PRIO_MAX];
}
list += prio2band[skb->priority&TC_PRIO_MAX]; static int
pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc)
{
struct sk_buff_head *list = prio2list(skb, qdisc);
if (skb_queue_len(list) < qdisc->dev->tx_queue_len) { if (skb_queue_len(list) < qdisc->dev->tx_queue_len) {
qdisc->q.qlen++; qdisc->q.qlen++;
...@@ -345,12 +350,8 @@ pfifo_fast_dequeue(struct Qdisc* qdisc) ...@@ -345,12 +350,8 @@ pfifo_fast_dequeue(struct Qdisc* qdisc)
static int static int
pfifo_fast_requeue(struct sk_buff *skb, struct Qdisc* qdisc) pfifo_fast_requeue(struct sk_buff *skb, struct Qdisc* qdisc)
{ {
struct sk_buff_head *list = qdisc_priv(qdisc);
list += prio2band[skb->priority&TC_PRIO_MAX];
qdisc->q.qlen++; qdisc->q.qlen++;
return __qdisc_requeue(skb, qdisc, list); return __qdisc_requeue(skb, qdisc, prio2list(skb, qdisc));
} }
static void static void
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册