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);
343 static int etf_init(struct Qdisc *sch, struct nlattr *opt,
346 struct etf_sched_data *q = qdisc_priv(sch);
347 struct net_device *dev = qdisc_dev(sch);
379 q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0);
412 qdisc_watchdog_init_clockid(&q->watchdog, sch, q->clockid);
417 static void timesortedlist_clear(struct Qdisc *sch)
419 struct etf_sched_data *q = qdisc_priv(sch);
429 sch->q.qlen--;
433 static void etf_reset(struct Qdisc *sch)
435 struct etf_sched_data *q = qdisc_priv(sch);
438 if (q->watchdog.qdisc == sch)
442 timesortedlist_clear(sch);
443 __qdisc_reset_queue(&sch->q);
448 static void etf_destroy(struct Qdisc *sch)
450 struct etf_sched_data *q = qdisc_priv(sch);
451 struct net_device *dev = qdisc_dev(sch);
454 if (q->watchdog.qdisc == sch)
460 static int etf_dump(struct Qdisc *sch, struct sk_buff *skb)
462 struct etf_sched_data *q = qdisc_priv(sch);