Lines Matching defs:sch
75 static bool is_packet_valid(struct Qdisc *sch, struct sk_buff *nskb)
77 struct etf_sched_data *q = qdisc_priv(sch);
108 static struct sk_buff *etf_peek_timesortedlist(struct Qdisc *sch)
110 struct etf_sched_data *q = qdisc_priv(sch);
120 static void reset_watchdog(struct Qdisc *sch)
122 struct etf_sched_data *q = qdisc_priv(sch);
123 struct sk_buff *skb = etf_peek_timesortedlist(sch);
162 static int etf_enqueue_timesortedlist(struct sk_buff *nskb, struct Qdisc *sch,
165 struct etf_sched_data *q = qdisc_priv(sch);
170 if (!is_packet_valid(sch, nskb)) {
173 return qdisc_drop(nskb, sch, to_free);
191 qdisc_qstats_backlog_inc(sch, nskb);
192 sch->q.qlen++;
195 reset_watchdog(sch);
200 static void timesortedlist_drop(struct Qdisc *sch, struct sk_buff *skb,
203 struct etf_sched_data *q = qdisc_priv(sch);
218 skb->dev = qdisc_dev(sch);
222 qdisc_qstats_backlog_dec(sch, skb);
223 qdisc_drop(skb, sch, &to_free);
224 qdisc_qstats_overlimit(sch);
225 sch->q.qlen--;
231 static void timesortedlist_remove(struct Qdisc *sch, struct sk_buff *skb)
233 struct etf_sched_data *q = qdisc_priv(sch);
242 skb->dev = qdisc_dev(sch);
244 qdisc_qstats_backlog_dec(sch, skb);
246 qdisc_bstats_update(sch, skb);
250 sch->q.qlen--;
253 static struct sk_buff *etf_dequeue_timesortedlist(struct Qdisc *sch)
255 struct etf_sched_data *q = qdisc_priv(sch);
259 skb = etf_peek_timesortedlist(sch);
267 timesortedlist_drop(sch, skb, now);
276 timesortedlist_remove(sch, skb);
285 timesortedlist_remove(sch, skb);
291 reset_watchdog(sch);
346 static int etf_init(struct Qdisc *sch, struct nlattr *opt,
349 struct etf_sched_data *q = qdisc_priv(sch);
350 struct net_device *dev = qdisc_dev(sch);
382 q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0);
415 qdisc_watchdog_init_clockid(&q->watchdog, sch, q->clockid);
420 static void timesortedlist_clear(struct Qdisc *sch)
422 struct etf_sched_data *q = qdisc_priv(sch);
432 sch->q.qlen--;
436 static void etf_reset(struct Qdisc *sch)
438 struct etf_sched_data *q = qdisc_priv(sch);
441 if (q->watchdog.qdisc == sch)
445 timesortedlist_clear(sch);
446 __qdisc_reset_queue(&sch->q);
451 static void etf_destroy(struct Qdisc *sch)
453 struct etf_sched_data *q = qdisc_priv(sch);
454 struct net_device *dev = qdisc_dev(sch);
457 if (q->watchdog.qdisc == sch)
463 static int etf_dump(struct Qdisc *sch, struct sk_buff *skb)
465 struct etf_sched_data *q = qdisc_priv(sch);