nf_tables.h revision 6a9755d20a995756487bb1aafb7e954f4fd868a7
1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _LINUX_NF_TABLES_H
20#define _LINUX_NF_TABLES_H
21#define NFT_TABLE_MAXNAMELEN 32
22#define NFT_CHAIN_MAXNAMELEN 32
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define NFT_SET_MAXNAMELEN 32
25#define NFT_USERDATA_MAXLEN 256
26enum nft_registers {
27  NFT_REG_VERDICT,
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29  NFT_REG_1,
30  NFT_REG_2,
31  NFT_REG_3,
32  NFT_REG_4,
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34  __NFT_REG_MAX,
35  NFT_REG32_00 = 8,
36  NFT_REG32_01,
37  NFT_REG32_02,
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  NFT_REG32_03,
40  NFT_REG32_04,
41  NFT_REG32_05,
42  NFT_REG32_06,
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  NFT_REG32_07,
45  NFT_REG32_08,
46  NFT_REG32_09,
47  NFT_REG32_10,
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49  NFT_REG32_11,
50  NFT_REG32_12,
51  NFT_REG32_13,
52  NFT_REG32_14,
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  NFT_REG32_15,
55};
56#define NFT_REG_MAX (__NFT_REG_MAX - 1)
57#define NFT_REG_SIZE 16
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59#define NFT_REG32_SIZE 4
60enum nft_verdicts {
61  NFT_CONTINUE = - 1,
62  NFT_BREAK = - 2,
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  NFT_JUMP = - 3,
65  NFT_GOTO = - 4,
66  NFT_RETURN = - 5,
67};
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69enum nf_tables_msg_types {
70  NFT_MSG_NEWTABLE,
71  NFT_MSG_GETTABLE,
72  NFT_MSG_DELTABLE,
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  NFT_MSG_NEWCHAIN,
75  NFT_MSG_GETCHAIN,
76  NFT_MSG_DELCHAIN,
77  NFT_MSG_NEWRULE,
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  NFT_MSG_GETRULE,
80  NFT_MSG_DELRULE,
81  NFT_MSG_NEWSET,
82  NFT_MSG_GETSET,
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  NFT_MSG_DELSET,
85  NFT_MSG_NEWSETELEM,
86  NFT_MSG_GETSETELEM,
87  NFT_MSG_DELSETELEM,
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  NFT_MSG_NEWGEN,
90  NFT_MSG_GETGEN,
91  NFT_MSG_TRACE,
92  NFT_MSG_MAX,
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94};
95enum nft_list_attributes {
96  NFTA_LIST_UNPEC,
97  NFTA_LIST_ELEM,
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  __NFTA_LIST_MAX
100};
101#define NFTA_LIST_MAX (__NFTA_LIST_MAX - 1)
102enum nft_hook_attributes {
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  NFTA_HOOK_UNSPEC,
105  NFTA_HOOK_HOOKNUM,
106  NFTA_HOOK_PRIORITY,
107  NFTA_HOOK_DEV,
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  __NFTA_HOOK_MAX
110};
111#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
112enum nft_table_flags {
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  NFT_TABLE_F_DORMANT = 0x1,
115};
116enum nft_table_attributes {
117  NFTA_TABLE_UNSPEC,
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  NFTA_TABLE_NAME,
120  NFTA_TABLE_FLAGS,
121  NFTA_TABLE_USE,
122  __NFTA_TABLE_MAX
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124};
125#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
126enum nft_chain_attributes {
127  NFTA_CHAIN_UNSPEC,
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  NFTA_CHAIN_TABLE,
130  NFTA_CHAIN_HANDLE,
131  NFTA_CHAIN_NAME,
132  NFTA_CHAIN_HOOK,
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  NFTA_CHAIN_POLICY,
135  NFTA_CHAIN_USE,
136  NFTA_CHAIN_TYPE,
137  NFTA_CHAIN_COUNTERS,
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  NFTA_CHAIN_PAD,
140  __NFTA_CHAIN_MAX
141};
142#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144enum nft_rule_attributes {
145  NFTA_RULE_UNSPEC,
146  NFTA_RULE_TABLE,
147  NFTA_RULE_CHAIN,
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  NFTA_RULE_HANDLE,
150  NFTA_RULE_EXPRESSIONS,
151  NFTA_RULE_COMPAT,
152  NFTA_RULE_POSITION,
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  NFTA_RULE_USERDATA,
155  NFTA_RULE_PAD,
156  __NFTA_RULE_MAX
157};
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
160enum nft_rule_compat_flags {
161  NFT_RULE_COMPAT_F_INV = (1 << 1),
162  NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164};
165enum nft_rule_compat_attributes {
166  NFTA_RULE_COMPAT_UNSPEC,
167  NFTA_RULE_COMPAT_PROTO,
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  NFTA_RULE_COMPAT_FLAGS,
170  __NFTA_RULE_COMPAT_MAX
171};
172#define NFTA_RULE_COMPAT_MAX (__NFTA_RULE_COMPAT_MAX - 1)
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174enum nft_set_flags {
175  NFT_SET_ANONYMOUS = 0x1,
176  NFT_SET_CONSTANT = 0x2,
177  NFT_SET_INTERVAL = 0x4,
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  NFT_SET_MAP = 0x8,
180  NFT_SET_TIMEOUT = 0x10,
181  NFT_SET_EVAL = 0x20,
182};
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184enum nft_set_policies {
185  NFT_SET_POL_PERFORMANCE,
186  NFT_SET_POL_MEMORY,
187};
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189enum nft_set_desc_attributes {
190  NFTA_SET_DESC_UNSPEC,
191  NFTA_SET_DESC_SIZE,
192  __NFTA_SET_DESC_MAX
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194};
195#define NFTA_SET_DESC_MAX (__NFTA_SET_DESC_MAX - 1)
196enum nft_set_attributes {
197  NFTA_SET_UNSPEC,
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  NFTA_SET_TABLE,
200  NFTA_SET_NAME,
201  NFTA_SET_FLAGS,
202  NFTA_SET_KEY_TYPE,
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  NFTA_SET_KEY_LEN,
205  NFTA_SET_DATA_TYPE,
206  NFTA_SET_DATA_LEN,
207  NFTA_SET_POLICY,
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  NFTA_SET_DESC,
210  NFTA_SET_ID,
211  NFTA_SET_TIMEOUT,
212  NFTA_SET_GC_INTERVAL,
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  NFTA_SET_USERDATA,
215  NFTA_SET_PAD,
216  __NFTA_SET_MAX
217};
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
220enum nft_set_elem_flags {
221  NFT_SET_ELEM_INTERVAL_END = 0x1,
222};
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224enum nft_set_elem_attributes {
225  NFTA_SET_ELEM_UNSPEC,
226  NFTA_SET_ELEM_KEY,
227  NFTA_SET_ELEM_DATA,
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  NFTA_SET_ELEM_FLAGS,
230  NFTA_SET_ELEM_TIMEOUT,
231  NFTA_SET_ELEM_EXPIRATION,
232  NFTA_SET_ELEM_USERDATA,
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  NFTA_SET_ELEM_EXPR,
235  NFTA_SET_ELEM_PAD,
236  __NFTA_SET_ELEM_MAX
237};
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
240enum nft_set_elem_list_attributes {
241  NFTA_SET_ELEM_LIST_UNSPEC,
242  NFTA_SET_ELEM_LIST_TABLE,
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244  NFTA_SET_ELEM_LIST_SET,
245  NFTA_SET_ELEM_LIST_ELEMENTS,
246  NFTA_SET_ELEM_LIST_SET_ID,
247  __NFTA_SET_ELEM_LIST_MAX
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249};
250#define NFTA_SET_ELEM_LIST_MAX (__NFTA_SET_ELEM_LIST_MAX - 1)
251enum nft_data_types {
252  NFT_DATA_VALUE,
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  NFT_DATA_VERDICT = 0xffffff00U,
255};
256#define NFT_DATA_RESERVED_MASK 0xffffff00U
257enum nft_data_attributes {
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259  NFTA_DATA_UNSPEC,
260  NFTA_DATA_VALUE,
261  NFTA_DATA_VERDICT,
262  __NFTA_DATA_MAX
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264};
265#define NFTA_DATA_MAX (__NFTA_DATA_MAX - 1)
266#define NFT_DATA_VALUE_MAXLEN 64
267enum nft_verdict_attributes {
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  NFTA_VERDICT_UNSPEC,
270  NFTA_VERDICT_CODE,
271  NFTA_VERDICT_CHAIN,
272  __NFTA_VERDICT_MAX
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274};
275#define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1)
276enum nft_expr_attributes {
277  NFTA_EXPR_UNSPEC,
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279  NFTA_EXPR_NAME,
280  NFTA_EXPR_DATA,
281  __NFTA_EXPR_MAX
282};
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284#define NFTA_EXPR_MAX (__NFTA_EXPR_MAX - 1)
285enum nft_immediate_attributes {
286  NFTA_IMMEDIATE_UNSPEC,
287  NFTA_IMMEDIATE_DREG,
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289  NFTA_IMMEDIATE_DATA,
290  __NFTA_IMMEDIATE_MAX
291};
292#define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1)
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294enum nft_bitwise_attributes {
295  NFTA_BITWISE_UNSPEC,
296  NFTA_BITWISE_SREG,
297  NFTA_BITWISE_DREG,
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299  NFTA_BITWISE_LEN,
300  NFTA_BITWISE_MASK,
301  NFTA_BITWISE_XOR,
302  __NFTA_BITWISE_MAX
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304};
305#define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1)
306enum nft_byteorder_ops {
307  NFT_BYTEORDER_NTOH,
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309  NFT_BYTEORDER_HTON,
310};
311enum nft_byteorder_attributes {
312  NFTA_BYTEORDER_UNSPEC,
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314  NFTA_BYTEORDER_SREG,
315  NFTA_BYTEORDER_DREG,
316  NFTA_BYTEORDER_OP,
317  NFTA_BYTEORDER_LEN,
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319  NFTA_BYTEORDER_SIZE,
320  __NFTA_BYTEORDER_MAX
321};
322#define NFTA_BYTEORDER_MAX (__NFTA_BYTEORDER_MAX - 1)
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324enum nft_cmp_ops {
325  NFT_CMP_EQ,
326  NFT_CMP_NEQ,
327  NFT_CMP_LT,
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329  NFT_CMP_LTE,
330  NFT_CMP_GT,
331  NFT_CMP_GTE,
332};
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334enum nft_cmp_attributes {
335  NFTA_CMP_UNSPEC,
336  NFTA_CMP_SREG,
337  NFTA_CMP_OP,
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  NFTA_CMP_DATA,
340  __NFTA_CMP_MAX
341};
342#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1)
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344enum nft_range_ops {
345  NFT_RANGE_EQ,
346  NFT_RANGE_NEQ,
347};
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349enum nft_range_attributes {
350  NFTA_RANGE_UNSPEC,
351  NFTA_RANGE_SREG,
352  NFTA_RANGE_OP,
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  NFTA_RANGE_FROM_DATA,
355  NFTA_RANGE_TO_DATA,
356  __NFTA_RANGE_MAX
357};
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359#define NFTA_RANGE_MAX (__NFTA_RANGE_MAX - 1)
360enum nft_lookup_flags {
361  NFT_LOOKUP_F_INV = (1 << 0),
362};
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364enum nft_lookup_attributes {
365  NFTA_LOOKUP_UNSPEC,
366  NFTA_LOOKUP_SET,
367  NFTA_LOOKUP_SREG,
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  NFTA_LOOKUP_DREG,
370  NFTA_LOOKUP_SET_ID,
371  NFTA_LOOKUP_FLAGS,
372  __NFTA_LOOKUP_MAX
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374};
375#define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1)
376enum nft_dynset_ops {
377  NFT_DYNSET_OP_ADD,
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379  NFT_DYNSET_OP_UPDATE,
380};
381enum nft_dynset_flags {
382  NFT_DYNSET_F_INV = (1 << 0),
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384};
385enum nft_dynset_attributes {
386  NFTA_DYNSET_UNSPEC,
387  NFTA_DYNSET_SET_NAME,
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389  NFTA_DYNSET_SET_ID,
390  NFTA_DYNSET_OP,
391  NFTA_DYNSET_SREG_KEY,
392  NFTA_DYNSET_SREG_DATA,
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394  NFTA_DYNSET_TIMEOUT,
395  NFTA_DYNSET_EXPR,
396  NFTA_DYNSET_PAD,
397  NFTA_DYNSET_FLAGS,
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399  __NFTA_DYNSET_MAX,
400};
401#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
402enum nft_payload_bases {
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  NFT_PAYLOAD_LL_HEADER,
405  NFT_PAYLOAD_NETWORK_HEADER,
406  NFT_PAYLOAD_TRANSPORT_HEADER,
407};
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409enum nft_payload_csum_types {
410  NFT_PAYLOAD_CSUM_NONE,
411  NFT_PAYLOAD_CSUM_INET,
412};
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414enum nft_payload_attributes {
415  NFTA_PAYLOAD_UNSPEC,
416  NFTA_PAYLOAD_DREG,
417  NFTA_PAYLOAD_BASE,
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  NFTA_PAYLOAD_OFFSET,
420  NFTA_PAYLOAD_LEN,
421  NFTA_PAYLOAD_SREG,
422  NFTA_PAYLOAD_CSUM_TYPE,
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  NFTA_PAYLOAD_CSUM_OFFSET,
425  __NFTA_PAYLOAD_MAX
426};
427#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429enum nft_exthdr_attributes {
430  NFTA_EXTHDR_UNSPEC,
431  NFTA_EXTHDR_DREG,
432  NFTA_EXTHDR_TYPE,
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  NFTA_EXTHDR_OFFSET,
435  NFTA_EXTHDR_LEN,
436  __NFTA_EXTHDR_MAX
437};
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
440enum nft_meta_keys {
441  NFT_META_LEN,
442  NFT_META_PROTOCOL,
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  NFT_META_PRIORITY,
445  NFT_META_MARK,
446  NFT_META_IIF,
447  NFT_META_OIF,
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  NFT_META_IIFNAME,
450  NFT_META_OIFNAME,
451  NFT_META_IIFTYPE,
452  NFT_META_OIFTYPE,
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  NFT_META_SKUID,
455  NFT_META_SKGID,
456  NFT_META_NFTRACE,
457  NFT_META_RTCLASSID,
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  NFT_META_SECMARK,
460  NFT_META_NFPROTO,
461  NFT_META_L4PROTO,
462  NFT_META_BRI_IIFNAME,
463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  NFT_META_BRI_OIFNAME,
465  NFT_META_PKTTYPE,
466  NFT_META_CPU,
467  NFT_META_IIFGROUP,
468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  NFT_META_OIFGROUP,
470  NFT_META_CGROUP,
471  NFT_META_PRANDOM,
472};
473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474enum nft_hash_attributes {
475  NFTA_HASH_UNSPEC,
476  NFTA_HASH_SREG,
477  NFTA_HASH_DREG,
478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  NFTA_HASH_LEN,
480  NFTA_HASH_MODULUS,
481  NFTA_HASH_SEED,
482  NFTA_HASH_OFFSET,
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484  __NFTA_HASH_MAX,
485};
486#define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1)
487enum nft_meta_attributes {
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  NFTA_META_UNSPEC,
490  NFTA_META_DREG,
491  NFTA_META_KEY,
492  NFTA_META_SREG,
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494  __NFTA_META_MAX
495};
496#define NFTA_META_MAX (__NFTA_META_MAX - 1)
497enum nft_ct_keys {
498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  NFT_CT_STATE,
500  NFT_CT_DIRECTION,
501  NFT_CT_STATUS,
502  NFT_CT_MARK,
503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504  NFT_CT_SECMARK,
505  NFT_CT_EXPIRATION,
506  NFT_CT_HELPER,
507  NFT_CT_L3PROTOCOL,
508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  NFT_CT_SRC,
510  NFT_CT_DST,
511  NFT_CT_PROTOCOL,
512  NFT_CT_PROTO_SRC,
513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514  NFT_CT_PROTO_DST,
515  NFT_CT_LABELS,
516  NFT_CT_PKTS,
517  NFT_CT_BYTES,
518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519};
520enum nft_ct_attributes {
521  NFTA_CT_UNSPEC,
522  NFTA_CT_DREG,
523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524  NFTA_CT_KEY,
525  NFTA_CT_DIRECTION,
526  NFTA_CT_SREG,
527  __NFTA_CT_MAX
528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529};
530#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
531enum nft_limit_type {
532  NFT_LIMIT_PKTS,
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534  NFT_LIMIT_PKT_BYTES
535};
536enum nft_limit_flags {
537  NFT_LIMIT_F_INV = (1 << 0),
538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539};
540enum nft_limit_attributes {
541  NFTA_LIMIT_UNSPEC,
542  NFTA_LIMIT_RATE,
543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544  NFTA_LIMIT_UNIT,
545  NFTA_LIMIT_BURST,
546  NFTA_LIMIT_TYPE,
547  NFTA_LIMIT_FLAGS,
548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549  NFTA_LIMIT_PAD,
550  __NFTA_LIMIT_MAX
551};
552#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554enum nft_counter_attributes {
555  NFTA_COUNTER_UNSPEC,
556  NFTA_COUNTER_BYTES,
557  NFTA_COUNTER_PACKETS,
558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559  NFTA_COUNTER_PAD,
560  __NFTA_COUNTER_MAX
561};
562#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564enum nft_log_attributes {
565  NFTA_LOG_UNSPEC,
566  NFTA_LOG_GROUP,
567  NFTA_LOG_PREFIX,
568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569  NFTA_LOG_SNAPLEN,
570  NFTA_LOG_QTHRESHOLD,
571  NFTA_LOG_LEVEL,
572  NFTA_LOG_FLAGS,
573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574  __NFTA_LOG_MAX
575};
576#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1)
577enum nft_queue_attributes {
578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579  NFTA_QUEUE_UNSPEC,
580  NFTA_QUEUE_NUM,
581  NFTA_QUEUE_TOTAL,
582  NFTA_QUEUE_FLAGS,
583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584  NFTA_QUEUE_SREG_QNUM,
585  __NFTA_QUEUE_MAX
586};
587#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1)
588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589#define NFT_QUEUE_FLAG_BYPASS 0x01
590#define NFT_QUEUE_FLAG_CPU_FANOUT 0x02
591#define NFT_QUEUE_FLAG_MASK 0x03
592enum nft_quota_flags {
593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594  NFT_QUOTA_F_INV = (1 << 0),
595};
596enum nft_quota_attributes {
597  NFTA_QUOTA_UNSPEC,
598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599  NFTA_QUOTA_BYTES,
600  NFTA_QUOTA_FLAGS,
601  NFTA_QUOTA_PAD,
602  __NFTA_QUOTA_MAX
603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604};
605#define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1)
606enum nft_reject_types {
607  NFT_REJECT_ICMP_UNREACH,
608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609  NFT_REJECT_TCP_RST,
610  NFT_REJECT_ICMPX_UNREACH,
611};
612enum nft_reject_inet_code {
613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614  NFT_REJECT_ICMPX_NO_ROUTE = 0,
615  NFT_REJECT_ICMPX_PORT_UNREACH,
616  NFT_REJECT_ICMPX_HOST_UNREACH,
617  NFT_REJECT_ICMPX_ADMIN_PROHIBITED,
618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619  __NFT_REJECT_ICMPX_MAX
620};
621#define NFT_REJECT_ICMPX_MAX (__NFT_REJECT_ICMPX_MAX - 1)
622enum nft_reject_attributes {
623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624  NFTA_REJECT_UNSPEC,
625  NFTA_REJECT_TYPE,
626  NFTA_REJECT_ICMP_CODE,
627  __NFTA_REJECT_MAX
628/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629};
630#define NFTA_REJECT_MAX (__NFTA_REJECT_MAX - 1)
631enum nft_nat_types {
632  NFT_NAT_SNAT,
633/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634  NFT_NAT_DNAT,
635};
636enum nft_nat_attributes {
637  NFTA_NAT_UNSPEC,
638/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639  NFTA_NAT_TYPE,
640  NFTA_NAT_FAMILY,
641  NFTA_NAT_REG_ADDR_MIN,
642  NFTA_NAT_REG_ADDR_MAX,
643/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644  NFTA_NAT_REG_PROTO_MIN,
645  NFTA_NAT_REG_PROTO_MAX,
646  NFTA_NAT_FLAGS,
647  __NFTA_NAT_MAX
648/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649};
650#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
651enum nft_masq_attributes {
652  NFTA_MASQ_UNSPEC,
653/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654  NFTA_MASQ_FLAGS,
655  NFTA_MASQ_REG_PROTO_MIN,
656  NFTA_MASQ_REG_PROTO_MAX,
657  __NFTA_MASQ_MAX
658/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659};
660#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1)
661enum nft_redir_attributes {
662  NFTA_REDIR_UNSPEC,
663/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664  NFTA_REDIR_REG_PROTO_MIN,
665  NFTA_REDIR_REG_PROTO_MAX,
666  NFTA_REDIR_FLAGS,
667  __NFTA_REDIR_MAX
668/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669};
670#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
671enum nft_dup_attributes {
672  NFTA_DUP_UNSPEC,
673/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674  NFTA_DUP_SREG_ADDR,
675  NFTA_DUP_SREG_DEV,
676  __NFTA_DUP_MAX
677};
678/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
680enum nft_fwd_attributes {
681  NFTA_FWD_UNSPEC,
682  NFTA_FWD_SREG_DEV,
683/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684  __NFTA_FWD_MAX
685};
686#define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1)
687enum nft_gen_attributes {
688/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689  NFTA_GEN_UNSPEC,
690  NFTA_GEN_ID,
691  __NFTA_GEN_MAX
692};
693/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
695enum nft_trace_attributes {
696  NFTA_TRACE_UNSPEC,
697  NFTA_TRACE_TABLE,
698/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699  NFTA_TRACE_CHAIN,
700  NFTA_TRACE_RULE_HANDLE,
701  NFTA_TRACE_TYPE,
702  NFTA_TRACE_VERDICT,
703/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704  NFTA_TRACE_ID,
705  NFTA_TRACE_LL_HEADER,
706  NFTA_TRACE_NETWORK_HEADER,
707  NFTA_TRACE_TRANSPORT_HEADER,
708/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709  NFTA_TRACE_IIF,
710  NFTA_TRACE_IIFTYPE,
711  NFTA_TRACE_OIF,
712  NFTA_TRACE_OIFTYPE,
713/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714  NFTA_TRACE_MARK,
715  NFTA_TRACE_NFPROTO,
716  NFTA_TRACE_POLICY,
717  NFTA_TRACE_PAD,
718/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719  __NFTA_TRACE_MAX
720};
721#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
722enum nft_trace_types {
723/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724  NFT_TRACETYPE_UNSPEC,
725  NFT_TRACETYPE_POLICY,
726  NFT_TRACETYPE_RETURN,
727  NFT_TRACETYPE_RULE,
728/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729  __NFT_TRACETYPE_MAX
730};
731#define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1)
732enum nft_ng_attributes {
733/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734  NFTA_NG_UNSPEC,
735  NFTA_NG_DREG,
736  NFTA_NG_MODULUS,
737  NFTA_NG_TYPE,
738/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739  NFTA_NG_OFFSET,
740  __NFTA_NG_MAX
741};
742#define NFTA_NG_MAX (__NFTA_NG_MAX - 1)
743/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744enum nft_ng_types {
745  NFT_NG_INCREMENTAL,
746  NFT_NG_RANDOM,
747  __NFT_NG_MAX
748/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749};
750#define NFT_NG_MAX (__NFT_NG_MAX - 1)
751#endif
752