Lines Matching refs:level
110 int level; /* our level (see above) */ member
223 if (cl->level == 0) in htb_classify()
250 if (!cl->level) in htb_classify()
258 if (!cl || cl->level) in htb_classify()
298 struct rb_node **p = &q->hlevel[cl->level].wait_pq.rb_node, *parent = NULL; in htb_add_to_wait_tree()
305 if (q->near_ev_cache[cl->level] > cl->pq_key) in htb_add_to_wait_tree()
306 q->near_ev_cache[cl->level] = cl->pq_key; in htb_add_to_wait_tree()
318 rb_insert_color(&cl->pq_node, &q->hlevel[cl->level].wait_pq); in htb_add_to_wait_tree()
341 q->row_mask[cl->level] |= mask; in htb_add_class_to_row()
345 htb_add_to_id_tree(&q->hlevel[cl->level].hprio[prio].row, cl, prio); in htb_add_class_to_row()
371 struct htb_level *hlevel = &q->hlevel[cl->level]; in htb_remove_class_from_row()
385 q->row_mask[cl->level] &= ~m; in htb_remove_class_from_row()
547 WARN_ON(cl->level || !cl->un.leaf.q || !cl->un.leaf.q->q.qlen); in htb_activate()
645 int level, struct sk_buff *skb) in htb_charge_class() argument
653 if (cl->level >= level) { in htb_charge_class()
654 if (cl->level == level) in htb_charge_class()
669 htb_safe_rb_erase(&cl->pq_node, &q->hlevel[cl->level].wait_pq); in htb_charge_class()
675 if (cl->level) in htb_charge_class()
689 static s64 htb_do_events(struct htb_sched *q, const int level, in htb_do_events() argument
697 struct rb_root *wait_pq = &q->hlevel[level].wait_pq; in htb_do_events()
797 if (!cl->level) in htb_lookup_leaf()
813 const int level) in htb_dequeue_tree() argument
817 struct htb_level *hlevel = &q->hlevel[level]; in htb_dequeue_tree()
838 if ((q->row_mask[level] & (1 << prio)) == 0) in htb_dequeue_tree()
854 htb_next_rb_node(level ? &cl->parent->un.inner.clprio[prio].ptr: in htb_dequeue_tree()
862 cl->un.leaf.deficit[level] -= qdisc_pkt_len(skb); in htb_dequeue_tree()
863 if (cl->un.leaf.deficit[level] < 0) { in htb_dequeue_tree()
864 cl->un.leaf.deficit[level] += cl->quantum; in htb_dequeue_tree()
865 htb_next_rb_node(level ? &cl->parent->un.inner.clprio[prio].ptr : in htb_dequeue_tree()
873 htb_charge_class(q, cl, level, skb); in htb_dequeue_tree()
882 int level; in htb_dequeue() local
903 for (level = 0; level < TC_HTB_MAXDEPTH; level++) { in htb_dequeue()
906 s64 event = q->near_ev_cache[level]; in htb_dequeue()
909 event = htb_do_events(q, level, start_at); in htb_dequeue()
912 q->near_ev_cache[level] = event; in htb_dequeue()
918 m = ~q->row_mask[level]; in htb_dequeue()
923 skb = htb_dequeue_tree(q, prio, level); in htb_dequeue()
978 if (cl->level) in htb_reset()
1105 if (!cl->level && cl->un.leaf.q) in htb_dump_class()
1120 opt.level = cl->level; in htb_dump_class()
1143 if (!cl->level && cl->un.leaf.q) in htb_dump_class_stats()
1161 if (cl->level) in htb_graft()
1182 return !cl->level ? cl->un.leaf.q : NULL; in htb_leaf()
1217 WARN_ON(cl->level || !cl->un.leaf.q || cl->prio_activity); in htb_parent_to_leaf()
1221 &q->hlevel[parent->level].wait_pq); in htb_parent_to_leaf()
1223 parent->level = 0; in htb_parent_to_leaf()
1235 if (!cl->level) { in htb_destroy_class()
1288 if (!cl->level && htb_parent_last_child(cl)) { in htb_delete()
1296 if (!cl->level) { in htb_delete()
1312 &q->hlevel[cl->level].wait_pq); in htb_delete()
1396 if (parent && parent->parent && parent->parent->level < 2) { in htb_change_class()
1431 if (parent && !parent->level) { in htb_change_class()
1446 parent->level = (parent->parent ? parent->parent->level in htb_change_class()
1491 if (!cl->level) { in htb_change_class()