linux/include/linux/netfilter_ipv4/ip_tables.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * 25-Jul-1998 Major changes to allow for ip chain table
 *
 * 3-Jan-2000 Named tables to allow packet selection for different uses.
 */

/*
 * 	Format of an IP firewall descriptor
 *
 * 	src, dst, src_mask, dst_mask are always stored in network byte order.
 * 	flags are stored in host byte order (of course).
 * 	Port numbers are stored in HOST byte order.
 */
#ifndef _IPTABLES_H
#define _IPTABLES_H

#include <linux/if.h>
#include <linux/in.h>
#include <linux/init.h>
#include <linux/ip.h>
#include <linux/skbuff.h>
#include <uapi/linux/netfilter_ipv4/ip_tables.h>

int ipt_register_table(struct net *net, const struct xt_table *table,
		       const struct ipt_replace *repl,
		       const struct nf_hook_ops *ops);

void ipt_unregister_table_pre_exit(struct net *net, const char *name);
void ipt_unregister_table_exit(struct net *net, const char *name);

/* Standard entry. */
struct ipt_standard {};

struct ipt_error {};

#define IPT_ENTRY_INIT(__size)

#define IPT_STANDARD_INIT(__verdict)

#define IPT_ERROR_INIT

extern void *ipt_alloc_initial_table(const struct xt_table *);
extern unsigned int ipt_do_table(void *priv,
				 struct sk_buff *skb,
				 const struct nf_hook_state *state);

#ifdef CONFIG_NETFILTER_XTABLES_COMPAT
#include <net/compat.h>

struct compat_ipt_entry {};

/* Helper functions */
static inline struct xt_entry_target *
compat_ipt_get_target(struct compat_ipt_entry *e)
{}

#endif /* CONFIG_COMPAT */
#endif /* _IPTABLES_H */