summaryrefslogtreecommitdiff
path: root/sysroot/usr/include/linux/netfilter_ipv6/ip6_tables.h
blob: 1687e4fea0b6eaf5c28016aa7ced563aa6b73817 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _IP6_TABLES_H
#define _IP6_TABLES_H

#include <linux/compiler.h>
#include <linux/netfilter_ipv6.h>

#include <linux/netfilter/x_tables.h>

#define IP6T_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
#define IP6T_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN

#define ip6t_match xt_match
#define ip6t_target xt_target
#define ip6t_table xt_table
#define ip6t_get_revision xt_get_revision

struct ip6t_ip6 {

 struct in6_addr src, dst;

 struct in6_addr smsk, dmsk;
 char iniface[IFNAMSIZ], outiface[IFNAMSIZ];
 unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ];

 u_int16_t proto;

 u_int8_t tos;

 u_int8_t flags;

 u_int8_t invflags;
};

#define ip6t_entry_match xt_entry_match
#define ip6t_entry_target xt_entry_target
#define ip6t_standard_target xt_standard_target

#define ip6t_counters xt_counters

#define IP6T_F_PROTO 0x01  
#define IP6T_F_TOS 0x02  
#define IP6T_F_GOTO 0x04  
#define IP6T_F_MASK 0x07  

#define IP6T_INV_VIA_IN 0x01  
#define IP6T_INV_VIA_OUT 0x02  
#define IP6T_INV_TOS 0x04  
#define IP6T_INV_SRCIP 0x08  
#define IP6T_INV_DSTIP 0x10  
#define IP6T_INV_FRAG 0x20  
#define IP6T_INV_PROTO XT_INV_PROTO
#define IP6T_INV_MASK 0x7F  

struct ip6t_entry
{
 struct ip6t_ip6 ipv6;

 unsigned int nfcache;

 u_int16_t target_offset;

 u_int16_t next_offset;

 unsigned int comefrom;

 struct xt_counters counters;

 unsigned char elems[0];
};

#define IP6T_BASE_CTL XT_BASE_CTL

#define IP6T_SO_SET_REPLACE XT_SO_SET_REPLACE
#define IP6T_SO_SET_ADD_COUNTERS XT_SO_SET_ADD_COUNTERS
#define IP6T_SO_SET_MAX XT_SO_SET_MAX

#define IP6T_SO_GET_INFO XT_SO_GET_INFO
#define IP6T_SO_GET_ENTRIES XT_SO_GET_ENTRIES
#define IP6T_SO_GET_REVISION_MATCH XT_SO_GET_REVISION_MATCH
#define IP6T_SO_GET_REVISION_TARGET XT_SO_GET_REVISION_TARGET
#define IP6T_SO_GET_MAX XT_SO_GET_REVISION_TARGET

#define IP6T_CONTINUE XT_CONTINUE

#define IP6T_RETURN XT_RETURN

#include <linux/netfilter/xt_tcpudp.h>

#define ip6t_tcp xt_tcp
#define ip6t_udp xt_udp

#define IP6T_TCP_INV_SRCPT XT_TCP_INV_SRCPT
#define IP6T_TCP_INV_DSTPT XT_TCP_INV_DSTPT
#define IP6T_TCP_INV_FLAGS XT_TCP_INV_FLAGS
#define IP6T_TCP_INV_OPTION XT_TCP_INV_OPTION
#define IP6T_TCP_INV_MASK XT_TCP_INV_MASK

#define IP6T_UDP_INV_SRCPT XT_UDP_INV_SRCPT
#define IP6T_UDP_INV_DSTPT XT_UDP_INV_DSTPT
#define IP6T_UDP_INV_MASK XT_UDP_INV_MASK

struct ip6t_icmp
{
 u_int8_t type;
 u_int8_t code[2];
 u_int8_t invflags;
};

#define IP6T_ICMP_INV 0x01  

struct ip6t_getinfo
{

 char name[IP6T_TABLE_MAXNAMELEN];

 unsigned int valid_hooks;

 unsigned int hook_entry[NF_IP6_NUMHOOKS];

 unsigned int underflow[NF_IP6_NUMHOOKS];

 unsigned int num_entries;

 unsigned int size;
};

struct ip6t_replace
{

 char name[IP6T_TABLE_MAXNAMELEN];

 unsigned int valid_hooks;

 unsigned int num_entries;

 unsigned int size;

 unsigned int hook_entry[NF_IP6_NUMHOOKS];

 unsigned int underflow[NF_IP6_NUMHOOKS];

 unsigned int num_counters;

 struct xt_counters __user *counters;

 struct ip6t_entry entries[0];
};

#define ip6t_counters_info xt_counters_info

struct ip6t_get_entries
{

 char name[IP6T_TABLE_MAXNAMELEN];

 unsigned int size;

 struct ip6t_entry entrytable[0];
};

#define IP6T_STANDARD_TARGET XT_STANDARD_TARGET

#define IP6T_ERROR_TARGET XT_ERROR_TARGET

#define IP6T_MATCH_ITERATE(e, fn, args...)  ({   unsigned int __i;   int __ret = 0;   struct ip6t_entry_match *__m;     for (__i = sizeof(struct ip6t_entry);   __i < (e)->target_offset;   __i += __m->u.match_size) {   __m = (void *)(e) + __i;     __ret = fn(__m , ## args);   if (__ret != 0)   break;   }   __ret;  })
#define IP6T_ENTRY_ITERATE(entries, size, fn, args...)  ({   unsigned int __i;   int __ret = 0;   struct ip6t_entry *__e;     for (__i = 0; __i < (size); __i += __e->next_offset) {   __e = (void *)(entries) + __i;     __ret = fn(__e , ## args);   if (__ret != 0)   break;   }   __ret;  })
#endif