Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-2.0-or-later 2 : : /* 3 : : * net/sched/sch_blackhole.c Black hole queue 4 : : * 5 : : * Authors: Thomas Graf <tgraf@suug.ch> 6 : : * 7 : : * Note: Quantum tunneling is not supported. 8 : : */ 9 : : 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> 15 : : 16 : 0 : static int blackhole_enqueue(struct sk_buff *skb, struct Qdisc *sch, 17 : : struct sk_buff **to_free) 18 : : { 19 : 0 : qdisc_drop(skb, sch, to_free); 20 : 0 : return NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; 21 : : } 22 : : 23 : 0 : static struct sk_buff *blackhole_dequeue(struct Qdisc *sch) 24 : : { 25 : 0 : return NULL; 26 : : } 27 : : 28 : : static struct Qdisc_ops blackhole_qdisc_ops __read_mostly = { 29 : : .id = "blackhole", 30 : : .priv_size = 0, 31 : : .enqueue = blackhole_enqueue, 32 : : .dequeue = blackhole_dequeue, 33 : : .peek = blackhole_dequeue, 34 : : .owner = THIS_MODULE, 35 : : }; 36 : : 37 : 78 : static int __init blackhole_init(void) 38 : : { 39 : 78 : return register_qdisc(&blackhole_qdisc_ops); 40 : : } 41 : : device_initcall(blackhole_init)