/net/sched/ |
D | sch_mq.c | 25 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 …]
|
D | sch_fifo.c | 22 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 …]
|
D | sch_codel.c | 71 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 …]
|
D | sch_prio.c | 35 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 …]
|
D | sch_multiq.c | 41 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 …]
|
D | sch_drr.c | 42 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 …]
|
D | sch_atm.c | 72 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 …]
|
D | sch_red.c | 59 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 …]
|
D | sch_dsmark.c | 63 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 …]
|
D | sch_fq_codel.c | 82 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 …]
|
D | sch_mqprio.c | 27 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 …]
|
D | sch_pie.c | 98 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 …]
|
D | sch_ingress.c | 25 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 …]
|
D | sch_tbf.c | 148 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 …]
|
D | sch_choke.c | 118 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 …]
|
D | sch_sfq.c | 166 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 …]
|
D | sch_gred.c | 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 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 …]
|
D | sch_hhf.c | 246 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 …]
|
D | sch_sfb.c | 282 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 …]
|
D | sch_netem.c | 356 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 …]
|
D | sch_plug.c | 91 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 …]
|
D | sch_hfsc.c | 832 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 …]
|
D | sch_fq.c | 316 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 …]
|
D | sch_qfq.c | 209 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/ |
D | xt_sctp.c | 45 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 …]
|