linux/net/sched/sch_blackhole.c
<<
>>
Prefs
   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 <tgraf@suug.ch>
  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
  20static int blackhole_enqueue(struct sk_buff *skb, struct Qdisc *sch)
  21{
  22        qdisc_drop(skb, sch);
  23        return NET_XMIT_SUCCESS;
  24}
  25
  26static struct sk_buff *blackhole_dequeue(struct Qdisc *sch)
  27{
  28        return NULL;
  29}
  30
  31static 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
  40static int __init blackhole_module_init(void)
  41{
  42        return register_qdisc(&blackhole_qdisc_ops);
  43}
  44
  45static void __exit blackhole_module_exit(void)
  46{
  47        unregister_qdisc(&blackhole_qdisc_ops);
  48}
  49
  50module_init(blackhole_module_init)
  51module_exit(blackhole_module_exit)
  52
  53MODULE_LICENSE("GPL");
  54