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