From cbe82c3dcdd67bec289284c48f444539a5f154c6 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Tue, 5 Jul 2005 15:29:16 -0700 Subject: [PATCH] --- yaml --- r: 4145 b: refs/heads/master c: 63d886c96b2a580b1bf764de238ba3c63515b5ee h: refs/heads/master i: 4143: b52bd43afeb25cedf536fa5cfc33d3b2639b7549 v: v3 --- [refs] | 2 +- trunk/net/sched/Makefile | 2 +- trunk/net/sched/sch_blackhole.c | 54 +++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 trunk/net/sched/sch_blackhole.c diff --git a/[refs] b/[refs] index 30b39f05d7bd..da6ea6331bf1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c1b4a7e69576d65efc31a8cea0714173c2841244 +refs/heads/master: 63d886c96b2a580b1bf764de238ba3c63515b5ee diff --git a/trunk/net/sched/Makefile b/trunk/net/sched/Makefile index 8f58cecd6266..e48d0d456b3e 100644 --- a/trunk/net/sched/Makefile +++ b/trunk/net/sched/Makefile @@ -4,7 +4,7 @@ obj-y := sch_generic.o -obj-$(CONFIG_NET_SCHED) += sch_api.o sch_fifo.o +obj-$(CONFIG_NET_SCHED) += sch_api.o sch_fifo.o sch_blackhole.o obj-$(CONFIG_NET_CLS) += cls_api.o obj-$(CONFIG_NET_CLS_ACT) += act_api.o obj-$(CONFIG_NET_ACT_POLICE) += police.o diff --git a/trunk/net/sched/sch_blackhole.c b/trunk/net/sched/sch_blackhole.c new file mode 100644 index 000000000000..81f0b8346d17 --- /dev/null +++ b/trunk/net/sched/sch_blackhole.c @@ -0,0 +1,54 @@ +/* + * net/sched/sch_blackhole.c Black hole queue + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * Authors: Thomas Graf + * + * Note: Quantum tunneling is not supported. + */ + +#include +#include +#include +#include +#include +#include +#include + +static int blackhole_enqueue(struct sk_buff *skb, struct Qdisc *sch) +{ + qdisc_drop(skb, sch); + return NET_XMIT_SUCCESS; +} + +static struct sk_buff *blackhole_dequeue(struct Qdisc *sch) +{ + return NULL; +} + +static struct Qdisc_ops blackhole_qdisc_ops = { + .id = "blackhole", + .priv_size = 0, + .enqueue = blackhole_enqueue, + .dequeue = blackhole_dequeue, + .owner = THIS_MODULE, +}; + +static int __init blackhole_module_init(void) +{ + return register_qdisc(&blackhole_qdisc_ops); +} + +static void __exit blackhole_module_exit(void) +{ + unregister_qdisc(&blackhole_qdisc_ops); +} + +module_init(blackhole_module_init) +module_exit(blackhole_module_exit) + +MODULE_LICENSE("GPL");