linux/net/sched/sch_blackhole.c
<<
>>
Prefs
   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
  16static int blackhole_enqueue(struct sk_buff *skb, struct Qdisc *sch,
  17                             struct sk_buff **to_free)
  18{
  19        qdisc_drop(skb, sch, to_free);
  20        return NET_XMIT_SUCCESS | __NET_XMIT_BYPASS;
  21}
  22
  23static struct sk_buff *blackhole_dequeue(struct Qdisc *sch)
  24{
  25        return NULL;
  26}
  27
  28static 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
  37static int __init blackhole_init(void)
  38{
  39        return register_qdisc(&blackhole_qdisc_ops);
  40}
  41device_initcall(blackhole_init)
  42