Lines Matching refs:table
61 static inline int gred_wred_mode(struct gred_sched *table)
63 return test_bit(GRED_WRED_MODE, &table->flags);
66 static inline void gred_enable_wred_mode(struct gred_sched *table)
68 __set_bit(GRED_WRED_MODE, &table->flags);
71 static inline void gred_disable_wred_mode(struct gred_sched *table)
73 __clear_bit(GRED_WRED_MODE, &table->flags);
76 static inline int gred_rio_mode(struct gred_sched *table)
78 return test_bit(GRED_RIO_MODE, &table->flags);
81 static inline void gred_enable_rio_mode(struct gred_sched *table)
83 __set_bit(GRED_RIO_MODE, &table->flags);
86 static inline void gred_disable_rio_mode(struct gred_sched *table)
88 __clear_bit(GRED_RIO_MODE, &table->flags);
93 struct gred_sched *table = qdisc_priv(sch);
97 for (i = 0; i < table->DPs; i++) {
98 struct gred_sched_data *q = table->tab[i];
104 for (n = i + 1; n < table->DPs; n++)
105 if (table->tab[n] && table->tab[n]->prio == q->prio)
112 static inline unsigned int gred_backlog(struct gred_sched *table,
116 if (gred_wred_mode(table))
127 static inline void gred_load_wred_set(const struct gred_sched *table,
130 q->vars.qavg = table->wred_set.qavg;
131 q->vars.qidlestart = table->wred_set.qidlestart;
134 static inline void gred_store_wred_set(struct gred_sched *table,
137 table->wred_set.qavg = q->vars.qavg;
138 table->wred_set.qidlestart = q->vars.qidlestart;
151 static bool gred_per_vq_red_flags_used(struct gred_sched *table)
156 if (table->red_flags)
159 if (table->tab[i] && table->tab[i]->red_flags)
312 struct gred_sched *table = qdisc_priv(sch);
326 opt.set.grio_on = gred_rio_mode(table);
327 opt.set.wred_on = gred_wred_mode(table);
328 opt.set.dp_cnt = table->DPs;
329 opt.set.dp_def = table->def;
331 for (i = 0; i < table->DPs; i++) {
332 struct gred_sched_data *q = table->tab[i];
354 struct gred_sched *table = qdisc_priv(sch);
368 if (table->tab[i])
369 hw_stats->stats.xstats[i] = &table->tab[i]->stats;
376 if (!table->tab[i])
378 table->tab[i]->packetsin += hw_stats->stats.bstats[i].packets;
379 table->tab[i]->bytesin += hw_stats->stats.bstats[i].bytes;
380 table->tab[i]->backlog += hw_stats->stats.qstats[i].backlog;
404 struct gred_sched *table = qdisc_priv(sch);
427 if (sopt->flags && gred_per_vq_red_flags_used(table)) {
433 table->DPs = sopt->DPs;
434 table->def = sopt->def_DP;
435 red_flags_changed = table->red_flags != sopt->flags;
436 table->red_flags = sopt->flags;
446 gred_enable_rio_mode(table);
447 gred_disable_wred_mode(table);
449 gred_enable_wred_mode(table);
451 gred_disable_rio_mode(table);
452 gred_disable_wred_mode(table);
456 for (i = 0; i < table->DPs; i++)
457 if (table->tab[i])
458 table->tab[i]->red_flags =
459 table->red_flags & GRED_VQ_RED_FLAGS;
461 for (i = table->DPs; i < MAX_DPs; i++) {
462 if (table->tab[i]) {
465 gred_destroy_vq(table->tab[i]);
466 table->tab[i] = NULL;
480 struct gred_sched *table = qdisc_priv(sch);
481 struct gred_sched_data *q = table->tab[dp];
489 table->tab[dp] = q = *prealloc;
493 q->red_flags = table->red_flags & GRED_VQ_RED_FLAGS;
531 static void gred_vq_apply(struct gred_sched *table, const struct nlattr *entry)
542 table->tab[dp]->red_flags = nla_get_u32(tb[TCA_GRED_VQ_FLAGS]);
545 static void gred_vqs_apply(struct gred_sched *table, struct nlattr *vqs)
553 gred_vq_apply(table, attr);
559 static int gred_vq_validate(struct gred_sched *table, u32 cdp,
577 if (dp >= table->DPs) {
581 if (dp != cdp && !table->tab[dp]) {
589 if (table->red_flags && table->red_flags != red_flags) {
603 static int gred_vqs_validate(struct gred_sched *table, u32 cdp,
617 err = gred_vq_validate(table, cdp, attr, extack);
638 struct gred_sched *table = qdisc_priv(sch);
672 if (ctl->DP >= table->DPs) {
678 err = gred_vqs_validate(table, ctl->DP, tb[TCA_GRED_VQ_LIST],
684 if (gred_rio_mode(table)) {
688 if (table->tab[table->def])
689 def_prio = table->tab[table->def]->prio;
708 gred_vqs_apply(table, tb[TCA_GRED_VQ_LIST]);
710 if (gred_rio_mode(table)) {
711 gred_disable_wred_mode(table);
713 gred_enable_wred_mode(table);
759 struct gred_sched *table = qdisc_priv(sch);
764 .DPs = table->DPs,
765 .def_DP = table->def,
766 .grio = gred_rio_mode(table),
767 .flags = table->red_flags,
780 struct gred_sched_data *q = table->tab[i];
796 struct gred_sched_data *q = table->tab[i];
813 opt.backlog = gred_backlog(table, q, sch);
827 if (gred_wred_mode(table))
828 gred_load_wred_set(table, q);
847 struct gred_sched_data *q = table->tab[i];
870 gred_backlog(table, q, sch)))
902 struct gred_sched *table = qdisc_priv(sch);
905 for (i = 0; i < table->DPs; i++) {
906 if (table->tab[i])
907 gred_destroy_vq(table->tab[i]);