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