1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
2 | #ifndef _NF_CONNTRACK_TUPLE_COMMON_H |
3 | #define _NF_CONNTRACK_TUPLE_COMMON_H |
4 | |
5 | #include <linux/types.h> |
6 | #ifndef __KERNEL__ |
7 | #include <linux/netfilter.h> |
8 | #endif |
9 | #include <linux/netfilter/nf_conntrack_common.h> /* IP_CT_IS_REPLY */ |
10 | |
11 | enum ip_conntrack_dir { |
12 | IP_CT_DIR_ORIGINAL, |
13 | IP_CT_DIR_REPLY, |
14 | IP_CT_DIR_MAX |
15 | }; |
16 | |
17 | /* The protocol-specific manipulable parts of the tuple: always in |
18 | * network order |
19 | */ |
20 | union nf_conntrack_man_proto { |
21 | /* Add other protocols here. */ |
22 | __be16 all; |
23 | |
24 | struct { |
25 | __be16 port; |
26 | } tcp; |
27 | struct { |
28 | __be16 port; |
29 | } udp; |
30 | struct { |
31 | __be16 id; |
32 | } icmp; |
33 | struct { |
34 | __be16 port; |
35 | } dccp; |
36 | struct { |
37 | __be16 port; |
38 | } sctp; |
39 | struct { |
40 | __be16 key; /* GRE key is 32bit, PPtP only uses 16bit */ |
41 | } gre; |
42 | }; |
43 | |
44 | #define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL) |
45 | |
46 | #endif /* _NF_CONNTRACK_TUPLE_COMMON_H */ |
47 | |