Lines Matching defs:level
49 Each class is assigned level. Leaf has ALWAYS level 0 and root
50 classes have level TC_HTB_MAXDEPTH-1. Interior nodes has level
106 int level; /* our level (see above) */
172 /* time of nearest event per level (row) */
236 if (cl->level == 0)
265 if (!cl->level)
273 if (!cl || cl->level)
319 struct rb_node **p = &q->hlevel[cl->level].wait_pq.rb_node, *parent = NULL;
326 if (q->near_ev_cache[cl->level] > cl->pq_key)
327 q->near_ev_cache[cl->level] = cl->pq_key;
339 rb_insert_color(&cl->pq_node, &q->hlevel[cl->level].wait_pq);
366 q->row_mask[cl->level] |= mask;
370 htb_add_to_id_tree(&q->hlevel[cl->level].hprio[prio].row, cl, prio);
399 struct htb_level *hlevel = &q->hlevel[cl->level];
413 q->row_mask[cl->level] &= ~m;
594 WARN_ON(cl->level || !cl->leaf.q || !cl->leaf.q->q.qlen);
687 * @level: the minimum level to account
691 * borrowing from "level". It accounts bytes to ceil leaky bucket for
693 * "level" and higher. It also handles possible change of mode resulting
699 int level, struct sk_buff *skb)
707 if (cl->level >= level) {
708 if (cl->level == level)
723 htb_safe_rb_erase(&cl->pq_node, &q->hlevel[cl->level].wait_pq);
729 if (cl->level)
737 * htb_do_events - make mode changes to classes at the level
739 * @level: which wait_pq in 'q->hlevel'
746 static s64 htb_do_events(struct htb_sched *q, const int level,
754 struct rb_root *wait_pq = &q->hlevel[level].wait_pq;
856 if (!cl->level)
868 /* dequeues packet at given priority and level; call only if
869 * you are sure that there is active class at prio/level
872 const int level)
876 struct htb_level *hlevel = &q->hlevel[level];
896 /* row/level might become empty */
897 if ((q->row_mask[level] & (1 << prio)) == 0)
913 htb_next_rb_node(level ? &cl->parent->inner.clprio[prio].ptr:
921 cl->leaf.deficit[level] -= qdisc_pkt_len(skb);
922 if (cl->leaf.deficit[level] < 0) {
923 cl->leaf.deficit[level] += cl->quantum;
924 htb_next_rb_node(level ? &cl->parent->inner.clprio[prio].ptr :
932 htb_charge_class(q, cl, level, skb);
941 int level;
962 for (level = 0; level < TC_HTB_MAXDEPTH; level++) {
965 s64 event = q->near_ev_cache[level];
968 event = htb_do_events(q, level, start_at);
971 q->near_ev_cache[level] = event;
977 m = ~q->row_mask[level];
982 skb = htb_dequeue_tree(q, prio, level);
1005 if (cl->level)
1261 if (!cl->level && cl->leaf.q)
1276 opt.level = cl->level;
1310 while (p && p->level < cl->level)
1318 if (c->level == 0) {
1338 if (!cl->level && cl->leaf.q)
1347 if (!cl->level) {
1457 if (cl->level)
1490 return !cl->level ? cl->leaf.q : NULL;
1517 WARN_ON(cl->level || !cl->leaf.q || cl->prio_activity);
1521 &q->hlevel[parent->level].wait_pq);
1523 parent->level = 0;
1557 if (cl->level)
1612 if (!cl->level) {
1662 if (cl->level)
1717 if (!cl->level && htb_parent_last_child(cl))
1745 if (!cl->level)
1758 &q->hlevel[cl->level].wait_pq);
1853 if (parent && parent->parent && parent->parent->level < 2) {
1899 } else if (!(parent && !parent->level)) {
1962 if (parent && !parent->level) {
1969 /* remove from evt list because of level change */
1974 parent->level = (parent->parent ? parent->parent->level
2042 if (!cl->level) {
2101 /*if (cl && !cl->level) return 0;