1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * net/sched/sch_blackhole.c Black hole queue
5 * Authors: Thomas Graf <tgraf@suug.ch>
7 * Note: Quantum tunneling is not supported.
10 #include <linux/init.h>
11 #include <linux/types.h>
12 #include <linux/kernel.h>
13 #include <linux/skbuff.h>
14 #include <net/pkt_sched.h>
16 static int blackhole_enqueue(struct sk_buff
*skb
, struct Qdisc
*sch
,
17 struct sk_buff
**to_free
)
19 qdisc_drop(skb
, sch
, to_free
);
20 return NET_XMIT_SUCCESS
| __NET_XMIT_BYPASS
;
23 static struct sk_buff
*blackhole_dequeue(struct Qdisc
*sch
)
28 static struct Qdisc_ops blackhole_qdisc_ops __read_mostly
= {
31 .enqueue
= blackhole_enqueue
,
32 .dequeue
= blackhole_dequeue
,
33 .peek
= blackhole_dequeue
,
37 static int __init
blackhole_init(void)
39 return register_qdisc(&blackhole_qdisc_ops
);
41 device_initcall(blackhole_init
)