Lines Matching refs:sch

73 static bool is_packet_valid(struct Qdisc *sch, struct sk_buff *nskb)  in is_packet_valid()  argument
75 struct etf_sched_data *q = qdisc_priv(sch); in is_packet_valid()
102 static struct sk_buff *etf_peek_timesortedlist(struct Qdisc *sch) in etf_peek_timesortedlist() argument
104 struct etf_sched_data *q = qdisc_priv(sch); in etf_peek_timesortedlist()
114 static void reset_watchdog(struct Qdisc *sch) in reset_watchdog() argument
116 struct etf_sched_data *q = qdisc_priv(sch); in reset_watchdog()
117 struct sk_buff *skb = etf_peek_timesortedlist(sch); in reset_watchdog()
153 static int etf_enqueue_timesortedlist(struct sk_buff *nskb, struct Qdisc *sch, in etf_enqueue_timesortedlist() argument
156 struct etf_sched_data *q = qdisc_priv(sch); in etf_enqueue_timesortedlist()
160 if (!is_packet_valid(sch, nskb)) { in etf_enqueue_timesortedlist()
163 return qdisc_drop(nskb, sch, to_free); in etf_enqueue_timesortedlist()
179 qdisc_qstats_backlog_inc(sch, nskb); in etf_enqueue_timesortedlist()
180 sch->q.qlen++; in etf_enqueue_timesortedlist()
183 reset_watchdog(sch); in etf_enqueue_timesortedlist()
188 static void timesortedlist_erase(struct Qdisc *sch, struct sk_buff *skb, in timesortedlist_erase() argument
191 struct etf_sched_data *q = qdisc_priv(sch); in timesortedlist_erase()
200 skb->dev = qdisc_dev(sch); in timesortedlist_erase()
202 qdisc_qstats_backlog_dec(sch, skb); in timesortedlist_erase()
209 qdisc_drop(skb, sch, &to_free); in timesortedlist_erase()
211 qdisc_qstats_overlimit(sch); in timesortedlist_erase()
213 qdisc_bstats_update(sch, skb); in timesortedlist_erase()
218 sch->q.qlen--; in timesortedlist_erase()
221 static struct sk_buff *etf_dequeue_timesortedlist(struct Qdisc *sch) in etf_dequeue_timesortedlist() argument
223 struct etf_sched_data *q = qdisc_priv(sch); in etf_dequeue_timesortedlist()
227 skb = etf_peek_timesortedlist(sch); in etf_dequeue_timesortedlist()
235 timesortedlist_erase(sch, skb, true); in etf_dequeue_timesortedlist()
244 timesortedlist_erase(sch, skb, false); in etf_dequeue_timesortedlist()
253 timesortedlist_erase(sch, skb, false); in etf_dequeue_timesortedlist()
259 reset_watchdog(sch); in etf_dequeue_timesortedlist()
314 static int etf_init(struct Qdisc *sch, struct nlattr *opt, in etf_init() argument
317 struct etf_sched_data *q = qdisc_priv(sch); in etf_init()
318 struct net_device *dev = qdisc_dev(sch); in etf_init()
349 q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0); in etf_init()
381 qdisc_watchdog_init_clockid(&q->watchdog, sch, q->clockid); in etf_init()
386 static void timesortedlist_clear(struct Qdisc *sch) in timesortedlist_clear() argument
388 struct etf_sched_data *q = qdisc_priv(sch); in timesortedlist_clear()
398 sch->q.qlen--; in timesortedlist_clear()
402 static void etf_reset(struct Qdisc *sch) in etf_reset() argument
404 struct etf_sched_data *q = qdisc_priv(sch); in etf_reset()
407 if (q->watchdog.qdisc == sch) in etf_reset()
411 timesortedlist_clear(sch); in etf_reset()
412 __qdisc_reset_queue(&sch->q); in etf_reset()
414 sch->qstats.backlog = 0; in etf_reset()
415 sch->q.qlen = 0; in etf_reset()
420 static void etf_destroy(struct Qdisc *sch) in etf_destroy() argument
422 struct etf_sched_data *q = qdisc_priv(sch); in etf_destroy()
423 struct net_device *dev = qdisc_dev(sch); in etf_destroy()
426 if (q->watchdog.qdisc == sch) in etf_destroy()
432 static int etf_dump(struct Qdisc *sch, struct sk_buff *skb) in etf_dump() argument
434 struct etf_sched_data *q = qdisc_priv(sch); in etf_dump()