linux/include/linux/netfilter_ipv6/ip6_tables.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * 25-Jul-1998 Major changes to allow for ip chain table
   4 *
   5 * 3-Jan-2000 Named tables to allow packet selection for different uses.
   6 */
   7
   8/*
   9 *      Format of an IP6 firewall descriptor
  10 *
  11 *      src, dst, src_mask, dst_mask are always stored in network byte order.
  12 *      flags are stored in host byte order (of course).
  13 *      Port numbers are stored in HOST byte order.
  14 */
  15#ifndef _IP6_TABLES_H
  16#define _IP6_TABLES_H
  17
  18#include <linux/if.h>
  19#include <linux/in6.h>
  20#include <linux/init.h>
  21#include <linux/ipv6.h>
  22#include <linux/skbuff.h>
  23#include <uapi/linux/netfilter_ipv6/ip6_tables.h>
  24
  25extern void *ip6t_alloc_initial_table(const struct xt_table *);
  26
  27int ip6t_register_table(struct net *net, const struct xt_table *table,
  28                        const struct ip6t_replace *repl,
  29                        const struct nf_hook_ops *ops);
  30void ip6t_unregister_table_pre_exit(struct net *net, const char *name);
  31void ip6t_unregister_table_exit(struct net *net, const char *name);
  32extern unsigned int ip6t_do_table(struct sk_buff *skb,
  33                                  const struct nf_hook_state *state,
  34                                  struct xt_table *table);
  35
  36#ifdef CONFIG_NETFILTER_XTABLES_COMPAT
  37#include <net/compat.h>
  38
  39struct compat_ip6t_entry {
  40        struct ip6t_ip6 ipv6;
  41        compat_uint_t nfcache;
  42        __u16 target_offset;
  43        __u16 next_offset;
  44        compat_uint_t comefrom;
  45        struct compat_xt_counters counters;
  46        unsigned char elems[];
  47};
  48
  49static inline struct xt_entry_target *
  50compat_ip6t_get_target(struct compat_ip6t_entry *e)
  51{
  52        return (void *)e + e->target_offset;
  53}
  54
  55#endif /* CONFIG_COMPAT */
  56#endif /* _IP6_TABLES_H */
  57