1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_NF_CONNTRACK_COMMON_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_NF_CONNTRACK_COMMON_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum ip_conntrack_info {
22d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IP_CT_ESTABLISHED,
23d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IP_CT_RELATED,
24d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IP_CT_NEW,
25d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IP_CT_IS_REPLY,
26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY,
27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY,
28106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  IP_CT_NUMBER,
29106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  IP_CT_NEW_REPLY = IP_CT_NUMBER,
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
3138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NF_CT_STATE_INVALID_BIT (1 << 0)
3238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NF_CT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
33934ec9495505d234b2c2fa284470c2f44aae9de9Christopher Ferris#define NF_CT_STATE_UNTRACKED_BIT (1 << 6)
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum ip_conntrack_status {
35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_EXPECTED_BIT = 0,
36d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_EXPECTED = (1 << IPS_EXPECTED_BIT),
37d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SEEN_REPLY_BIT = 1,
38d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT),
39d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_ASSURED_BIT = 2,
40d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_ASSURED = (1 << IPS_ASSURED_BIT),
41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_CONFIRMED_BIT = 3,
42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT),
43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SRC_NAT_BIT = 4,
44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT),
45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_DST_NAT_BIT = 5,
46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_DST_NAT = (1 << IPS_DST_NAT_BIT),
47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT),
48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SEQ_ADJUST_BIT = 6,
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT),
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SRC_NAT_DONE_BIT = 7,
51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT),
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_DST_NAT_DONE_BIT = 8,
53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT),
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE),
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_DYING_BIT = 9,
56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_DYING = (1 << IPS_DYING_BIT),
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_FIXED_TIMEOUT_BIT = 10,
58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_TEMPLATE_BIT = 11,
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT),
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_UNTRACKED_BIT = 12,
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_HELPER_BIT = 13,
64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPS_HELPER = (1 << IPS_HELPER_BIT),
65525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE),
66525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris  __IPS_MAX_BIT = 14,
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum ip_conntrack_events {
69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_NEW,
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_RELATED,
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_DESTROY,
72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_REPLY,
73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_ASSURED,
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_PROTOINFO,
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_HELPER,
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_MARK,
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_SEQADJ,
78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_NATSEQADJ = IPCT_SEQADJ,
79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_SECMARK,
80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPCT_LABEL,
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum ip_conntrack_expect_events {
83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPEXP_NEW,
84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  IPEXP_DESTROY,
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NF_CT_EXPECT_PERMANENT 0x1
87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NF_CT_EXPECT_INACTIVE 0x2
88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NF_CT_EXPECT_USERSPACE 0x4
89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
90