net: sched: register noqueue qdisc
This way users can attach noqueue just like any other qdisc using tc without having to mess with tx_queue_len first. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
db4094bca7
commit
d66d6c3152
|
@ -340,6 +340,7 @@ extern struct Qdisc noop_qdisc;
|
||||||
extern struct Qdisc_ops noop_qdisc_ops;
|
extern struct Qdisc_ops noop_qdisc_ops;
|
||||||
extern struct Qdisc_ops pfifo_fast_ops;
|
extern struct Qdisc_ops pfifo_fast_ops;
|
||||||
extern struct Qdisc_ops mq_qdisc_ops;
|
extern struct Qdisc_ops mq_qdisc_ops;
|
||||||
|
extern struct Qdisc_ops noqueue_qdisc_ops;
|
||||||
extern const struct Qdisc_ops *default_qdisc_ops;
|
extern const struct Qdisc_ops *default_qdisc_ops;
|
||||||
|
|
||||||
struct Qdisc_class_common {
|
struct Qdisc_class_common {
|
||||||
|
|
|
@ -1942,6 +1942,7 @@ static int __init pktsched_init(void)
|
||||||
register_qdisc(&bfifo_qdisc_ops);
|
register_qdisc(&bfifo_qdisc_ops);
|
||||||
register_qdisc(&pfifo_head_drop_qdisc_ops);
|
register_qdisc(&pfifo_head_drop_qdisc_ops);
|
||||||
register_qdisc(&mq_qdisc_ops);
|
register_qdisc(&mq_qdisc_ops);
|
||||||
|
register_qdisc(&noqueue_qdisc_ops);
|
||||||
|
|
||||||
rtnl_register(PF_UNSPEC, RTM_NEWQDISC, tc_modify_qdisc, NULL, NULL);
|
rtnl_register(PF_UNSPEC, RTM_NEWQDISC, tc_modify_qdisc, NULL, NULL);
|
||||||
rtnl_register(PF_UNSPEC, RTM_DELQDISC, tc_get_qdisc, NULL, NULL);
|
rtnl_register(PF_UNSPEC, RTM_DELQDISC, tc_get_qdisc, NULL, NULL);
|
||||||
|
|
|
@ -416,9 +416,19 @@ struct Qdisc noop_qdisc = {
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL(noop_qdisc);
|
EXPORT_SYMBOL(noop_qdisc);
|
||||||
|
|
||||||
static struct Qdisc_ops noqueue_qdisc_ops __read_mostly = {
|
static int noqueue_init(struct Qdisc *qdisc, struct nlattr *opt)
|
||||||
|
{
|
||||||
|
/* register_qdisc() assigns a default of noop_enqueue if unset,
|
||||||
|
* but __dev_queue_xmit() treats noqueue only as such
|
||||||
|
* if this is NULL - so clear it here. */
|
||||||
|
qdisc->enqueue = NULL;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Qdisc_ops noqueue_qdisc_ops __read_mostly = {
|
||||||
.id = "noqueue",
|
.id = "noqueue",
|
||||||
.priv_size = 0,
|
.priv_size = 0,
|
||||||
|
.init = noqueue_init,
|
||||||
.enqueue = noop_enqueue,
|
.enqueue = noop_enqueue,
|
||||||
.dequeue = noop_dequeue,
|
.dequeue = noop_dequeue,
|
||||||
.peek = noop_dequeue,
|
.peek = noop_dequeue,
|
||||||
|
|
Loading…
Reference in New Issue