• Home
  • Raw
  • Download

Lines Matching refs:q

42 			 struct nlmsghdr *n, struct Qdisc *q,
142 struct Qdisc_ops *q, **qp; in register_qdisc() local
146 for (qp = &qdisc_base; (q = *qp) != NULL; qp = &q->next) in register_qdisc()
147 if (!strcmp(qops->id, q->id)) in register_qdisc()
186 struct Qdisc_ops *q, **qp; in unregister_qdisc() local
190 for (qp = &qdisc_base; (q = *qp) != NULL; qp = &q->next) in unregister_qdisc()
191 if (q == qops) in unregister_qdisc()
193 if (q) { in unregister_qdisc()
194 *qp = q->next; in unregister_qdisc()
195 q->next = NULL; in unregister_qdisc()
213 struct Qdisc_ops *q = NULL; in qdisc_lookup_default() local
215 for (q = qdisc_base; q; q = q->next) { in qdisc_lookup_default()
216 if (!strcmp(name, q->id)) { in qdisc_lookup_default()
217 if (!try_module_get(q->owner)) in qdisc_lookup_default()
218 q = NULL; in qdisc_lookup_default()
223 return q; in qdisc_lookup_default()
261 struct Qdisc *q; in qdisc_match_from_root() local
267 list_for_each_entry(q, &root->list, list) { in qdisc_match_from_root()
268 if (q->handle == handle) in qdisc_match_from_root()
269 return q; in qdisc_match_from_root()
274 void qdisc_list_add(struct Qdisc *q) in qdisc_list_add() argument
276 if ((q->parent != TC_H_ROOT) && !(q->flags & TCQ_F_INGRESS)) { in qdisc_list_add()
277 struct Qdisc *root = qdisc_dev(q)->qdisc; in qdisc_list_add()
280 list_add_tail(&q->list, &root->list); in qdisc_list_add()
285 void qdisc_list_del(struct Qdisc *q) in qdisc_list_del() argument
287 if ((q->parent != TC_H_ROOT) && !(q->flags & TCQ_F_INGRESS)) in qdisc_list_del()
288 list_del(&q->list); in qdisc_list_del()
294 struct Qdisc *q; in qdisc_lookup() local
296 q = qdisc_match_from_root(dev->qdisc, handle); in qdisc_lookup()
297 if (q) in qdisc_lookup()
301 q = qdisc_match_from_root( in qdisc_lookup()
305 return q; in qdisc_lookup()
329 struct Qdisc_ops *q = NULL; in qdisc_lookup_ops() local
333 for (q = qdisc_base; q; q = q->next) { in qdisc_lookup_ops()
334 if (nla_strcmp(kind, q->id) == 0) { in qdisc_lookup_ops()
335 if (!try_module_get(q->owner)) in qdisc_lookup_ops()
336 q = NULL; in qdisc_lookup_ops()
342 return q; in qdisc_lookup_ops()
769 sch->q.qlen -= n; in qdisc_tree_reduce_backlog()
800 struct Qdisc *q = old; in qdisc_graft() local
809 if ((q && q->flags & TCQ_F_INGRESS) || in qdisc_graft()
1064 static int check_loop_fn(struct Qdisc *q, unsigned long cl, struct qdisc_walker *w);
1066 static int check_loop(struct Qdisc *q, struct Qdisc *p, int depth) in check_loop() argument
1070 if (q->ops->cl_ops == NULL) in check_loop()
1077 q->ops->cl_ops->walk(q, &arg.w); in check_loop()
1082 check_loop_fn(struct Qdisc *q, unsigned long cl, struct qdisc_walker *w) in check_loop_fn() argument
1085 const struct Qdisc_class_ops *cops = q->ops->cl_ops; in check_loop_fn()
1088 leaf = cops->leaf(q, cl); in check_loop_fn()
1108 struct Qdisc *q = NULL; in tc_get_qdisc() local
1131 q = qdisc_leaf(p, clid); in tc_get_qdisc()
1133 q = dev_ingress_queue(dev)->qdisc_sleeping; in tc_get_qdisc()
1136 q = dev->qdisc; in tc_get_qdisc()
1138 if (!q) in tc_get_qdisc()
1141 if (tcm->tcm_handle && q->handle != tcm->tcm_handle) in tc_get_qdisc()
1144 q = qdisc_lookup(dev, tcm->tcm_handle); in tc_get_qdisc()
1145 if (!q) in tc_get_qdisc()
1149 if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], q->ops->id)) in tc_get_qdisc()
1155 if (q->handle == 0) in tc_get_qdisc()
1157 err = qdisc_graft(dev, p, skb, n, clid, NULL, q); in tc_get_qdisc()
1161 qdisc_notify(net, skb, n, clid, NULL, q); in tc_get_qdisc()
1177 struct Qdisc *q, *p; in tc_modify_qdisc() local
1191 q = p = NULL; in tc_modify_qdisc()
1204 q = qdisc_leaf(p, clid); in tc_modify_qdisc()
1206 q = dev_ingress_queue(dev)->qdisc_sleeping; in tc_modify_qdisc()
1209 q = dev->qdisc; in tc_modify_qdisc()
1213 if (q && q->handle == 0) in tc_modify_qdisc()
1214 q = NULL; in tc_modify_qdisc()
1216 if (!q || !tcm->tcm_handle || q->handle != tcm->tcm_handle) { in tc_modify_qdisc()
1218 if (q && !(n->nlmsg_flags & NLM_F_REPLACE)) in tc_modify_qdisc()
1222 q = qdisc_lookup(dev, tcm->tcm_handle); in tc_modify_qdisc()
1223 if (!q) in tc_modify_qdisc()
1227 if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], q->ops->id)) in tc_modify_qdisc()
1229 if (q == p || in tc_modify_qdisc()
1230 (p && check_loop(q, p, 0))) in tc_modify_qdisc()
1232 atomic_inc(&q->refcnt); in tc_modify_qdisc()
1235 if (!q) in tc_modify_qdisc()
1261 nla_strcmp(tca[TCA_KIND], q->ops->id)))) in tc_modify_qdisc()
1268 q = qdisc_lookup(dev, tcm->tcm_handle); in tc_modify_qdisc()
1272 if (q == NULL) in tc_modify_qdisc()
1276 if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], q->ops->id)) in tc_modify_qdisc()
1278 err = qdisc_change(q, tca); in tc_modify_qdisc()
1280 qdisc_notify(net, skb, n, clid, NULL, q); in tc_modify_qdisc()
1288 q = qdisc_create(dev, dev_ingress_queue(dev), p, in tc_modify_qdisc()
1303 q = qdisc_create(dev, dev_queue, p, in tc_modify_qdisc()
1307 if (q == NULL) { in tc_modify_qdisc()
1314 err = qdisc_graft(dev, p, skb, n, clid, q, NULL); in tc_modify_qdisc()
1316 if (q) in tc_modify_qdisc()
1317 qdisc_destroy(q); in tc_modify_qdisc()
1324 static int tc_fill_qdisc(struct sk_buff *skb, struct Qdisc *q, u32 clid, in tc_fill_qdisc() argument
1344 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tc_fill_qdisc()
1346 tcm->tcm_handle = q->handle; in tc_fill_qdisc()
1347 tcm->tcm_info = atomic_read(&q->refcnt); in tc_fill_qdisc()
1348 if (nla_put_string(skb, TCA_KIND, q->ops->id)) in tc_fill_qdisc()
1350 if (q->ops->dump && q->ops->dump(q, skb) < 0) in tc_fill_qdisc()
1352 qlen = q->q.qlen; in tc_fill_qdisc()
1354 stab = rtnl_dereference(q->stab); in tc_fill_qdisc()
1359 qdisc_root_sleeping_lock(q), &d) < 0) in tc_fill_qdisc()
1362 if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0) in tc_fill_qdisc()
1365 if (qdisc_is_percpu_stats(q)) { in tc_fill_qdisc()
1366 cpu_bstats = q->cpu_bstats; in tc_fill_qdisc()
1367 cpu_qstats = q->cpu_qstats; in tc_fill_qdisc()
1370 if (gnet_stats_copy_basic(&d, cpu_bstats, &q->bstats) < 0 || in tc_fill_qdisc()
1371 gnet_stats_copy_rate_est(&d, &q->bstats, &q->rate_est) < 0 || in tc_fill_qdisc()
1372 gnet_stats_copy_queue(&d, cpu_qstats, &q->qstats, qlen) < 0) in tc_fill_qdisc()
1387 static bool tc_qdisc_dump_ignore(struct Qdisc *q) in tc_qdisc_dump_ignore() argument
1389 return (q->flags & TCQ_F_BUILTIN) ? true : false; in tc_qdisc_dump_ignore()
1428 struct Qdisc *q; in tc_dump_qdisc_root() local
1433 q = root; in tc_dump_qdisc_root()
1437 if (!tc_qdisc_dump_ignore(q) && in tc_dump_qdisc_root()
1438 tc_fill_qdisc(skb, q, q->parent, NETLINK_CB(cb->skb).portid, in tc_dump_qdisc_root()
1443 list_for_each_entry(q, &root->list, list) { in tc_dump_qdisc_root()
1448 if (!tc_qdisc_dump_ignore(q) && in tc_dump_qdisc_root()
1449 tc_fill_qdisc(skb, q, q->parent, NETLINK_CB(cb->skb).portid, in tc_dump_qdisc_root()
1518 struct Qdisc *q = NULL; in tc_ctl_tclass() local
1583 q = qdisc_lookup(dev, qid); in tc_ctl_tclass()
1584 if (!q) in tc_ctl_tclass()
1588 cops = q->ops->cl_ops; in tc_ctl_tclass()
1600 cl = cops->get(q, clid); in tc_ctl_tclass()
1617 err = cops->delete(q, cl); in tc_ctl_tclass()
1619 tclass_notify(net, skb, n, q, cl, RTM_DELTCLASS); in tc_ctl_tclass()
1622 err = tclass_notify(net, skb, n, q, cl, RTM_NEWTCLASS); in tc_ctl_tclass()
1633 err = cops->change(q, clid, portid, tca, &new_cl); in tc_ctl_tclass()
1635 tclass_notify(net, skb, n, q, new_cl, RTM_NEWTCLASS); in tc_ctl_tclass()
1639 cops->put(q, cl); in tc_ctl_tclass()
1645 static int tc_fill_tclass(struct sk_buff *skb, struct Qdisc *q, in tc_fill_tclass() argument
1653 const struct Qdisc_class_ops *cl_ops = q->ops->cl_ops; in tc_fill_tclass()
1663 tcm->tcm_ifindex = qdisc_dev(q)->ifindex; in tc_fill_tclass()
1664 tcm->tcm_parent = q->handle; in tc_fill_tclass()
1665 tcm->tcm_handle = q->handle; in tc_fill_tclass()
1667 if (nla_put_string(skb, TCA_KIND, q->ops->id)) in tc_fill_tclass()
1669 if (cl_ops->dump && cl_ops->dump(q, cl, skb, tcm) < 0) in tc_fill_tclass()
1673 qdisc_root_sleeping_lock(q), &d) < 0) in tc_fill_tclass()
1676 if (cl_ops->dump_stats && cl_ops->dump_stats(q, cl, &d) < 0) in tc_fill_tclass()
1692 struct nlmsghdr *n, struct Qdisc *q, in tclass_notify() argument
1702 if (tc_fill_tclass(skb, q, cl, portid, n->nlmsg_seq, 0, event) < 0) { in tclass_notify()
1717 static int qdisc_class_dump(struct Qdisc *q, unsigned long cl, struct qdisc_walker *arg) in qdisc_class_dump() argument
1721 return tc_fill_tclass(a->skb, q, cl, NETLINK_CB(a->cb->skb).portid, in qdisc_class_dump()
1725 static int tc_dump_tclass_qdisc(struct Qdisc *q, struct sk_buff *skb, in tc_dump_tclass_qdisc() argument
1731 if (tc_qdisc_dump_ignore(q) || in tc_dump_tclass_qdisc()
1732 *t_p < s_t || !q->ops->cl_ops || in tc_dump_tclass_qdisc()
1734 TC_H_MAJ(tcm->tcm_parent) != q->handle)) { in tc_dump_tclass_qdisc()
1746 q->ops->cl_ops->walk(q, &arg.w); in tc_dump_tclass_qdisc()
1758 struct Qdisc *q; in tc_dump_tclass_root() local
1766 list_for_each_entry(q, &root->list, list) { in tc_dump_tclass_root()
1767 if (tc_dump_tclass_qdisc(q, skb, tcm, cb, t_p, s_t) < 0) in tc_dump_tclass_root()
1852 tp->q->ops->id, in tc_classify()