blob: a9c3834abdd4189de5d9f1473e165cee12792c1e [file] [log] [blame]
Ben Cheng30692c62013-10-15 18:26:18 -07001#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
2#define _NF_CONNTRACK_TUPLE_COMMON_H
3
Christopher Ferrisccfaccd2016-08-24 12:11:31 -07004#include <linux/types.h>
5#include <linux/netfilter.h>
6
Ben Cheng30692c62013-10-15 18:26:18 -07007enum ip_conntrack_dir {
8 IP_CT_DIR_ORIGINAL,
9 IP_CT_DIR_REPLY,
10 IP_CT_DIR_MAX
11};
12
13/* The protocol-specific manipulable parts of the tuple: always in
14 * network order
15 */
16union nf_conntrack_man_proto {
17 /* Add other protocols here. */
18 __be16 all;
19
20 struct {
21 __be16 port;
22 } tcp;
23 struct {
24 __be16 port;
25 } udp;
26 struct {
27 __be16 id;
28 } icmp;
29 struct {
30 __be16 port;
31 } dccp;
32 struct {
33 __be16 port;
34 } sctp;
35 struct {
36 __be16 key; /* GRE key is 32bit, PPtP only uses 16bit */
37 } gre;
38};
39
40#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
41
42#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */