1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | * INET An implementation of the TCP/IP protocol suite for the LINUX |
4 | * operating system. INET is implemented using the BSD Socket |
5 | * interface as the means of communication with the user level. |
6 | * |
7 | * Definitions for the TCP protocol sk_state field. |
8 | */ |
9 | #ifndef _LINUX_TCP_STATES_H |
10 | #define _LINUX_TCP_STATES_H |
11 | |
12 | enum { |
13 | TCP_ESTABLISHED = 1, |
14 | TCP_SYN_SENT, |
15 | TCP_SYN_RECV, |
16 | TCP_FIN_WAIT1, |
17 | TCP_FIN_WAIT2, |
18 | TCP_TIME_WAIT, |
19 | TCP_CLOSE, |
20 | TCP_CLOSE_WAIT, |
21 | TCP_LAST_ACK, |
22 | TCP_LISTEN, |
23 | TCP_CLOSING, /* Now a valid state */ |
24 | TCP_NEW_SYN_RECV, |
25 | TCP_BOUND_INACTIVE, /* Pseudo-state for inet_diag */ |
26 | |
27 | TCP_MAX_STATES /* Leave at the end! */ |
28 | }; |
29 | |
30 | #define TCP_STATE_MASK 0xF |
31 | |
32 | #define TCP_ACTION_FIN (1 << TCP_CLOSE) |
33 | |
34 | enum { |
35 | TCPF_ESTABLISHED = (1 << TCP_ESTABLISHED), |
36 | TCPF_SYN_SENT = (1 << TCP_SYN_SENT), |
37 | TCPF_SYN_RECV = (1 << TCP_SYN_RECV), |
38 | TCPF_FIN_WAIT1 = (1 << TCP_FIN_WAIT1), |
39 | TCPF_FIN_WAIT2 = (1 << TCP_FIN_WAIT2), |
40 | TCPF_TIME_WAIT = (1 << TCP_TIME_WAIT), |
41 | TCPF_CLOSE = (1 << TCP_CLOSE), |
42 | TCPF_CLOSE_WAIT = (1 << TCP_CLOSE_WAIT), |
43 | TCPF_LAST_ACK = (1 << TCP_LAST_ACK), |
44 | TCPF_LISTEN = (1 << TCP_LISTEN), |
45 | TCPF_CLOSING = (1 << TCP_CLOSING), |
46 | TCPF_NEW_SYN_RECV = (1 << TCP_NEW_SYN_RECV), |
47 | TCPF_BOUND_INACTIVE = (1 << TCP_BOUND_INACTIVE), |
48 | }; |
49 | |
50 | #endif /* _LINUX_TCP_STATES_H */ |
51 | |