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 _UAPI_NF_CONNTRACK_COMMON_H 20 #define _UAPI_NF_CONNTRACK_COMMON_H 21 enum ip_conntrack_info { 22 IP_CT_ESTABLISHED, 23 IP_CT_RELATED, 24 IP_CT_NEW, 25 IP_CT_IS_REPLY, 26 IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY, 27 IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY, 28 IP_CT_NUMBER, 29 IP_CT_NEW_REPLY = IP_CT_NUMBER, 30 }; 31 #define NF_CT_STATE_INVALID_BIT (1 << 0) 32 #define NF_CT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1)) 33 #define NF_CT_STATE_UNTRACKED_BIT (1 << 6) 34 enum ip_conntrack_status { 35 IPS_EXPECTED_BIT = 0, 36 IPS_EXPECTED = (1 << IPS_EXPECTED_BIT), 37 IPS_SEEN_REPLY_BIT = 1, 38 IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT), 39 IPS_ASSURED_BIT = 2, 40 IPS_ASSURED = (1 << IPS_ASSURED_BIT), 41 IPS_CONFIRMED_BIT = 3, 42 IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT), 43 IPS_SRC_NAT_BIT = 4, 44 IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT), 45 IPS_DST_NAT_BIT = 5, 46 IPS_DST_NAT = (1 << IPS_DST_NAT_BIT), 47 IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT), 48 IPS_SEQ_ADJUST_BIT = 6, 49 IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT), 50 IPS_SRC_NAT_DONE_BIT = 7, 51 IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT), 52 IPS_DST_NAT_DONE_BIT = 8, 53 IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT), 54 IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE), 55 IPS_DYING_BIT = 9, 56 IPS_DYING = (1 << IPS_DYING_BIT), 57 IPS_FIXED_TIMEOUT_BIT = 10, 58 IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT), 59 IPS_TEMPLATE_BIT = 11, 60 IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT), 61 IPS_UNTRACKED_BIT = 12, 62 IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT), 63 IPS_HELPER_BIT = 13, 64 IPS_HELPER = (1 << IPS_HELPER_BIT), 65 IPS_OFFLOAD_BIT = 14, 66 IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT), 67 IPS_HW_OFFLOAD_BIT = 15, 68 IPS_HW_OFFLOAD = (1 << IPS_HW_OFFLOAD_BIT), 69 IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED | IPS_OFFLOAD | IPS_HW_OFFLOAD), 70 __IPS_MAX_BIT = 16, 71 }; 72 enum ip_conntrack_events { 73 IPCT_NEW, 74 IPCT_RELATED, 75 IPCT_DESTROY, 76 IPCT_REPLY, 77 IPCT_ASSURED, 78 IPCT_PROTOINFO, 79 IPCT_HELPER, 80 IPCT_MARK, 81 IPCT_SEQADJ, 82 IPCT_NATSEQADJ = IPCT_SEQADJ, 83 IPCT_SECMARK, 84 IPCT_LABEL, 85 IPCT_SYNPROXY, 86 }; 87 enum ip_conntrack_expect_events { 88 IPEXP_NEW, 89 IPEXP_DESTROY, 90 }; 91 #define NF_CT_EXPECT_PERMANENT 0x1 92 #define NF_CT_EXPECT_INACTIVE 0x2 93 #define NF_CT_EXPECT_USERSPACE 0x4 94 #endif 95