Lines Matching refs:sch
89 static int plug_enqueue(struct sk_buff *skb, struct Qdisc *sch) in plug_enqueue() argument
91 struct plug_sched_data *q = qdisc_priv(sch); in plug_enqueue()
93 if (likely(sch->qstats.backlog + skb->len <= q->limit)) { in plug_enqueue()
96 return qdisc_enqueue_tail(skb, sch); in plug_enqueue()
99 return qdisc_reshape_fail(skb, sch); in plug_enqueue()
102 static struct sk_buff *plug_dequeue(struct Qdisc *sch) in plug_dequeue() argument
104 struct plug_sched_data *q = qdisc_priv(sch); in plug_dequeue()
106 if (qdisc_is_throttled(sch)) in plug_dequeue()
114 qdisc_throttled(sch); in plug_dequeue()
120 return qdisc_dequeue_head(sch); in plug_dequeue()
123 static int plug_init(struct Qdisc *sch, struct nlattr *opt) in plug_init() argument
125 struct plug_sched_data *q = qdisc_priv(sch); in plug_init()
137 u32 pkt_limit = qdisc_dev(sch)->tx_queue_len ? : 100; in plug_init()
138 q->limit = pkt_limit * psched_mtu(qdisc_dev(sch)); in plug_init()
148 qdisc_throttled(sch); in plug_init()
162 static int plug_change(struct Qdisc *sch, struct nlattr *opt) in plug_change() argument
164 struct plug_sched_data *q = qdisc_priv(sch); in plug_change()
180 qdisc_throttled(sch); in plug_change()
189 qdisc_unthrottled(sch); in plug_change()
190 netif_schedule_queue(sch->dev_queue); in plug_change()
197 qdisc_unthrottled(sch); in plug_change()
198 netif_schedule_queue(sch->dev_queue); in plug_change()