1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _NF_CONNTRACK_DCCP_H
3 #define _NF_CONNTRACK_DCCP_H
4 
5 /* Exposed to userspace over nfnetlink */
6 enum ct_dccp_states {
7 	CT_DCCP_NONE,
8 	CT_DCCP_REQUEST,
9 	CT_DCCP_RESPOND,
10 	CT_DCCP_PARTOPEN,
11 	CT_DCCP_OPEN,
12 	CT_DCCP_CLOSEREQ,
13 	CT_DCCP_CLOSING,
14 	CT_DCCP_TIMEWAIT,
15 	CT_DCCP_IGNORE,
16 	CT_DCCP_INVALID,
17 	__CT_DCCP_MAX
18 };
19 #define CT_DCCP_MAX		(__CT_DCCP_MAX - 1)
20 
21 enum ct_dccp_roles {
22 	CT_DCCP_ROLE_CLIENT,
23 	CT_DCCP_ROLE_SERVER,
24 	__CT_DCCP_ROLE_MAX
25 };
26 #define CT_DCCP_ROLE_MAX	(__CT_DCCP_ROLE_MAX - 1)
27 
28 #ifdef __KERNEL__
29 #include <linux/netfilter/nf_conntrack_tuple_common.h>
30 
31 struct nf_ct_dccp {
32 	u_int8_t	role[IP_CT_DIR_MAX];
33 	u_int8_t	state;
34 	u_int8_t	last_pkt;
35 	u_int8_t	last_dir;
36 	u_int64_t	handshake_seq;
37 };
38 
39 #endif /* __KERNEL__ */
40 
41 #endif /* _NF_CONNTRACK_DCCP_H */
42