nf_tables.h revision 525ce914edf136d2bd02ac8c404d56c52e737f4d
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_ID, 135 __NFTA_RULE_MAX 136}; 137#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) 138enum nft_rule_compat_flags { 139 NFT_RULE_COMPAT_F_INV = (1 << 1), 140 NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV, 141}; 142enum nft_rule_compat_attributes { 143 NFTA_RULE_COMPAT_UNSPEC, 144 NFTA_RULE_COMPAT_PROTO, 145 NFTA_RULE_COMPAT_FLAGS, 146 __NFTA_RULE_COMPAT_MAX 147}; 148#define NFTA_RULE_COMPAT_MAX (__NFTA_RULE_COMPAT_MAX - 1) 149enum nft_set_flags { 150 NFT_SET_ANONYMOUS = 0x1, 151 NFT_SET_CONSTANT = 0x2, 152 NFT_SET_INTERVAL = 0x4, 153 NFT_SET_MAP = 0x8, 154 NFT_SET_TIMEOUT = 0x10, 155 NFT_SET_EVAL = 0x20, 156 NFT_SET_OBJECT = 0x40, 157}; 158enum nft_set_policies { 159 NFT_SET_POL_PERFORMANCE, 160 NFT_SET_POL_MEMORY, 161}; 162enum nft_set_desc_attributes { 163 NFTA_SET_DESC_UNSPEC, 164 NFTA_SET_DESC_SIZE, 165 __NFTA_SET_DESC_MAX 166}; 167#define NFTA_SET_DESC_MAX (__NFTA_SET_DESC_MAX - 1) 168enum nft_set_attributes { 169 NFTA_SET_UNSPEC, 170 NFTA_SET_TABLE, 171 NFTA_SET_NAME, 172 NFTA_SET_FLAGS, 173 NFTA_SET_KEY_TYPE, 174 NFTA_SET_KEY_LEN, 175 NFTA_SET_DATA_TYPE, 176 NFTA_SET_DATA_LEN, 177 NFTA_SET_POLICY, 178 NFTA_SET_DESC, 179 NFTA_SET_ID, 180 NFTA_SET_TIMEOUT, 181 NFTA_SET_GC_INTERVAL, 182 NFTA_SET_USERDATA, 183 NFTA_SET_PAD, 184 NFTA_SET_OBJ_TYPE, 185 __NFTA_SET_MAX 186}; 187#define NFTA_SET_MAX (__NFTA_SET_MAX - 1) 188enum nft_set_elem_flags { 189 NFT_SET_ELEM_INTERVAL_END = 0x1, 190}; 191enum nft_set_elem_attributes { 192 NFTA_SET_ELEM_UNSPEC, 193 NFTA_SET_ELEM_KEY, 194 NFTA_SET_ELEM_DATA, 195 NFTA_SET_ELEM_FLAGS, 196 NFTA_SET_ELEM_TIMEOUT, 197 NFTA_SET_ELEM_EXPIRATION, 198 NFTA_SET_ELEM_USERDATA, 199 NFTA_SET_ELEM_EXPR, 200 NFTA_SET_ELEM_PAD, 201 NFTA_SET_ELEM_OBJREF, 202 __NFTA_SET_ELEM_MAX 203}; 204#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1) 205enum nft_set_elem_list_attributes { 206 NFTA_SET_ELEM_LIST_UNSPEC, 207 NFTA_SET_ELEM_LIST_TABLE, 208 NFTA_SET_ELEM_LIST_SET, 209 NFTA_SET_ELEM_LIST_ELEMENTS, 210 NFTA_SET_ELEM_LIST_SET_ID, 211 __NFTA_SET_ELEM_LIST_MAX 212}; 213#define NFTA_SET_ELEM_LIST_MAX (__NFTA_SET_ELEM_LIST_MAX - 1) 214enum nft_data_types { 215 NFT_DATA_VALUE, 216 NFT_DATA_VERDICT = 0xffffff00U, 217}; 218#define NFT_DATA_RESERVED_MASK 0xffffff00U 219enum nft_data_attributes { 220 NFTA_DATA_UNSPEC, 221 NFTA_DATA_VALUE, 222 NFTA_DATA_VERDICT, 223 __NFTA_DATA_MAX 224}; 225#define NFTA_DATA_MAX (__NFTA_DATA_MAX - 1) 226#define NFT_DATA_VALUE_MAXLEN 64 227enum nft_verdict_attributes { 228 NFTA_VERDICT_UNSPEC, 229 NFTA_VERDICT_CODE, 230 NFTA_VERDICT_CHAIN, 231 __NFTA_VERDICT_MAX 232}; 233#define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1) 234enum nft_expr_attributes { 235 NFTA_EXPR_UNSPEC, 236 NFTA_EXPR_NAME, 237 NFTA_EXPR_DATA, 238 __NFTA_EXPR_MAX 239}; 240#define NFTA_EXPR_MAX (__NFTA_EXPR_MAX - 1) 241enum nft_immediate_attributes { 242 NFTA_IMMEDIATE_UNSPEC, 243 NFTA_IMMEDIATE_DREG, 244 NFTA_IMMEDIATE_DATA, 245 __NFTA_IMMEDIATE_MAX 246}; 247#define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1) 248enum nft_bitwise_attributes { 249 NFTA_BITWISE_UNSPEC, 250 NFTA_BITWISE_SREG, 251 NFTA_BITWISE_DREG, 252 NFTA_BITWISE_LEN, 253 NFTA_BITWISE_MASK, 254 NFTA_BITWISE_XOR, 255 __NFTA_BITWISE_MAX 256}; 257#define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1) 258enum nft_byteorder_ops { 259 NFT_BYTEORDER_NTOH, 260 NFT_BYTEORDER_HTON, 261}; 262enum nft_byteorder_attributes { 263 NFTA_BYTEORDER_UNSPEC, 264 NFTA_BYTEORDER_SREG, 265 NFTA_BYTEORDER_DREG, 266 NFTA_BYTEORDER_OP, 267 NFTA_BYTEORDER_LEN, 268 NFTA_BYTEORDER_SIZE, 269 __NFTA_BYTEORDER_MAX 270}; 271#define NFTA_BYTEORDER_MAX (__NFTA_BYTEORDER_MAX - 1) 272enum nft_cmp_ops { 273 NFT_CMP_EQ, 274 NFT_CMP_NEQ, 275 NFT_CMP_LT, 276 NFT_CMP_LTE, 277 NFT_CMP_GT, 278 NFT_CMP_GTE, 279}; 280enum nft_cmp_attributes { 281 NFTA_CMP_UNSPEC, 282 NFTA_CMP_SREG, 283 NFTA_CMP_OP, 284 NFTA_CMP_DATA, 285 __NFTA_CMP_MAX 286}; 287#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1) 288enum nft_range_ops { 289 NFT_RANGE_EQ, 290 NFT_RANGE_NEQ, 291}; 292enum nft_range_attributes { 293 NFTA_RANGE_UNSPEC, 294 NFTA_RANGE_SREG, 295 NFTA_RANGE_OP, 296 NFTA_RANGE_FROM_DATA, 297 NFTA_RANGE_TO_DATA, 298 __NFTA_RANGE_MAX 299}; 300#define NFTA_RANGE_MAX (__NFTA_RANGE_MAX - 1) 301enum nft_lookup_flags { 302 NFT_LOOKUP_F_INV = (1 << 0), 303}; 304enum nft_lookup_attributes { 305 NFTA_LOOKUP_UNSPEC, 306 NFTA_LOOKUP_SET, 307 NFTA_LOOKUP_SREG, 308 NFTA_LOOKUP_DREG, 309 NFTA_LOOKUP_SET_ID, 310 NFTA_LOOKUP_FLAGS, 311 __NFTA_LOOKUP_MAX 312}; 313#define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1) 314enum nft_dynset_ops { 315 NFT_DYNSET_OP_ADD, 316 NFT_DYNSET_OP_UPDATE, 317}; 318enum nft_dynset_flags { 319 NFT_DYNSET_F_INV = (1 << 0), 320}; 321enum nft_dynset_attributes { 322 NFTA_DYNSET_UNSPEC, 323 NFTA_DYNSET_SET_NAME, 324 NFTA_DYNSET_SET_ID, 325 NFTA_DYNSET_OP, 326 NFTA_DYNSET_SREG_KEY, 327 NFTA_DYNSET_SREG_DATA, 328 NFTA_DYNSET_TIMEOUT, 329 NFTA_DYNSET_EXPR, 330 NFTA_DYNSET_PAD, 331 NFTA_DYNSET_FLAGS, 332 __NFTA_DYNSET_MAX, 333}; 334#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1) 335enum nft_payload_bases { 336 NFT_PAYLOAD_LL_HEADER, 337 NFT_PAYLOAD_NETWORK_HEADER, 338 NFT_PAYLOAD_TRANSPORT_HEADER, 339}; 340enum nft_payload_csum_types { 341 NFT_PAYLOAD_CSUM_NONE, 342 NFT_PAYLOAD_CSUM_INET, 343}; 344enum nft_payload_csum_flags { 345 NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0), 346}; 347enum nft_payload_attributes { 348 NFTA_PAYLOAD_UNSPEC, 349 NFTA_PAYLOAD_DREG, 350 NFTA_PAYLOAD_BASE, 351 NFTA_PAYLOAD_OFFSET, 352 NFTA_PAYLOAD_LEN, 353 NFTA_PAYLOAD_SREG, 354 NFTA_PAYLOAD_CSUM_TYPE, 355 NFTA_PAYLOAD_CSUM_OFFSET, 356 NFTA_PAYLOAD_CSUM_FLAGS, 357 __NFTA_PAYLOAD_MAX 358}; 359#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1) 360enum nft_exthdr_flags { 361 NFT_EXTHDR_F_PRESENT = (1 << 0), 362}; 363enum nft_exthdr_op { 364 NFT_EXTHDR_OP_IPV6, 365 NFT_EXTHDR_OP_TCPOPT, 366 __NFT_EXTHDR_OP_MAX 367}; 368#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1) 369enum nft_exthdr_attributes { 370 NFTA_EXTHDR_UNSPEC, 371 NFTA_EXTHDR_DREG, 372 NFTA_EXTHDR_TYPE, 373 NFTA_EXTHDR_OFFSET, 374 NFTA_EXTHDR_LEN, 375 NFTA_EXTHDR_FLAGS, 376 NFTA_EXTHDR_OP, 377 __NFTA_EXTHDR_MAX 378}; 379#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) 380enum nft_meta_keys { 381 NFT_META_LEN, 382 NFT_META_PROTOCOL, 383 NFT_META_PRIORITY, 384 NFT_META_MARK, 385 NFT_META_IIF, 386 NFT_META_OIF, 387 NFT_META_IIFNAME, 388 NFT_META_OIFNAME, 389 NFT_META_IIFTYPE, 390 NFT_META_OIFTYPE, 391 NFT_META_SKUID, 392 NFT_META_SKGID, 393 NFT_META_NFTRACE, 394 NFT_META_RTCLASSID, 395 NFT_META_SECMARK, 396 NFT_META_NFPROTO, 397 NFT_META_L4PROTO, 398 NFT_META_BRI_IIFNAME, 399 NFT_META_BRI_OIFNAME, 400 NFT_META_PKTTYPE, 401 NFT_META_CPU, 402 NFT_META_IIFGROUP, 403 NFT_META_OIFGROUP, 404 NFT_META_CGROUP, 405 NFT_META_PRANDOM, 406}; 407enum nft_rt_keys { 408 NFT_RT_CLASSID, 409 NFT_RT_NEXTHOP4, 410 NFT_RT_NEXTHOP6, 411}; 412enum nft_hash_types { 413 NFT_HASH_JENKINS, 414 NFT_HASH_SYM, 415}; 416enum nft_hash_attributes { 417 NFTA_HASH_UNSPEC, 418 NFTA_HASH_SREG, 419 NFTA_HASH_DREG, 420 NFTA_HASH_LEN, 421 NFTA_HASH_MODULUS, 422 NFTA_HASH_SEED, 423 NFTA_HASH_OFFSET, 424 NFTA_HASH_TYPE, 425 __NFTA_HASH_MAX, 426}; 427#define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1) 428enum nft_meta_attributes { 429 NFTA_META_UNSPEC, 430 NFTA_META_DREG, 431 NFTA_META_KEY, 432 NFTA_META_SREG, 433 __NFTA_META_MAX 434}; 435#define NFTA_META_MAX (__NFTA_META_MAX - 1) 436enum nft_rt_attributes { 437 NFTA_RT_UNSPEC, 438 NFTA_RT_DREG, 439 NFTA_RT_KEY, 440 __NFTA_RT_MAX 441}; 442#define NFTA_RT_MAX (__NFTA_RT_MAX - 1) 443enum nft_ct_keys { 444 NFT_CT_STATE, 445 NFT_CT_DIRECTION, 446 NFT_CT_STATUS, 447 NFT_CT_MARK, 448 NFT_CT_SECMARK, 449 NFT_CT_EXPIRATION, 450 NFT_CT_HELPER, 451 NFT_CT_L3PROTOCOL, 452 NFT_CT_SRC, 453 NFT_CT_DST, 454 NFT_CT_PROTOCOL, 455 NFT_CT_PROTO_SRC, 456 NFT_CT_PROTO_DST, 457 NFT_CT_LABELS, 458 NFT_CT_PKTS, 459 NFT_CT_BYTES, 460 NFT_CT_AVGPKT, 461 NFT_CT_ZONE, 462 NFT_CT_EVENTMASK, 463}; 464enum nft_ct_attributes { 465 NFTA_CT_UNSPEC, 466 NFTA_CT_DREG, 467 NFTA_CT_KEY, 468 NFTA_CT_DIRECTION, 469 NFTA_CT_SREG, 470 __NFTA_CT_MAX 471}; 472#define NFTA_CT_MAX (__NFTA_CT_MAX - 1) 473enum nft_limit_type { 474 NFT_LIMIT_PKTS, 475 NFT_LIMIT_PKT_BYTES 476}; 477enum nft_limit_flags { 478 NFT_LIMIT_F_INV = (1 << 0), 479}; 480enum nft_limit_attributes { 481 NFTA_LIMIT_UNSPEC, 482 NFTA_LIMIT_RATE, 483 NFTA_LIMIT_UNIT, 484 NFTA_LIMIT_BURST, 485 NFTA_LIMIT_TYPE, 486 NFTA_LIMIT_FLAGS, 487 NFTA_LIMIT_PAD, 488 __NFTA_LIMIT_MAX 489}; 490#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1) 491enum nft_counter_attributes { 492 NFTA_COUNTER_UNSPEC, 493 NFTA_COUNTER_BYTES, 494 NFTA_COUNTER_PACKETS, 495 NFTA_COUNTER_PAD, 496 __NFTA_COUNTER_MAX 497}; 498#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1) 499enum nft_log_attributes { 500 NFTA_LOG_UNSPEC, 501 NFTA_LOG_GROUP, 502 NFTA_LOG_PREFIX, 503 NFTA_LOG_SNAPLEN, 504 NFTA_LOG_QTHRESHOLD, 505 NFTA_LOG_LEVEL, 506 NFTA_LOG_FLAGS, 507 __NFTA_LOG_MAX 508}; 509#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) 510enum nft_queue_attributes { 511 NFTA_QUEUE_UNSPEC, 512 NFTA_QUEUE_NUM, 513 NFTA_QUEUE_TOTAL, 514 NFTA_QUEUE_FLAGS, 515 NFTA_QUEUE_SREG_QNUM, 516 __NFTA_QUEUE_MAX 517}; 518#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1) 519#define NFT_QUEUE_FLAG_BYPASS 0x01 520#define NFT_QUEUE_FLAG_CPU_FANOUT 0x02 521#define NFT_QUEUE_FLAG_MASK 0x03 522enum nft_quota_flags { 523 NFT_QUOTA_F_INV = (1 << 0), 524 NFT_QUOTA_F_DEPLETED = (1 << 1), 525}; 526enum nft_quota_attributes { 527 NFTA_QUOTA_UNSPEC, 528 NFTA_QUOTA_BYTES, 529 NFTA_QUOTA_FLAGS, 530 NFTA_QUOTA_PAD, 531 NFTA_QUOTA_CONSUMED, 532 __NFTA_QUOTA_MAX 533}; 534#define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1) 535enum nft_reject_types { 536 NFT_REJECT_ICMP_UNREACH, 537 NFT_REJECT_TCP_RST, 538 NFT_REJECT_ICMPX_UNREACH, 539}; 540enum nft_reject_inet_code { 541 NFT_REJECT_ICMPX_NO_ROUTE = 0, 542 NFT_REJECT_ICMPX_PORT_UNREACH, 543 NFT_REJECT_ICMPX_HOST_UNREACH, 544 NFT_REJECT_ICMPX_ADMIN_PROHIBITED, 545 __NFT_REJECT_ICMPX_MAX 546}; 547#define NFT_REJECT_ICMPX_MAX (__NFT_REJECT_ICMPX_MAX - 1) 548enum nft_reject_attributes { 549 NFTA_REJECT_UNSPEC, 550 NFTA_REJECT_TYPE, 551 NFTA_REJECT_ICMP_CODE, 552 __NFTA_REJECT_MAX 553}; 554#define NFTA_REJECT_MAX (__NFTA_REJECT_MAX - 1) 555enum nft_nat_types { 556 NFT_NAT_SNAT, 557 NFT_NAT_DNAT, 558}; 559enum nft_nat_attributes { 560 NFTA_NAT_UNSPEC, 561 NFTA_NAT_TYPE, 562 NFTA_NAT_FAMILY, 563 NFTA_NAT_REG_ADDR_MIN, 564 NFTA_NAT_REG_ADDR_MAX, 565 NFTA_NAT_REG_PROTO_MIN, 566 NFTA_NAT_REG_PROTO_MAX, 567 NFTA_NAT_FLAGS, 568 __NFTA_NAT_MAX 569}; 570#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1) 571enum nft_masq_attributes { 572 NFTA_MASQ_UNSPEC, 573 NFTA_MASQ_FLAGS, 574 NFTA_MASQ_REG_PROTO_MIN, 575 NFTA_MASQ_REG_PROTO_MAX, 576 __NFTA_MASQ_MAX 577}; 578#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1) 579enum nft_redir_attributes { 580 NFTA_REDIR_UNSPEC, 581 NFTA_REDIR_REG_PROTO_MIN, 582 NFTA_REDIR_REG_PROTO_MAX, 583 NFTA_REDIR_FLAGS, 584 __NFTA_REDIR_MAX 585}; 586#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1) 587enum nft_dup_attributes { 588 NFTA_DUP_UNSPEC, 589 NFTA_DUP_SREG_ADDR, 590 NFTA_DUP_SREG_DEV, 591 __NFTA_DUP_MAX 592}; 593#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1) 594enum nft_fwd_attributes { 595 NFTA_FWD_UNSPEC, 596 NFTA_FWD_SREG_DEV, 597 __NFTA_FWD_MAX 598}; 599#define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1) 600enum nft_objref_attributes { 601 NFTA_OBJREF_UNSPEC, 602 NFTA_OBJREF_IMM_TYPE, 603 NFTA_OBJREF_IMM_NAME, 604 NFTA_OBJREF_SET_SREG, 605 NFTA_OBJREF_SET_NAME, 606 NFTA_OBJREF_SET_ID, 607 __NFTA_OBJREF_MAX 608}; 609#define NFTA_OBJREF_MAX (__NFTA_OBJREF_MAX - 1) 610enum nft_gen_attributes { 611 NFTA_GEN_UNSPEC, 612 NFTA_GEN_ID, 613 __NFTA_GEN_MAX 614}; 615#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1) 616enum nft_fib_attributes { 617 NFTA_FIB_UNSPEC, 618 NFTA_FIB_DREG, 619 NFTA_FIB_RESULT, 620 NFTA_FIB_FLAGS, 621 __NFTA_FIB_MAX 622}; 623#define NFTA_FIB_MAX (__NFTA_FIB_MAX - 1) 624enum nft_fib_result { 625 NFT_FIB_RESULT_UNSPEC, 626 NFT_FIB_RESULT_OIF, 627 NFT_FIB_RESULT_OIFNAME, 628 NFT_FIB_RESULT_ADDRTYPE, 629 __NFT_FIB_RESULT_MAX 630}; 631#define NFT_FIB_RESULT_MAX (__NFT_FIB_RESULT_MAX - 1) 632enum nft_fib_flags { 633 NFTA_FIB_F_SADDR = 1 << 0, 634 NFTA_FIB_F_DADDR = 1 << 1, 635 NFTA_FIB_F_MARK = 1 << 2, 636 NFTA_FIB_F_IIF = 1 << 3, 637 NFTA_FIB_F_OIF = 1 << 4, 638 NFTA_FIB_F_PRESENT = 1 << 5, 639}; 640enum nft_ct_helper_attributes { 641 NFTA_CT_HELPER_UNSPEC, 642 NFTA_CT_HELPER_NAME, 643 NFTA_CT_HELPER_L3PROTO, 644 NFTA_CT_HELPER_L4PROTO, 645 __NFTA_CT_HELPER_MAX, 646}; 647#define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1) 648#define NFT_OBJECT_UNSPEC 0 649#define NFT_OBJECT_COUNTER 1 650#define NFT_OBJECT_QUOTA 2 651#define NFT_OBJECT_CT_HELPER 3 652#define __NFT_OBJECT_MAX 4 653#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) 654enum nft_object_attributes { 655 NFTA_OBJ_UNSPEC, 656 NFTA_OBJ_TABLE, 657 NFTA_OBJ_NAME, 658 NFTA_OBJ_TYPE, 659 NFTA_OBJ_DATA, 660 NFTA_OBJ_USE, 661 __NFTA_OBJ_MAX 662}; 663#define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1) 664enum nft_trace_attributes { 665 NFTA_TRACE_UNSPEC, 666 NFTA_TRACE_TABLE, 667 NFTA_TRACE_CHAIN, 668 NFTA_TRACE_RULE_HANDLE, 669 NFTA_TRACE_TYPE, 670 NFTA_TRACE_VERDICT, 671 NFTA_TRACE_ID, 672 NFTA_TRACE_LL_HEADER, 673 NFTA_TRACE_NETWORK_HEADER, 674 NFTA_TRACE_TRANSPORT_HEADER, 675 NFTA_TRACE_IIF, 676 NFTA_TRACE_IIFTYPE, 677 NFTA_TRACE_OIF, 678 NFTA_TRACE_OIFTYPE, 679 NFTA_TRACE_MARK, 680 NFTA_TRACE_NFPROTO, 681 NFTA_TRACE_POLICY, 682 NFTA_TRACE_PAD, 683 __NFTA_TRACE_MAX 684}; 685#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1) 686enum nft_trace_types { 687 NFT_TRACETYPE_UNSPEC, 688 NFT_TRACETYPE_POLICY, 689 NFT_TRACETYPE_RETURN, 690 NFT_TRACETYPE_RULE, 691 __NFT_TRACETYPE_MAX 692}; 693#define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1) 694enum nft_ng_attributes { 695 NFTA_NG_UNSPEC, 696 NFTA_NG_DREG, 697 NFTA_NG_MODULUS, 698 NFTA_NG_TYPE, 699 NFTA_NG_OFFSET, 700 __NFTA_NG_MAX 701}; 702#define NFTA_NG_MAX (__NFTA_NG_MAX - 1) 703enum nft_ng_types { 704 NFT_NG_INCREMENTAL, 705 NFT_NG_RANDOM, 706 __NFT_NG_MAX 707}; 708#define NFT_NG_MAX (__NFT_NG_MAX - 1) 709#endif 710