138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/****************************************************************************
238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ****************************************************************************
338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***
438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   This header was automatically generated from a Linux kernel header
538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   of the same name, to make information necessary for userspace to
638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   call into the kernel available to libc.  It contains only constants,
738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   structures, and macros generated from the original header, and thus,
838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   contains no copyrightable information.
938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***
1038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   To edit the content of this header, modify the corresponding
1138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   source file (e.g. under external/kernel-headers/original/) then
1238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   run bionic/libc/kernel/tools/update_all.py
1338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***
1438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   Any manual change here will be lost the next time this script will
1538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***   be run. You've been warned!
1638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ***
1738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ****************************************************************************
1838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ****************************************************************************/
1938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#ifndef _LINUX_NF_TABLES_H
2038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define _LINUX_NF_TABLES_H
211308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define NFT_NAME_MAXLEN 256
221308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define NFT_TABLE_MAXNAMELEN NFT_NAME_MAXLEN
231308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define NFT_CHAIN_MAXNAMELEN NFT_NAME_MAXLEN
241308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
251308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
2605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFT_USERDATA_MAXLEN 256
27ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum nft_registers {
2848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_REG_VERDICT,
29106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_REG_1,
3005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG_2,
31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REG_3,
3248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_REG_4,
33106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __NFT_REG_MAX,
3405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_00 = 8,
3549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  NFT_REG32_01,
3648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_REG32_02,
37106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_REG32_03,
3805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_04,
3905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_05,
4048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_REG32_06,
41106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_REG32_07,
4205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_08,
4305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_09,
4448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_REG32_10,
45106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_REG32_11,
4605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_12,
4705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_REG32_13,
4848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_REG32_14,
49106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_REG32_15,
5005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
51ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFT_REG_MAX (__NFT_REG_MAX - 1)
5248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFT_REG_SIZE 16
53106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NFT_REG32_SIZE 4
5438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_verdicts {
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CONTINUE = - 1,
5648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_BREAK = - 2,
57106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_JUMP = - 3,
58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_GOTO = - 4,
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_RETURN = - 5,
6048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
61106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisenum nf_tables_msg_types {
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_NEWTABLE,
63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_GETTABLE,
6448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_DELTABLE,
65106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_MSG_NEWCHAIN,
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_GETCHAIN,
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_DELCHAIN,
6848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_NEWRULE,
69106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_MSG_GETRULE,
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_DELRULE,
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_NEWSET,
7248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_GETSET,
73106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_MSG_DELSET,
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_NEWSETELEM,
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_GETSETELEM,
7648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_DELSETELEM,
77106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_MSG_NEWGEN,
78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_MSG_GETGEN,
79106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_MSG_TRACE,
8048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_NEWOBJ,
8148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_GETOBJ,
8248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_DELOBJ,
8348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_GETOBJ_RESET,
8448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_MSG_MAX,
8538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
8638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_list_attributes {
87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LIST_UNPEC,
8848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_LIST_ELEM,
89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_LIST_MAX
9038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
9138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_LIST_MAX (__NFTA_LIST_MAX - 1)
9248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_hook_attributes {
93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_HOOK_UNSPEC,
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_HOOK_HOOKNUM,
95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_HOOK_PRIORITY,
9648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_HOOK_DEV,
97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_HOOK_MAX
9838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
9938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
10048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_table_flags {
101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_TABLE_F_DORMANT = 0x1,
10238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
10338062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_table_attributes {
10448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_TABLE_UNSPEC,
105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_TABLE_NAME,
106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_TABLE_FLAGS,
107d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_TABLE_USE,
10848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFTA_TABLE_MAX
109ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
11038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
11138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_chain_attributes {
11248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_CHAIN_UNSPEC,
113d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CHAIN_TABLE,
114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CHAIN_HANDLE,
115d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CHAIN_NAME,
11648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_CHAIN_HOOK,
117d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CHAIN_POLICY,
118d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CHAIN_USE,
119d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CHAIN_TYPE,
12048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_CHAIN_COUNTERS,
121106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_CHAIN_PAD,
122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_CHAIN_MAX
12338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
12448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
12538062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_rule_attributes {
126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_UNSPEC,
127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_TABLE,
12848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_RULE_CHAIN,
129d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_HANDLE,
130d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_EXPRESSIONS,
131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_COMPAT,
13248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_RULE_POSITION,
133d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_USERDATA,
134106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_RULE_PAD,
135525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_RULE_ID,
136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_RULE_MAX
13748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
13838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
13938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_rule_compat_flags {
140d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_RULE_COMPAT_F_INV = (1 << 1),
14148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
14238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
14338062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_rule_compat_attributes {
144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_COMPAT_UNSPEC,
14548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_RULE_COMPAT_PROTO,
146d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_RULE_COMPAT_FLAGS,
147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_RULE_COMPAT_MAX
14838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
14948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFTA_RULE_COMPAT_MAX (__NFTA_RULE_COMPAT_MAX - 1)
15038062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_set_flags {
151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_SET_ANONYMOUS = 0x1,
152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_SET_CONSTANT = 0x2,
15348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_SET_INTERVAL = 0x4,
154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_SET_MAP = 0x8,
15505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_SET_TIMEOUT = 0x10,
15605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_SET_EVAL = 0x20,
15748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_SET_OBJECT = 0x40,
15848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
159ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum nft_set_policies {
160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_SET_POL_PERFORMANCE,
161d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_SET_POL_MEMORY,
162ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
163ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum nft_set_desc_attributes {
164d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_DESC_UNSPEC,
165d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_DESC_SIZE,
166d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_SET_DESC_MAX
167ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
168ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFTA_SET_DESC_MAX (__NFTA_SET_DESC_MAX - 1)
16938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_set_attributes {
170d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_UNSPEC,
171d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_TABLE,
172d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_NAME,
173d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_FLAGS,
174d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_KEY_TYPE,
175d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_KEY_LEN,
176d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_DATA_TYPE,
177d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_DATA_LEN,
178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_POLICY,
179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_DESC,
180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ID,
18105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_SET_TIMEOUT,
18205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_SET_GC_INTERVAL,
183106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_SET_USERDATA,
184106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_SET_PAD,
18548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_SET_OBJ_TYPE,
186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_SET_MAX
18738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
18838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
18938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_set_elem_flags {
190d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_SET_ELEM_INTERVAL_END = 0x1,
19138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
19238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_set_elem_attributes {
193d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_UNSPEC,
194d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_KEY,
195d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_DATA,
196d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_FLAGS,
19705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_SET_ELEM_TIMEOUT,
19805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_SET_ELEM_EXPIRATION,
19905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_SET_ELEM_USERDATA,
20005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_SET_ELEM_EXPR,
201106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_SET_ELEM_PAD,
20248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_SET_ELEM_OBJREF,
203d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_SET_ELEM_MAX
20438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
20538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
20638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_set_elem_list_attributes {
207d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_LIST_UNSPEC,
208d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_LIST_TABLE,
209d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_LIST_SET,
210d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_LIST_ELEMENTS,
211d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_SET_ELEM_LIST_SET_ID,
212d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_SET_ELEM_LIST_MAX
21338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
21438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_SET_ELEM_LIST_MAX (__NFTA_SET_ELEM_LIST_MAX - 1)
21538062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_data_types {
216d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_DATA_VALUE,
217d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_DATA_VERDICT = 0xffffff00U,
21838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
21938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFT_DATA_RESERVED_MASK 0xffffff00U
22038062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_data_attributes {
221d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_DATA_UNSPEC,
222d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_DATA_VALUE,
223d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_DATA_VERDICT,
224d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_DATA_MAX
22538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
22638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_DATA_MAX (__NFTA_DATA_MAX - 1)
22705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFT_DATA_VALUE_MAXLEN 64
22805d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nft_verdict_attributes {
229d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_VERDICT_UNSPEC,
230d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_VERDICT_CODE,
231d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_VERDICT_CHAIN,
23205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __NFTA_VERDICT_MAX
23338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
23438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1)
23538062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_expr_attributes {
23605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_EXPR_UNSPEC,
237d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_EXPR_NAME,
238d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_EXPR_DATA,
239d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_EXPR_MAX
24005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
24138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_EXPR_MAX (__NFTA_EXPR_MAX - 1)
24238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_immediate_attributes {
243d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_IMMEDIATE_UNSPEC,
24405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_IMMEDIATE_DREG,
245d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_IMMEDIATE_DATA,
246d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_IMMEDIATE_MAX
24738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
24805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1)
24938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_bitwise_attributes {
250d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BITWISE_UNSPEC,
251d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BITWISE_SREG,
25205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_BITWISE_DREG,
253d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BITWISE_LEN,
254d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BITWISE_MASK,
255d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BITWISE_XOR,
25605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __NFTA_BITWISE_MAX
25738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
25838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1)
25938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_byteorder_ops {
26005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_BYTEORDER_NTOH,
261d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_BYTEORDER_HTON,
26238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
26338062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_byteorder_attributes {
26405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_BYTEORDER_UNSPEC,
265d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BYTEORDER_SREG,
266d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BYTEORDER_DREG,
267d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BYTEORDER_OP,
26805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_BYTEORDER_LEN,
269d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_BYTEORDER_SIZE,
270d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_BYTEORDER_MAX
27138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
27205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFTA_BYTEORDER_MAX (__NFTA_BYTEORDER_MAX - 1)
27338062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_cmp_ops {
274d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CMP_EQ,
275d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CMP_NEQ,
27605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_CMP_LT,
277d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CMP_LTE,
278d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CMP_GT,
279d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CMP_GTE,
28005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
28138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_cmp_attributes {
282d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CMP_UNSPEC,
283d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CMP_SREG,
28405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_CMP_OP,
285d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CMP_DATA,
286d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_CMP_MAX
28738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
28805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1)
2896a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_range_ops {
2906a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_RANGE_EQ,
2916a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_RANGE_NEQ,
2926a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
2936a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_range_attributes {
2946a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_RANGE_UNSPEC,
2956a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_RANGE_SREG,
2966a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_RANGE_OP,
2976a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_RANGE_FROM_DATA,
2986a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_RANGE_TO_DATA,
2996a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __NFTA_RANGE_MAX
3006a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
3016a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFTA_RANGE_MAX (__NFTA_RANGE_MAX - 1)
30249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum nft_lookup_flags {
30349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  NFT_LOOKUP_F_INV = (1 << 0),
30449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
3056a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_lookup_attributes {
306d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOOKUP_UNSPEC,
307d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOOKUP_SET,
30805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_LOOKUP_SREG,
3096a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_LOOKUP_DREG,
310d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOOKUP_SET_ID,
31149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  NFTA_LOOKUP_FLAGS,
312d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_LOOKUP_MAX
3136a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
31438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1)
31505d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nft_dynset_ops {
31605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_DYNSET_OP_ADD,
31705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_DYNSET_OP_UPDATE,
3186a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
3196a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_dynset_flags {
3206a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_DYNSET_F_INV = (1 << 0),
32105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
32205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nft_dynset_attributes {
32305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_UNSPEC,
32405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_SET_NAME,
32505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_SET_ID,
32605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_OP,
32705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_SREG_KEY,
32805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_SREG_DATA,
32905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_TIMEOUT,
33005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DYNSET_EXPR,
331106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_DYNSET_PAD,
3326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_DYNSET_FLAGS,
3336a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __NFTA_DYNSET_MAX,
33405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
33505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
33638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_payload_bases {
3376a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_PAYLOAD_LL_HEADER,
33805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_PAYLOAD_NETWORK_HEADER,
339d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_PAYLOAD_TRANSPORT_HEADER,
34038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
3416a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_payload_csum_types {
342106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_PAYLOAD_CSUM_NONE,
343106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_PAYLOAD_CSUM_INET,
344106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
34548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_payload_csum_flags {
34648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0),
34748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
3486a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_payload_attributes {
34905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_PAYLOAD_UNSPEC,
350d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_PAYLOAD_DREG,
351d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_PAYLOAD_BASE,
3526a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_PAYLOAD_OFFSET,
35305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_PAYLOAD_LEN,
354106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_PAYLOAD_SREG,
355106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_PAYLOAD_CSUM_TYPE,
3566a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_PAYLOAD_CSUM_OFFSET,
35748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_PAYLOAD_CSUM_FLAGS,
358d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_PAYLOAD_MAX
35938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
360ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
361525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisenum nft_exthdr_flags {
362525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_EXTHDR_F_PRESENT = (1 << 0),
363525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris};
364525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisenum nft_exthdr_op {
365525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_EXTHDR_OP_IPV6,
366525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_EXTHDR_OP_TCPOPT,
367525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  __NFT_EXTHDR_OP_MAX
368525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris};
369525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
3706a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_exthdr_attributes {
371d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_EXTHDR_UNSPEC,
372d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_EXTHDR_DREG,
373d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_EXTHDR_TYPE,
3746a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_EXTHDR_OFFSET,
375d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_EXTHDR_LEN,
376525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_EXTHDR_FLAGS,
377525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_EXTHDR_OP,
3781308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  NFTA_EXTHDR_SREG,
379d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_EXTHDR_MAX
380ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
3816a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
38238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_meta_keys {
383d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_LEN,
384d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_PROTOCOL,
3856a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_META_PRIORITY,
386d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_MARK,
387d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_IIF,
388d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_OIF,
3896a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_META_IIFNAME,
390d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_OIFNAME,
391d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_IIFTYPE,
392d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_OIFTYPE,
3936a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_META_SKUID,
394d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_SKGID,
395d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_NFTRACE,
396d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_RTCLASSID,
3976a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_META_SECMARK,
398d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_NFPROTO,
399d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_L4PROTO,
400d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_BRI_IIFNAME,
4016a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_META_BRI_OIFNAME,
402d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_PKTTYPE,
403d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_CPU,
404d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_META_IIFGROUP,
4056a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_META_OIFGROUP,
40605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_META_CGROUP,
407106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_META_PRANDOM,
408ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
40948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_rt_keys {
41048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_RT_CLASSID,
41148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_RT_NEXTHOP4,
41248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_RT_NEXTHOP6,
4131308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  NFT_RT_TCPMSS,
41448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
415525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisenum nft_hash_types {
416525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_HASH_JENKINS,
417525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_HASH_SYM,
418525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris};
4196a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_hash_attributes {
4206a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_HASH_UNSPEC,
4216a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_HASH_SREG,
42248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_HASH_DREG,
4236a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_HASH_LEN,
4246a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_HASH_MODULUS,
4256a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_HASH_SEED,
42648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_HASH_OFFSET,
427525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_HASH_TYPE,
4286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __NFTA_HASH_MAX,
4296a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
4306a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1)
43148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_meta_attributes {
432d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_META_UNSPEC,
433d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_META_DREG,
434d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_META_KEY,
43548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_META_SREG,
436d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_META_MAX
43738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
43838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_META_MAX (__NFTA_META_MAX - 1)
43948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_rt_attributes {
44048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_RT_UNSPEC,
44148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_RT_DREG,
44248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_RT_KEY,
44348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFTA_RT_MAX
44448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
44548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFTA_RT_MAX (__NFTA_RT_MAX - 1)
44638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_ct_keys {
447d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_STATE,
448d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_DIRECTION,
449d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_STATUS,
450d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_MARK,
451d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_SECMARK,
452d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_EXPIRATION,
453d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_HELPER,
454d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_L3PROTOCOL,
455d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_SRC,
456d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_DST,
457d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_PROTOCOL,
458d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_PROTO_SRC,
459d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_PROTO_DST,
460d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_CT_LABELS,
461106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_CT_PKTS,
462106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_CT_BYTES,
463525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_CT_AVGPKT,
464525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_CT_ZONE,
465525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFT_CT_EVENTMASK,
46638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
46738062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_ct_attributes {
468d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CT_UNSPEC,
469d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CT_DREG,
470d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CT_KEY,
471d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CT_DIRECTION,
472d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_CT_SREG,
473d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_CT_MAX
47438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
47538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
47605d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nft_limit_type {
47705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_LIMIT_PKTS,
47805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFT_LIMIT_PKT_BYTES
47905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
480106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisenum nft_limit_flags {
481106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_LIMIT_F_INV = (1 << 0),
482106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
48338062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_limit_attributes {
484d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LIMIT_UNSPEC,
485d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LIMIT_RATE,
486106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_LIMIT_UNIT,
48705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_LIMIT_BURST,
48805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_LIMIT_TYPE,
489106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_LIMIT_FLAGS,
490106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_LIMIT_PAD,
491d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_LIMIT_MAX
49238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
49338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
49438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_counter_attributes {
495d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_COUNTER_UNSPEC,
496d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_COUNTER_BYTES,
497d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_COUNTER_PACKETS,
498106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_COUNTER_PAD,
499d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_COUNTER_MAX
50038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
50138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
50238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_log_attributes {
503d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_UNSPEC,
504d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_GROUP,
505d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_PREFIX,
506d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_SNAPLEN,
507d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_QTHRESHOLD,
508d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_LEVEL,
509d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_LOG_FLAGS,
510d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_LOG_MAX
51138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
51238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1)
51338062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_queue_attributes {
514d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_QUEUE_UNSPEC,
515d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_QUEUE_NUM,
516d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_QUEUE_TOTAL,
517d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_QUEUE_FLAGS,
5186a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_QUEUE_SREG_QNUM,
519d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_QUEUE_MAX
52038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
52138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1)
5226a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFT_QUEUE_FLAG_BYPASS 0x01
52338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFT_QUEUE_FLAG_CPU_FANOUT 0x02
52438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFT_QUEUE_FLAG_MASK 0x03
5256a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_quota_flags {
5266a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_QUOTA_F_INV = (1 << 0),
52748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_QUOTA_F_DEPLETED = (1 << 1),
5286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
5296a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_quota_attributes {
53048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_QUOTA_UNSPEC,
5316a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_QUOTA_BYTES,
5326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_QUOTA_FLAGS,
5336a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_QUOTA_PAD,
53448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_QUOTA_CONSUMED,
53548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFTA_QUOTA_MAX
5366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
5376a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1)
53838062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_reject_types {
539d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_ICMP_UNREACH,
540d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_TCP_RST,
541d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_ICMPX_UNREACH,
54282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
54382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum nft_reject_inet_code {
544d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_ICMPX_NO_ROUTE = 0,
545d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_ICMPX_PORT_UNREACH,
546d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_ICMPX_HOST_UNREACH,
547d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_REJECT_ICMPX_ADMIN_PROHIBITED,
548d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFT_REJECT_ICMPX_MAX
54938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
55082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define NFT_REJECT_ICMPX_MAX (__NFT_REJECT_ICMPX_MAX - 1)
55138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_reject_attributes {
552d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_REJECT_UNSPEC,
553d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_REJECT_TYPE,
554d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_REJECT_ICMP_CODE,
555d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_REJECT_MAX
55682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
55738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_REJECT_MAX (__NFTA_REJECT_MAX - 1)
55838062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_nat_types {
559d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_NAT_SNAT,
560d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFT_NAT_DNAT,
56138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
56238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum nft_nat_attributes {
563d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_UNSPEC,
564d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_TYPE,
565d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_FAMILY,
566d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_REG_ADDR_MIN,
567d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_REG_ADDR_MAX,
568d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_REG_PROTO_MIN,
569d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_REG_PROTO_MAX,
570d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_NAT_FLAGS,
571d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_NAT_MAX
57238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris};
57338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
57482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum nft_masq_attributes {
575d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_MASQ_UNSPEC,
576d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_MASQ_FLAGS,
577106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_MASQ_REG_PROTO_MIN,
578106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_MASQ_REG_PROTO_MAX,
579d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_MASQ_MAX
58082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
58182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1)
58205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nft_redir_attributes {
58305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_REDIR_UNSPEC,
58405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_REDIR_REG_PROTO_MIN,
58505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_REDIR_REG_PROTO_MAX,
58605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_REDIR_FLAGS,
58705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __NFTA_REDIR_MAX
58805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
58905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
59005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nft_dup_attributes {
59105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DUP_UNSPEC,
59205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DUP_SREG_ADDR,
59305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  NFTA_DUP_SREG_DEV,
59405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  __NFTA_DUP_MAX
59505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
59605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
597106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisenum nft_fwd_attributes {
598106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_FWD_UNSPEC,
599106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_FWD_SREG_DEV,
600106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __NFTA_FWD_MAX
601106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
602106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1)
60348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_objref_attributes {
60448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJREF_UNSPEC,
60548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJREF_IMM_TYPE,
60648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJREF_IMM_NAME,
60748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJREF_SET_SREG,
60848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJREF_SET_NAME,
60948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJREF_SET_ID,
61048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFTA_OBJREF_MAX
61148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
61248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFTA_OBJREF_MAX (__NFTA_OBJREF_MAX - 1)
61382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum nft_gen_attributes {
614d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_GEN_UNSPEC,
615d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  NFTA_GEN_ID,
6161308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  NFTA_GEN_PROC_PID,
6171308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  NFTA_GEN_PROC_NAME,
618d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __NFTA_GEN_MAX
61982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
62082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
62148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_fib_attributes {
62248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_UNSPEC,
62348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_DREG,
62448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_RESULT,
62548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_FLAGS,
62648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFTA_FIB_MAX
62748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
62848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFTA_FIB_MAX (__NFTA_FIB_MAX - 1)
62948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_fib_result {
63048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_FIB_RESULT_UNSPEC,
63148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_FIB_RESULT_OIF,
63248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_FIB_RESULT_OIFNAME,
63348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFT_FIB_RESULT_ADDRTYPE,
63448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFT_FIB_RESULT_MAX
63548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
63648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFT_FIB_RESULT_MAX (__NFT_FIB_RESULT_MAX - 1)
63748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_fib_flags {
63848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_F_SADDR = 1 << 0,
63948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_F_DADDR = 1 << 1,
64048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_F_MARK = 1 << 2,
64148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_F_IIF = 1 << 3,
64248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_FIB_F_OIF = 1 << 4,
643525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_FIB_F_PRESENT = 1 << 5,
644525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris};
645525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisenum nft_ct_helper_attributes {
646525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_CT_HELPER_UNSPEC,
647525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_CT_HELPER_NAME,
648525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_CT_HELPER_L3PROTO,
649525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  NFTA_CT_HELPER_L4PROTO,
650525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  __NFTA_CT_HELPER_MAX,
65148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
652525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1)
65348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFT_OBJECT_UNSPEC 0
65448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFT_OBJECT_COUNTER 1
65548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFT_OBJECT_QUOTA 2
656525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define NFT_OBJECT_CT_HELPER 3
6571308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define NFT_OBJECT_LIMIT 4
6581308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define __NFT_OBJECT_MAX 5
65948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
66048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum nft_object_attributes {
66148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJ_UNSPEC,
66248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJ_TABLE,
66348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJ_NAME,
66448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJ_TYPE,
66548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJ_DATA,
66648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  NFTA_OBJ_USE,
66748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __NFTA_OBJ_MAX
66848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
66948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1)
6706a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_trace_attributes {
671106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_UNSPEC,
672106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_TABLE,
673106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_CHAIN,
674106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_RULE_HANDLE,
675106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_TYPE,
676106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_VERDICT,
677106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_ID,
678106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_LL_HEADER,
679106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_NETWORK_HEADER,
680106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_TRANSPORT_HEADER,
681106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_IIF,
682106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_IIFTYPE,
683106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_OIF,
684106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_OIFTYPE,
685106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_MARK,
686106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_NFPROTO,
687106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_POLICY,
688106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFTA_TRACE_PAD,
689106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __NFTA_TRACE_MAX
690106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
691106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
692106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisenum nft_trace_types {
693106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_TRACETYPE_UNSPEC,
694106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_TRACETYPE_POLICY,
695106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_TRACETYPE_RETURN,
696106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  NFT_TRACETYPE_RULE,
697106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  __NFT_TRACETYPE_MAX
698106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris};
699106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1)
7006a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_ng_attributes {
7016a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_NG_UNSPEC,
7026a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_NG_DREG,
7036a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_NG_MODULUS,
7046a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_NG_TYPE,
7056a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFTA_NG_OFFSET,
7066a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __NFTA_NG_MAX
7076a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
7086a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFTA_NG_MAX (__NFTA_NG_MAX - 1)
7096a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum nft_ng_types {
7106a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_NG_INCREMENTAL,
7116a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  NFT_NG_RANDOM,
7126a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __NFT_NG_MAX
7136a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
7146a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define NFT_NG_MAX (__NFT_NG_MAX - 1)
7156a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#endif
716