xref: /linux/include/uapi/linux/netfilter/nf_conntrack_tcp.h (revision a13d7201d7deedcbb6ac6efa94a1a7d34d3d79ec)
1 #ifndef _UAPI_NF_CONNTRACK_TCP_H
2 #define _UAPI_NF_CONNTRACK_TCP_H
3 /* TCP tracking. */
4 
5 #include <linux/types.h>
6 
7 /* This is exposed to userspace (ctnetlink) */
8 enum tcp_conntrack {
9 	TCP_CONNTRACK_NONE,
10 	TCP_CONNTRACK_SYN_SENT,
11 	TCP_CONNTRACK_SYN_RECV,
12 	TCP_CONNTRACK_ESTABLISHED,
13 	TCP_CONNTRACK_FIN_WAIT,
14 	TCP_CONNTRACK_CLOSE_WAIT,
15 	TCP_CONNTRACK_LAST_ACK,
16 	TCP_CONNTRACK_TIME_WAIT,
17 	TCP_CONNTRACK_CLOSE,
18 	TCP_CONNTRACK_LISTEN,	/* obsolete */
19 #define TCP_CONNTRACK_SYN_SENT2	TCP_CONNTRACK_LISTEN
20 	TCP_CONNTRACK_MAX,
21 	TCP_CONNTRACK_IGNORE,
22 	TCP_CONNTRACK_RETRANS,
23 	TCP_CONNTRACK_UNACK,
24 	TCP_CONNTRACK_TIMEOUT_MAX
25 };
26 
27 /* Window scaling is advertised by the sender */
28 #define IP_CT_TCP_FLAG_WINDOW_SCALE		0x01
29 
30 /* SACK is permitted by the sender */
31 #define IP_CT_TCP_FLAG_SACK_PERM		0x02
32 
33 /* This sender sent FIN first */
34 #define IP_CT_TCP_FLAG_CLOSE_INIT		0x04
35 
36 /* Be liberal in window checking */
37 #define IP_CT_TCP_FLAG_BE_LIBERAL		0x08
38 
39 /* Has unacknowledged data */
40 #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED	0x10
41 
42 /* The field td_maxack has been set */
43 #define IP_CT_TCP_FLAG_MAXACK_SET		0x20
44 
45 /* Marks possibility for expected RFC5961 challenge ACK */
46 #define IP_CT_EXP_CHALLENGE_ACK 		0x40
47 
48 struct nf_ct_tcp_flags {
49 	__u8 flags;
50 	__u8 mask;
51 };
52 
53 
54 #endif /* _UAPI_NF_CONNTRACK_TCP_H */
55