nf_tables.h revision 49f525c47bd383cd6a87db8f067cddb3ab620d17
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_lookup_flags {
345  NFT_LOOKUP_F_INV = (1 << 0),
346};
347enum nft_lookup_attributes {
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  NFTA_LOOKUP_UNSPEC,
350  NFTA_LOOKUP_SET,
351  NFTA_LOOKUP_SREG,
352  NFTA_LOOKUP_DREG,
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  NFTA_LOOKUP_SET_ID,
355  NFTA_LOOKUP_FLAGS,
356  __NFTA_LOOKUP_MAX
357};
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359#define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1)
360enum nft_dynset_ops {
361  NFT_DYNSET_OP_ADD,
362  NFT_DYNSET_OP_UPDATE,
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364};
365enum nft_dynset_attributes {
366  NFTA_DYNSET_UNSPEC,
367  NFTA_DYNSET_SET_NAME,
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  NFTA_DYNSET_SET_ID,
370  NFTA_DYNSET_OP,
371  NFTA_DYNSET_SREG_KEY,
372  NFTA_DYNSET_SREG_DATA,
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  NFTA_DYNSET_TIMEOUT,
375  NFTA_DYNSET_EXPR,
376  NFTA_DYNSET_PAD,
377  __NFTA_DYNSET_MAX,
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379};
380#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
381enum nft_payload_bases {
382  NFT_PAYLOAD_LL_HEADER,
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384  NFT_PAYLOAD_NETWORK_HEADER,
385  NFT_PAYLOAD_TRANSPORT_HEADER,
386};
387enum nft_payload_csum_types {
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389  NFT_PAYLOAD_CSUM_NONE,
390  NFT_PAYLOAD_CSUM_INET,
391};
392enum nft_payload_attributes {
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394  NFTA_PAYLOAD_UNSPEC,
395  NFTA_PAYLOAD_DREG,
396  NFTA_PAYLOAD_BASE,
397  NFTA_PAYLOAD_OFFSET,
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399  NFTA_PAYLOAD_LEN,
400  NFTA_PAYLOAD_SREG,
401  NFTA_PAYLOAD_CSUM_TYPE,
402  NFTA_PAYLOAD_CSUM_OFFSET,
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  __NFTA_PAYLOAD_MAX
405};
406#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
407enum nft_exthdr_attributes {
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  NFTA_EXTHDR_UNSPEC,
410  NFTA_EXTHDR_DREG,
411  NFTA_EXTHDR_TYPE,
412  NFTA_EXTHDR_OFFSET,
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414  NFTA_EXTHDR_LEN,
415  __NFTA_EXTHDR_MAX
416};
417#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419enum nft_meta_keys {
420  NFT_META_LEN,
421  NFT_META_PROTOCOL,
422  NFT_META_PRIORITY,
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  NFT_META_MARK,
425  NFT_META_IIF,
426  NFT_META_OIF,
427  NFT_META_IIFNAME,
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  NFT_META_OIFNAME,
430  NFT_META_IIFTYPE,
431  NFT_META_OIFTYPE,
432  NFT_META_SKUID,
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  NFT_META_SKGID,
435  NFT_META_NFTRACE,
436  NFT_META_RTCLASSID,
437  NFT_META_SECMARK,
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  NFT_META_NFPROTO,
440  NFT_META_L4PROTO,
441  NFT_META_BRI_IIFNAME,
442  NFT_META_BRI_OIFNAME,
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  NFT_META_PKTTYPE,
445  NFT_META_CPU,
446  NFT_META_IIFGROUP,
447  NFT_META_OIFGROUP,
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  NFT_META_CGROUP,
450  NFT_META_PRANDOM,
451};
452enum nft_meta_attributes {
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  NFTA_META_UNSPEC,
455  NFTA_META_DREG,
456  NFTA_META_KEY,
457  NFTA_META_SREG,
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  __NFTA_META_MAX
460};
461#define NFTA_META_MAX (__NFTA_META_MAX - 1)
462enum nft_ct_keys {
463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  NFT_CT_STATE,
465  NFT_CT_DIRECTION,
466  NFT_CT_STATUS,
467  NFT_CT_MARK,
468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  NFT_CT_SECMARK,
470  NFT_CT_EXPIRATION,
471  NFT_CT_HELPER,
472  NFT_CT_L3PROTOCOL,
473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  NFT_CT_SRC,
475  NFT_CT_DST,
476  NFT_CT_PROTOCOL,
477  NFT_CT_PROTO_SRC,
478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  NFT_CT_PROTO_DST,
480  NFT_CT_LABELS,
481  NFT_CT_PKTS,
482  NFT_CT_BYTES,
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484};
485enum nft_ct_attributes {
486  NFTA_CT_UNSPEC,
487  NFTA_CT_DREG,
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  NFTA_CT_KEY,
490  NFTA_CT_DIRECTION,
491  NFTA_CT_SREG,
492  __NFTA_CT_MAX
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494};
495#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
496enum nft_limit_type {
497  NFT_LIMIT_PKTS,
498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  NFT_LIMIT_PKT_BYTES
500};
501enum nft_limit_flags {
502  NFT_LIMIT_F_INV = (1 << 0),
503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504};
505enum nft_limit_attributes {
506  NFTA_LIMIT_UNSPEC,
507  NFTA_LIMIT_RATE,
508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  NFTA_LIMIT_UNIT,
510  NFTA_LIMIT_BURST,
511  NFTA_LIMIT_TYPE,
512  NFTA_LIMIT_FLAGS,
513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514  NFTA_LIMIT_PAD,
515  __NFTA_LIMIT_MAX
516};
517#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519enum nft_counter_attributes {
520  NFTA_COUNTER_UNSPEC,
521  NFTA_COUNTER_BYTES,
522  NFTA_COUNTER_PACKETS,
523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524  NFTA_COUNTER_PAD,
525  __NFTA_COUNTER_MAX
526};
527#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529enum nft_log_attributes {
530  NFTA_LOG_UNSPEC,
531  NFTA_LOG_GROUP,
532  NFTA_LOG_PREFIX,
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534  NFTA_LOG_SNAPLEN,
535  NFTA_LOG_QTHRESHOLD,
536  NFTA_LOG_LEVEL,
537  NFTA_LOG_FLAGS,
538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539  __NFTA_LOG_MAX
540};
541#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1)
542enum nft_queue_attributes {
543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544  NFTA_QUEUE_UNSPEC,
545  NFTA_QUEUE_NUM,
546  NFTA_QUEUE_TOTAL,
547  NFTA_QUEUE_FLAGS,
548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549  __NFTA_QUEUE_MAX
550};
551#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1)
552#define NFT_QUEUE_FLAG_BYPASS 0x01
553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554#define NFT_QUEUE_FLAG_CPU_FANOUT 0x02
555#define NFT_QUEUE_FLAG_MASK 0x03
556enum nft_reject_types {
557  NFT_REJECT_ICMP_UNREACH,
558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559  NFT_REJECT_TCP_RST,
560  NFT_REJECT_ICMPX_UNREACH,
561};
562enum nft_reject_inet_code {
563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564  NFT_REJECT_ICMPX_NO_ROUTE = 0,
565  NFT_REJECT_ICMPX_PORT_UNREACH,
566  NFT_REJECT_ICMPX_HOST_UNREACH,
567  NFT_REJECT_ICMPX_ADMIN_PROHIBITED,
568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569  __NFT_REJECT_ICMPX_MAX
570};
571#define NFT_REJECT_ICMPX_MAX (__NFT_REJECT_ICMPX_MAX - 1)
572enum nft_reject_attributes {
573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574  NFTA_REJECT_UNSPEC,
575  NFTA_REJECT_TYPE,
576  NFTA_REJECT_ICMP_CODE,
577  __NFTA_REJECT_MAX
578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579};
580#define NFTA_REJECT_MAX (__NFTA_REJECT_MAX - 1)
581enum nft_nat_types {
582  NFT_NAT_SNAT,
583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584  NFT_NAT_DNAT,
585};
586enum nft_nat_attributes {
587  NFTA_NAT_UNSPEC,
588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589  NFTA_NAT_TYPE,
590  NFTA_NAT_FAMILY,
591  NFTA_NAT_REG_ADDR_MIN,
592  NFTA_NAT_REG_ADDR_MAX,
593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594  NFTA_NAT_REG_PROTO_MIN,
595  NFTA_NAT_REG_PROTO_MAX,
596  NFTA_NAT_FLAGS,
597  __NFTA_NAT_MAX
598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599};
600#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
601enum nft_masq_attributes {
602  NFTA_MASQ_UNSPEC,
603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604  NFTA_MASQ_FLAGS,
605  NFTA_MASQ_REG_PROTO_MIN,
606  NFTA_MASQ_REG_PROTO_MAX,
607  __NFTA_MASQ_MAX
608/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609};
610#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1)
611enum nft_redir_attributes {
612  NFTA_REDIR_UNSPEC,
613/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614  NFTA_REDIR_REG_PROTO_MIN,
615  NFTA_REDIR_REG_PROTO_MAX,
616  NFTA_REDIR_FLAGS,
617  __NFTA_REDIR_MAX
618/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619};
620#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
621enum nft_dup_attributes {
622  NFTA_DUP_UNSPEC,
623/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624  NFTA_DUP_SREG_ADDR,
625  NFTA_DUP_SREG_DEV,
626  __NFTA_DUP_MAX
627};
628/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
630enum nft_fwd_attributes {
631  NFTA_FWD_UNSPEC,
632  NFTA_FWD_SREG_DEV,
633/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634  __NFTA_FWD_MAX
635};
636#define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1)
637enum nft_gen_attributes {
638/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639  NFTA_GEN_UNSPEC,
640  NFTA_GEN_ID,
641  __NFTA_GEN_MAX
642};
643/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
645enum nft_trace_attibutes {
646  NFTA_TRACE_UNSPEC,
647  NFTA_TRACE_TABLE,
648/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649  NFTA_TRACE_CHAIN,
650  NFTA_TRACE_RULE_HANDLE,
651  NFTA_TRACE_TYPE,
652  NFTA_TRACE_VERDICT,
653/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654  NFTA_TRACE_ID,
655  NFTA_TRACE_LL_HEADER,
656  NFTA_TRACE_NETWORK_HEADER,
657  NFTA_TRACE_TRANSPORT_HEADER,
658/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659  NFTA_TRACE_IIF,
660  NFTA_TRACE_IIFTYPE,
661  NFTA_TRACE_OIF,
662  NFTA_TRACE_OIFTYPE,
663/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664  NFTA_TRACE_MARK,
665  NFTA_TRACE_NFPROTO,
666  NFTA_TRACE_POLICY,
667  NFTA_TRACE_PAD,
668/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669  __NFTA_TRACE_MAX
670};
671#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
672enum nft_trace_types {
673/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674  NFT_TRACETYPE_UNSPEC,
675  NFT_TRACETYPE_POLICY,
676  NFT_TRACETYPE_RETURN,
677  NFT_TRACETYPE_RULE,
678/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679  __NFT_TRACETYPE_MAX
680};
681#define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1)
682#endif
683/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684