linux/net/netfilter/nf_queue.c

/*
 * Rusty Russell (C)2000 -- This code is GPL.
 * Patrick McHardy (c) 2006-2012
 */

#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/skbuff.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv4.h>
#include <linux/netfilter_ipv6.h>
#include <linux/netfilter_bridge.h>
#include <linux/seq_file.h>
#include <linux/rcupdate.h>
#include <net/protocol.h>
#include <net/netfilter/nf_queue.h>
#include <net/dst.h>

#include "nf_internals.h"

static const struct nf_queue_handler __rcu *nf_queue_handler;

/*
 * Hook for nfnetlink_queue to register its queue handler.
 * We do this so that most of the NFQUEUE code can be modular.
 *
 * Once the queue is registered it must reinject all packets it
 * receives, no matter what.
 */

void nf_register_queue_handler(const struct nf_queue_handler *qh)
{}
EXPORT_SYMBOL();

/* The caller must flush their queue before this */
void nf_unregister_queue_handler(void)
{}
EXPORT_SYMBOL();

static void nf_queue_sock_put(struct sock *sk)
{}

static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
{}

void nf_queue_entry_free(struct nf_queue_entry *entry)
{}
EXPORT_SYMBOL_GPL();

static void __nf_queue_entry_init_physdevs(struct nf_queue_entry *entry)
{}

/* Bump dev refs so they don't vanish while packet is out */
bool nf_queue_entry_get_refs(struct nf_queue_entry *entry)
{}
EXPORT_SYMBOL_GPL();

void nf_queue_nf_hook_drop(struct net *net)
{}
EXPORT_SYMBOL_GPL();

static void nf_ip_saveroute(const struct sk_buff *skb,
			    struct nf_queue_entry *entry)
{}

static void nf_ip6_saveroute(const struct sk_buff *skb,
			     struct nf_queue_entry *entry)
{}

static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
		      unsigned int index, unsigned int queuenum)
{}

/* Packets leaving via this function must come back through nf_reinject(). */
int nf_queue(struct sk_buff *skb, struct nf_hook_state *state,
	     unsigned int index, unsigned int verdict)
{}
EXPORT_SYMBOL_GPL();