FN(CONGESTED) \
FN(MAXFLOWS) \
FN(CAKE_FLOOD) \
- FN(FQ_BAND_LIMIT) \
- FN(FQ_HORIZON_LIMIT) \
+ FN(BAND_LIMIT) \
+ FN(HORIZON_LIMIT) \
FN(FLOW_LIMIT) \
FNe(MAX)
*/
QDISC_DROP_CAKE_FLOOD,
/**
- * @QDISC_DROP_FQ_BAND_LIMIT: FQ (Fair Queue) dropped packet because
- * the priority band's packet limit was reached. Each priority band
- * in FQ has its own limit.
+ * @QDISC_DROP_BAND_LIMIT: packet dropped because the priority band's
+ * limit was reached. Used by qdiscs with priority bands that have
+ * per-band packet limits (e.g., FQ).
*/
- QDISC_DROP_FQ_BAND_LIMIT,
+ QDISC_DROP_BAND_LIMIT,
/**
- * @QDISC_DROP_FQ_HORIZON_LIMIT: FQ dropped packet because its
- * timestamp is too far in the future (beyond the configured horizon).
+ * @QDISC_DROP_HORIZON_LIMIT: packet dropped because its timestamp
+ * is too far in the future (beyond the configured horizon).
+ * Used by qdiscs with time-based scheduling (e.g., FQ).
*/
- QDISC_DROP_FQ_HORIZON_LIMIT,
+ QDISC_DROP_HORIZON_LIMIT,
/**
* @QDISC_DROP_FLOW_LIMIT: packet dropped because an individual flow
* exceeded its per-flow packet/depth limit. Used by FQ and SFQ qdiscs
return unlikely((s64)skb->tstamp > (s64)(now + q->horizon));
}
-#define FQDR(reason) QDISC_DROP_FQ_##reason
-
static int fq_enqueue(struct sk_buff *skb, struct Qdisc *sch,
struct sk_buff **to_free)
{
band = fq_prio2band(q->prio2band, skb->priority & TC_PRIO_MAX);
if (unlikely(q->band_pkt_count[band] >= sch->limit)) {
q->stat_band_drops[band]++;
- return qdisc_drop_reason(skb, sch, to_free, FQDR(BAND_LIMIT));
+ return qdisc_drop_reason(skb, sch, to_free, QDISC_DROP_BAND_LIMIT);
}
now = ktime_get_ns();
if (q->horizon_drop) {
q->stat_horizon_drops++;
return qdisc_drop_reason(skb, sch, to_free,
- FQDR(HORIZON_LIMIT));
+ QDISC_DROP_HORIZON_LIMIT);
}
q->stat_horizon_caps++;
skb->tstamp = now + q->horizon;
return NET_XMIT_SUCCESS;
}
-#undef FQDR
static void fq_check_throttled(struct fq_sched_data *q, u64 now)
{