static unsigned int netem_drop(struct Qdisc *sch) { struct netem_sched_data *q = qdisc_priv(sch); unsigned int len; len = qdisc_queue_drop(sch); if (!len && q->qdisc && q->qdisc->ops->drop) len = q->qdisc->ops->drop(q->qdisc); if (len) sch->qstats.drops++; return len; }
static unsigned int choke_drop(struct Qdisc *sch) { struct choke_sched_data *q = qdisc_priv(sch); unsigned int len; len = qdisc_queue_drop(sch); if (len > 0) q->stats.other++; else { if (!red_is_idling(&q->vars)) red_start_of_idle_period(&q->vars); } return len; }
static unsigned int generic_qdisc_drop(struct Qdisc *qdisc) { RD(5, "Dropping on purpose"); return qdisc_queue_drop(qdisc); }