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/init.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                             struct sk_buff **to_free)
  22{
  23        qdisc_drop(skb, sch, to_free);
  24        return NET_XMIT_SUCCESS;
  25}
  26
  27static struct sk_buff *blackhole_dequeue(struct Qdisc *sch)
  28{
  29        return NULL;
  30}
  31
  32static struct Qdisc_ops blackhole_qdisc_ops __read_mostly = {
  33        .id             = "blackhole",
  34        .priv_size      = 0,
  35        .enqueue        = blackhole_enqueue,
  36        .dequeue        = blackhole_dequeue,
  37        .peek           = blackhole_dequeue,
  38        .owner          = THIS_MODULE,
  39};
  40
  41static int __init blackhole_init(void)
  42{
  43        return register_qdisc(&blackhole_qdisc_ops);
  44}
  45device_initcall(blackhole_init);
  46