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:
Родитель
db4094bca7
Коммит
d66d6c3152
|
@ -340,6 +340,7 @@ extern struct Qdisc noop_qdisc;
|
|||
extern struct Qdisc_ops noop_qdisc_ops;
|
||||
extern struct Qdisc_ops pfifo_fast_ops;
|
||||
extern struct Qdisc_ops mq_qdisc_ops;
|
||||
extern struct Qdisc_ops noqueue_qdisc_ops;
|
||||
extern const struct Qdisc_ops *default_qdisc_ops;
|
||||
|
||||
struct Qdisc_class_common {
|
||||
|
|
|
@ -1942,6 +1942,7 @@ static int __init pktsched_init(void)
|
|||
register_qdisc(&bfifo_qdisc_ops);
|
||||
register_qdisc(&pfifo_head_drop_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_DELQDISC, tc_get_qdisc, NULL, NULL);
|
||||
|
|
|
@ -416,9 +416,19 @@ struct Qdisc 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",
|
||||
.priv_size = 0,
|
||||
.init = noqueue_init,
|
||||
.enqueue = noop_enqueue,
|
||||
.dequeue = noop_dequeue,
|
||||
.peek = noop_dequeue,
|
||||
|
|
Загрузка…
Ссылка в новой задаче