Commit | Line | Data |
---|---|---|
2874c5fd | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
63d886c9 TG |
2 | /* |
3 | * net/sched/sch_blackhole.c Black hole queue | |
4 | * | |
63d886c9 TG |
5 | * Authors: Thomas Graf <tgraf@suug.ch> |
6 | * | |
7 | * Note: Quantum tunneling is not supported. | |
8 | */ | |
9 | ||
075640e3 | 10 | #include <linux/init.h> |
63d886c9 TG |
11 | #include <linux/types.h> |
12 | #include <linux/kernel.h> | |
63d886c9 TG |
13 | #include <linux/skbuff.h> |
14 | #include <net/pkt_sched.h> | |
15 | ||
520ac30f ED |
16 | static int blackhole_enqueue(struct sk_buff *skb, struct Qdisc *sch, |
17 | struct sk_buff **to_free) | |
63d886c9 | 18 | { |
520ac30f | 19 | qdisc_drop(skb, sch, to_free); |
7e85dc8c | 20 | return NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; |
63d886c9 TG |
21 | } |
22 | ||
23 | static struct sk_buff *blackhole_dequeue(struct Qdisc *sch) | |
24 | { | |
25 | return NULL; | |
26 | } | |
27 | ||
20fea08b | 28 | static struct Qdisc_ops blackhole_qdisc_ops __read_mostly = { |
63d886c9 TG |
29 | .id = "blackhole", |
30 | .priv_size = 0, | |
31 | .enqueue = blackhole_enqueue, | |
32 | .dequeue = blackhole_dequeue, | |
8e3af978 | 33 | .peek = blackhole_dequeue, |
63d886c9 TG |
34 | .owner = THIS_MODULE, |
35 | }; | |
36 | ||
075640e3 | 37 | static int __init blackhole_init(void) |
63d886c9 TG |
38 | { |
39 | return register_qdisc(&blackhole_qdisc_ops); | |
40 | } | |
075640e3 | 41 | device_initcall(blackhole_init) |