Lines Matching refs:sch
92 static inline int gred_wred_mode_check(struct Qdisc *sch) in gred_wred_mode_check() argument
94 struct gred_sched *table = qdisc_priv(sch); in gred_wred_mode_check()
115 struct Qdisc *sch) in gred_backlog() argument
118 return sch->qstats.backlog; in gred_backlog()
152 static int gred_enqueue(struct sk_buff *skb, struct Qdisc *sch) in gred_enqueue() argument
155 struct gred_sched *t = qdisc_priv(sch); in gred_enqueue()
168 if (skb_queue_len(&sch->q) < qdisc_dev(sch)->tx_queue_len) in gred_enqueue()
169 return qdisc_enqueue_tail(skb, sch); in gred_enqueue()
199 gred_backlog(t, q, sch)); in gred_enqueue()
212 qdisc_qstats_overlimit(sch); in gred_enqueue()
222 qdisc_qstats_overlimit(sch); in gred_enqueue()
232 if (gred_backlog(t, q, sch) + qdisc_pkt_len(skb) <= q->limit) { in gred_enqueue()
234 return qdisc_enqueue_tail(skb, sch); in gred_enqueue()
239 return qdisc_drop(skb, sch); in gred_enqueue()
242 qdisc_drop(skb, sch); in gred_enqueue()
246 static struct sk_buff *gred_dequeue(struct Qdisc *sch) in gred_dequeue() argument
249 struct gred_sched *t = qdisc_priv(sch); in gred_dequeue()
251 skb = qdisc_dequeue_head(sch); in gred_dequeue()
264 if (!sch->qstats.backlog) in gred_dequeue()
278 static unsigned int gred_drop(struct Qdisc *sch) in gred_drop() argument
281 struct gred_sched *t = qdisc_priv(sch); in gred_drop()
283 skb = qdisc_dequeue_tail(sch); in gred_drop()
297 if (!sch->qstats.backlog) in gred_drop()
305 qdisc_drop(skb, sch); in gred_drop()
312 static void gred_reset(struct Qdisc *sch) in gred_reset() argument
315 struct gred_sched *t = qdisc_priv(sch); in gred_reset()
317 qdisc_reset_queue(sch); in gred_reset()
335 static inline int gred_change_table_def(struct Qdisc *sch, struct nlattr *dps) in gred_change_table_def() argument
337 struct gred_sched *table = qdisc_priv(sch); in gred_change_table_def()
349 sch_tree_lock(sch); in gred_change_table_def()
359 sch_tree_unlock(sch); in gred_change_table_def()
364 if (gred_wred_mode_check(sch)) in gred_change_table_def()
383 static inline int gred_change_vq(struct Qdisc *sch, int dp, in gred_change_vq() argument
388 struct gred_sched *table = qdisc_priv(sch); in gred_change_vq()
419 static int gred_change(struct Qdisc *sch, struct nlattr *opt) in gred_change() argument
421 struct gred_sched *table = qdisc_priv(sch); in gred_change()
437 return gred_change_table_def(sch, opt); in gred_change()
468 sch_tree_lock(sch); in gred_change()
470 err = gred_change_vq(sch, ctl->DP, ctl, prio, stab, max_P, &prealloc); in gred_change()
476 if (gred_wred_mode_check(sch)) in gred_change()
483 sch_tree_unlock(sch); in gred_change()
489 static int gred_init(struct Qdisc *sch, struct nlattr *opt) in gred_init() argument
504 return gred_change_table_def(sch, tb[TCA_GRED_DPS]); in gred_init()
507 static int gred_dump(struct Qdisc *sch, struct sk_buff *skb) in gred_dump() argument
509 struct gred_sched *table = qdisc_priv(sch); in gred_dump()
556 opt.backlog = gred_backlog(table, q, sch); in gred_dump()
591 static void gred_destroy(struct Qdisc *sch) in gred_destroy() argument
593 struct gred_sched *table = qdisc_priv(sch); in gred_destroy()