Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/net/sched/sch_blackhole.c
15111 views
1
/*
2
* net/sched/sch_blackhole.c Black hole queue
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version
7
* 2 of the License, or (at your option) any later version.
8
*
9
* Authors: Thomas Graf <[email protected]>
10
*
11
* Note: Quantum tunneling is not supported.
12
*/
13
14
#include <linux/module.h>
15
#include <linux/types.h>
16
#include <linux/kernel.h>
17
#include <linux/skbuff.h>
18
#include <net/pkt_sched.h>
19
20
static int blackhole_enqueue(struct sk_buff *skb, struct Qdisc *sch)
21
{
22
qdisc_drop(skb, sch);
23
return NET_XMIT_SUCCESS;
24
}
25
26
static struct sk_buff *blackhole_dequeue(struct Qdisc *sch)
27
{
28
return NULL;
29
}
30
31
static struct Qdisc_ops blackhole_qdisc_ops __read_mostly = {
32
.id = "blackhole",
33
.priv_size = 0,
34
.enqueue = blackhole_enqueue,
35
.dequeue = blackhole_dequeue,
36
.peek = blackhole_dequeue,
37
.owner = THIS_MODULE,
38
};
39
40
static int __init blackhole_module_init(void)
41
{
42
return register_qdisc(&blackhole_qdisc_ops);
43
}
44
45
static void __exit blackhole_module_exit(void)
46
{
47
unregister_qdisc(&blackhole_qdisc_ops);
48
}
49
50
module_init(blackhole_module_init)
51
module_exit(blackhole_module_exit)
52
53
MODULE_LICENSE("GPL");
54
55