Home
last modified time | relevance | path

Searched refs:sch (Results 1 – 25 of 34) sorted by relevance

12

/net/sched/
Dsch_mq.c25 static void mq_destroy(struct Qdisc *sch) in mq_destroy() argument
27 struct net_device *dev = qdisc_dev(sch); in mq_destroy()
28 struct mq_sched *priv = qdisc_priv(sch); in mq_destroy()
38 static int mq_init(struct Qdisc *sch, struct nlattr *opt) in mq_init() argument
40 struct net_device *dev = qdisc_dev(sch); in mq_init()
41 struct mq_sched *priv = qdisc_priv(sch); in mq_init()
46 if (sch->parent != TC_H_ROOT) in mq_init()
61 TC_H_MAKE(TC_H_MAJ(sch->handle), in mq_init()
69 sch->flags |= TCQ_F_MQROOT; in mq_init()
73 static void mq_attach(struct Qdisc *sch) in mq_attach() argument
[all …]
Dsch_fifo.c22 static int bfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch, in bfifo_enqueue() argument
25 if (likely(sch->qstats.backlog + qdisc_pkt_len(skb) <= sch->limit)) in bfifo_enqueue()
26 return qdisc_enqueue_tail(skb, sch); in bfifo_enqueue()
28 return qdisc_drop(skb, sch, to_free); in bfifo_enqueue()
31 static int pfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch, in pfifo_enqueue() argument
34 if (likely(sch->q.qlen < sch->limit)) in pfifo_enqueue()
35 return qdisc_enqueue_tail(skb, sch); in pfifo_enqueue()
37 return qdisc_drop(skb, sch, to_free); in pfifo_enqueue()
40 static int pfifo_tail_enqueue(struct sk_buff *skb, struct Qdisc *sch, in pfifo_tail_enqueue() argument
45 if (likely(sch->q.qlen < sch->limit)) in pfifo_tail_enqueue()
[all …]
Dsch_codel.c71 struct Qdisc *sch = ctx; in dequeue_func() local
72 struct sk_buff *skb = __qdisc_dequeue_head(&sch->q); in dequeue_func()
75 sch->qstats.backlog -= qdisc_pkt_len(skb); in dequeue_func()
83 struct Qdisc *sch = ctx; in drop_func() local
86 qdisc_qstats_drop(sch); in drop_func()
89 static struct sk_buff *codel_qdisc_dequeue(struct Qdisc *sch) in codel_qdisc_dequeue() argument
91 struct codel_sched_data *q = qdisc_priv(sch); in codel_qdisc_dequeue()
94 skb = codel_dequeue(sch, &sch->qstats.backlog, &q->params, &q->vars, in codel_qdisc_dequeue()
101 if (q->stats.drop_count && sch->q.qlen) { in codel_qdisc_dequeue()
102 qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len); in codel_qdisc_dequeue()
[all …]
Dsch_prio.c35 prio_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) in prio_classify() argument
37 struct prio_sched_data *q = qdisc_priv(sch); in prio_classify()
44 if (TC_H_MAJ(skb->priority) != sch->handle) { in prio_classify()
72 prio_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free) in prio_enqueue() argument
77 qdisc = prio_classify(skb, sch, &ret); in prio_enqueue()
82 qdisc_qstats_drop(sch); in prio_enqueue()
90 qdisc_qstats_backlog_inc(sch, skb); in prio_enqueue()
91 sch->q.qlen++; in prio_enqueue()
95 qdisc_qstats_drop(sch); in prio_enqueue()
99 static struct sk_buff *prio_peek(struct Qdisc *sch) in prio_peek() argument
[all …]
Dsch_multiq.c41 multiq_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) in multiq_classify() argument
43 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_classify()
70 multiq_enqueue(struct sk_buff *skb, struct Qdisc *sch, in multiq_enqueue() argument
76 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue()
81 qdisc_qstats_drop(sch); in multiq_enqueue()
89 sch->q.qlen++; in multiq_enqueue()
93 qdisc_qstats_drop(sch); in multiq_enqueue()
97 static struct sk_buff *multiq_dequeue(struct Qdisc *sch) in multiq_dequeue() argument
99 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dequeue()
114 netdev_get_tx_queue(qdisc_dev(sch), q->curband))) { in multiq_dequeue()
[all …]
Dsch_drr.c42 static struct drr_class *drr_find_class(struct Qdisc *sch, u32 classid) in drr_find_class() argument
44 struct drr_sched *q = qdisc_priv(sch); in drr_find_class()
66 static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in drr_change_class() argument
69 struct drr_sched *q = qdisc_priv(sch); in drr_change_class()
88 quantum = psched_mtu(qdisc_dev(sch)); in drr_change_class()
95 qdisc_root_sleeping_running(sch), in drr_change_class()
101 sch_tree_lock(sch); in drr_change_class()
104 sch_tree_unlock(sch); in drr_change_class()
115 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class()
125 qdisc_root_sleeping_running(sch), in drr_change_class()
[all …]
Dsch_atm.c72 static inline struct atm_flow_data *lookup_flow(struct Qdisc *sch, u32 classid) in lookup_flow() argument
74 struct atm_qdisc_data *p = qdisc_priv(sch); in lookup_flow()
84 static int atm_tc_graft(struct Qdisc *sch, unsigned long arg, in atm_tc_graft() argument
87 struct atm_qdisc_data *p = qdisc_priv(sch); in atm_tc_graft()
91 sch, p, flow, new, old); in atm_tc_graft()
103 static struct Qdisc *atm_tc_leaf(struct Qdisc *sch, unsigned long cl) in atm_tc_leaf() argument
107 pr_debug("atm_tc_leaf(sch %p,flow %p)\n", sch, flow); in atm_tc_leaf()
111 static unsigned long atm_tc_find(struct Qdisc *sch, u32 classid) in atm_tc_find() argument
113 struct atm_qdisc_data *p __maybe_unused = qdisc_priv(sch); in atm_tc_find()
116 pr_debug("%s(sch %p,[qdisc %p],classid %x)\n", __func__, sch, p, classid); in atm_tc_find()
[all …]
Dsch_red.c59 static int red_enqueue(struct sk_buff *skb, struct Qdisc *sch, in red_enqueue() argument
62 struct red_sched_data *q = qdisc_priv(sch); in red_enqueue()
78 qdisc_qstats_overlimit(sch); in red_enqueue()
88 qdisc_qstats_overlimit(sch); in red_enqueue()
101 qdisc_qstats_backlog_inc(sch, skb); in red_enqueue()
102 sch->q.qlen++; in red_enqueue()
105 qdisc_qstats_drop(sch); in red_enqueue()
110 qdisc_drop(skb, sch, to_free); in red_enqueue()
114 static struct sk_buff *red_dequeue(struct Qdisc *sch) in red_dequeue() argument
117 struct red_sched_data *q = qdisc_priv(sch); in red_dequeue()
[all …]
Dsch_dsmark.c63 static int dsmark_graft(struct Qdisc *sch, unsigned long arg, in dsmark_graft() argument
66 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_graft()
69 __func__, sch, p, new, old); in dsmark_graft()
72 new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in dsmark_graft()
73 sch->handle); in dsmark_graft()
78 *old = qdisc_replace(sch, new, &p->q); in dsmark_graft()
82 static struct Qdisc *dsmark_leaf(struct Qdisc *sch, unsigned long arg) in dsmark_leaf() argument
84 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_leaf()
88 static unsigned long dsmark_find(struct Qdisc *sch, u32 classid) in dsmark_find() argument
93 static unsigned long dsmark_bind_filter(struct Qdisc *sch, in dsmark_bind_filter() argument
[all …]
Dsch_fq_codel.c82 static unsigned int fq_codel_classify(struct sk_buff *skb, struct Qdisc *sch, in fq_codel_classify() argument
85 struct fq_codel_sched_data *q = qdisc_priv(sch); in fq_codel_classify()
90 if (TC_H_MAJ(skb->priority) == sch->handle && in fq_codel_classify()
142 static unsigned int fq_codel_drop(struct Qdisc *sch, unsigned int max_packets, in fq_codel_drop() argument
145 struct fq_codel_sched_data *q = qdisc_priv(sch); in fq_codel_drop()
182 sch->qstats.drops += i; in fq_codel_drop()
183 sch->qstats.backlog -= len; in fq_codel_drop()
184 sch->q.qlen -= i; in fq_codel_drop()
188 static int fq_codel_enqueue(struct sk_buff *skb, struct Qdisc *sch, in fq_codel_enqueue() argument
191 struct fq_codel_sched_data *q = qdisc_priv(sch); in fq_codel_enqueue()
[all …]
Dsch_mqprio.c27 static void mqprio_destroy(struct Qdisc *sch) in mqprio_destroy() argument
29 struct net_device *dev = qdisc_dev(sch); in mqprio_destroy()
30 struct mqprio_sched *priv = qdisc_priv(sch); in mqprio_destroy()
100 static int mqprio_init(struct Qdisc *sch, struct nlattr *opt) in mqprio_init() argument
102 struct net_device *dev = qdisc_dev(sch); in mqprio_init()
103 struct mqprio_sched *priv = qdisc_priv(sch); in mqprio_init()
112 if (sch->parent != TC_H_ROOT) in mqprio_init()
135 TC_H_MAKE(TC_H_MAJ(sch->handle), in mqprio_init()
168 sch->flags |= TCQ_F_MQROOT; in mqprio_init()
172 static void mqprio_attach(struct Qdisc *sch) in mqprio_attach() argument
[all …]
Dsch_pie.c98 static bool drop_early(struct Qdisc *sch, u32 packet_size) in drop_early() argument
100 struct pie_sched_data *q = qdisc_priv(sch); in drop_early()
103 u32 mtu = psched_mtu(qdisc_dev(sch)); in drop_early()
119 if (sch->qstats.backlog < 2 * mtu) in drop_early()
137 static int pie_qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch, in pie_qdisc_enqueue() argument
140 struct pie_sched_data *q = qdisc_priv(sch); in pie_qdisc_enqueue()
143 if (unlikely(qdisc_qlen(sch) >= sch->limit)) { in pie_qdisc_enqueue()
148 if (!drop_early(sch, skb->len)) { in pie_qdisc_enqueue()
162 if (qdisc_qlen(sch) > q->stats.maxq) in pie_qdisc_enqueue()
163 q->stats.maxq = qdisc_qlen(sch); in pie_qdisc_enqueue()
[all …]
Dsch_ingress.c25 static struct Qdisc *ingress_leaf(struct Qdisc *sch, unsigned long arg) in ingress_leaf() argument
30 static unsigned long ingress_find(struct Qdisc *sch, u32 classid) in ingress_find() argument
35 static unsigned long ingress_bind_filter(struct Qdisc *sch, in ingress_bind_filter() argument
38 return ingress_find(sch, classid); in ingress_bind_filter()
41 static void ingress_unbind_filter(struct Qdisc *sch, unsigned long cl) in ingress_unbind_filter() argument
45 static void ingress_walk(struct Qdisc *sch, struct qdisc_walker *walker) in ingress_walk() argument
49 static struct tcf_block *ingress_tcf_block(struct Qdisc *sch, unsigned long cl) in ingress_tcf_block() argument
51 struct ingress_sched_data *q = qdisc_priv(sch); in ingress_tcf_block()
56 static int ingress_init(struct Qdisc *sch, struct nlattr *opt) in ingress_init() argument
58 struct ingress_sched_data *q = qdisc_priv(sch); in ingress_init()
[all …]
Dsch_tbf.c148 static int tbf_segment(struct sk_buff *skb, struct Qdisc *sch, in tbf_segment() argument
151 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_segment()
160 return qdisc_drop(skb, sch, to_free); in tbf_segment()
171 qdisc_qstats_drop(sch); in tbf_segment()
177 sch->q.qlen += nb; in tbf_segment()
179 qdisc_tree_reduce_backlog(sch, 1 - nb, prev_len - len); in tbf_segment()
184 static int tbf_enqueue(struct sk_buff *skb, struct Qdisc *sch, in tbf_enqueue() argument
187 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_enqueue()
192 return tbf_segment(skb, sch, to_free); in tbf_enqueue()
193 return qdisc_drop(skb, sch, to_free); in tbf_enqueue()
[all …]
Dsch_choke.c118 static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx, in choke_drop_by_idx() argument
121 struct choke_sched_data *q = qdisc_priv(sch); in choke_drop_by_idx()
131 qdisc_qstats_backlog_dec(sch, skb); in choke_drop_by_idx()
132 qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb)); in choke_drop_by_idx()
133 qdisc_drop(skb, sch, to_free); in choke_drop_by_idx()
134 --sch->q.qlen; in choke_drop_by_idx()
223 static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch, in choke_enqueue() argument
226 struct choke_sched_data *q = qdisc_priv(sch); in choke_enqueue()
231 q->vars.qavg = red_calc_qavg(p, &q->vars, sch->q.qlen); in choke_enqueue()
244 choke_drop_by_idx(sch, idx, to_free); in choke_enqueue()
[all …]
Dsch_sfq.c166 static unsigned int sfq_classify(struct sk_buff *skb, struct Qdisc *sch, in sfq_classify() argument
169 struct sfq_sched_data *q = qdisc_priv(sch); in sfq_classify()
174 if (TC_H_MAJ(skb->priority) == sch->handle && in sfq_classify()
295 static unsigned int sfq_drop(struct Qdisc *sch, struct sk_buff **to_free) in sfq_drop() argument
297 struct sfq_sched_data *q = qdisc_priv(sch); in sfq_drop()
312 sch->q.qlen--; in sfq_drop()
313 qdisc_qstats_backlog_dec(sch, skb); in sfq_drop()
314 qdisc_drop(skb, sch, to_free); in sfq_drop()
348 sfq_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free) in sfq_enqueue() argument
350 struct sfq_sched_data *q = qdisc_priv(sch); in sfq_enqueue()
[all …]
Dsch_gred.c92 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
156 struct gred_sched *t = qdisc_priv(sch); in gred_enqueue()
169 if (likely(sch->qstats.backlog + qdisc_pkt_len(skb) <= in gred_enqueue()
170 sch->limit)) in gred_enqueue()
171 return qdisc_enqueue_tail(skb, sch); in gred_enqueue()
201 gred_backlog(t, q, sch)); in gred_enqueue()
[all …]
Dsch_hhf.c246 static enum wdrr_bucket_idx hhf_classify(struct sk_buff *skb, struct Qdisc *sch) in hhf_classify() argument
248 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_classify()
348 static unsigned int hhf_drop(struct Qdisc *sch, struct sk_buff **to_free) in hhf_drop() argument
350 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_drop()
361 sch->q.qlen--; in hhf_drop()
362 qdisc_qstats_backlog_dec(sch, skb); in hhf_drop()
363 qdisc_drop(skb, sch, to_free); in hhf_drop()
370 static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch, in hhf_enqueue() argument
373 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_enqueue()
378 idx = hhf_classify(skb, sch); in hhf_enqueue()
[all …]
Dsch_sfb.c282 static int sfb_enqueue(struct sk_buff *skb, struct Qdisc *sch, in sfb_enqueue() argument
286 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_enqueue()
296 if (unlikely(sch->q.qlen >= q->limit)) { in sfb_enqueue()
297 qdisc_qstats_overlimit(sch); in sfb_enqueue()
350 qdisc_qstats_overlimit(sch); in sfb_enqueue()
376 qdisc_qstats_overlimit(sch); in sfb_enqueue()
407 qdisc_qstats_backlog_inc(sch, skb); in sfb_enqueue()
408 sch->q.qlen++; in sfb_enqueue()
412 qdisc_qstats_drop(sch); in sfb_enqueue()
417 qdisc_drop(skb, sch, to_free); in sfb_enqueue()
[all …]
Dsch_netem.c356 static void tfifo_reset(struct Qdisc *sch) in tfifo_reset() argument
358 struct netem_sched_data *q = qdisc_priv(sch); in tfifo_reset()
369 static void tfifo_enqueue(struct sk_buff *nskb, struct Qdisc *sch) in tfifo_enqueue() argument
371 struct netem_sched_data *q = qdisc_priv(sch); in tfifo_enqueue()
387 sch->q.qlen++; in tfifo_enqueue()
394 static struct sk_buff *netem_segment(struct sk_buff *skb, struct Qdisc *sch, in netem_segment() argument
403 qdisc_drop(skb, sch, to_free); in netem_segment()
426 static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, in netem_enqueue() argument
429 struct netem_sched_data *q = qdisc_priv(sch); in netem_enqueue()
449 qdisc_qstats_drop(sch); /* mark packet */ in netem_enqueue()
[all …]
Dsch_plug.c91 static int plug_enqueue(struct sk_buff *skb, struct Qdisc *sch, in plug_enqueue() argument
94 struct plug_sched_data *q = qdisc_priv(sch); in plug_enqueue()
96 if (likely(sch->qstats.backlog + skb->len <= q->limit)) { in plug_enqueue()
99 return qdisc_enqueue_tail(skb, sch); in plug_enqueue()
102 return qdisc_drop(skb, sch, to_free); in plug_enqueue()
105 static struct sk_buff *plug_dequeue(struct Qdisc *sch) in plug_dequeue() argument
107 struct plug_sched_data *q = qdisc_priv(sch); in plug_dequeue()
123 return qdisc_dequeue_head(sch); in plug_dequeue()
126 static int plug_init(struct Qdisc *sch, struct nlattr *opt) in plug_init() argument
128 struct plug_sched_data *q = qdisc_priv(sch); in plug_init()
[all …]
Dsch_hfsc.c832 qdisc_peek_len(struct Qdisc *sch) in qdisc_peek_len() argument
837 skb = sch->ops->peek(sch); in qdisc_peek_len()
839 qdisc_warn_nonwc("qdisc_peek_len", sch); in qdisc_peek_len()
848 hfsc_purge_queue(struct Qdisc *sch, struct hfsc_class *cl) in hfsc_purge_queue() argument
874 hfsc_find_class(u32 classid, struct Qdisc *sch) in hfsc_find_class() argument
876 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_find_class()
923 hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in hfsc_change_class() argument
926 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_class()
976 qdisc_root_sleeping_running(sch), in hfsc_change_class()
982 sch_tree_lock(sch); in hfsc_change_class()
[all …]
Dsch_fq.c316 static struct sk_buff *fq_dequeue_head(struct Qdisc *sch, struct fq_flow *flow) in fq_dequeue_head() argument
324 qdisc_qstats_backlog_dec(sch, skb); in fq_dequeue_head()
325 sch->q.qlen--; in fq_dequeue_head()
388 static int fq_enqueue(struct sk_buff *skb, struct Qdisc *sch, in fq_enqueue() argument
391 struct fq_sched_data *q = qdisc_priv(sch); in fq_enqueue()
394 if (unlikely(sch->q.qlen >= sch->limit)) in fq_enqueue()
395 return qdisc_drop(skb, sch, to_free); in fq_enqueue()
400 return qdisc_drop(skb, sch, to_free); in fq_enqueue()
406 qdisc_qstats_backlog_inc(sch, skb); in fq_enqueue()
428 sch->q.qlen++; in fq_enqueue()
[all …]
Dsch_qfq.c209 static struct qfq_class *qfq_find_class(struct Qdisc *sch, u32 classid) in qfq_find_class() argument
211 struct qfq_sched *q = qdisc_priv(sch); in qfq_find_class()
386 static int qfq_change_agg(struct Qdisc *sch, struct qfq_class *cl, u32 weight, in qfq_change_agg() argument
389 struct qfq_sched *q = qdisc_priv(sch); in qfq_change_agg()
404 static int qfq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in qfq_change_class() argument
407 struct qfq_sched *q = qdisc_priv(sch); in qfq_change_class()
442 lmax = psched_mtu(qdisc_dev(sch)); in qfq_change_class()
465 qdisc_root_sleeping_running(sch), in qfq_change_class()
482 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in qfq_change_class()
491 qdisc_root_sleeping_running(sch), in qfq_change_class()
[all …]
/net/netfilter/
Dxt_sctp.c45 const struct sctp_chunkhdr *sch; in match_packet() local
59 sch = skb_header_pointer(skb, offset, sizeof(_sch), &_sch); in match_packet()
60 if (sch == NULL || sch->length == 0) { in match_packet()
68 ++i, offset, sch->type, htons(sch->length), in match_packet()
69 sch->flags); in match_packet()
71 offset += SCTP_PAD4(ntohs(sch->length)); in match_packet()
75 if (SCTP_CHUNKMAP_IS_SET(info->chunkmap, sch->type)) { in match_packet()
79 sch->type, sch->flags)) { in match_packet()
86 sch->type, sch->flags)) in match_packet()
87 SCTP_CHUNKMAP_CLEAR(chunkmapcopy, sch->type); in match_packet()
[all …]

12