140d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
240d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy#define _NF_CONNTRACK_TUPLE_COMMON_H
340d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy
4dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardtenum ip_conntrack_dir {
540d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy	IP_CT_DIR_ORIGINAL,
640d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy	IP_CT_DIR_REPLY,
740d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy	IP_CT_DIR_MAX
840d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy};
940d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy
10e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy/* The protocol-specific manipulable parts of the tuple: always in
11e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy * network order
12e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy */
13e62f426c7ead7c0025d15860df97426db6509942Patrick McHardyunion nf_conntrack_man_proto {
14e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	/* Add other protocols here. */
15e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	__be16 all;
16e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
17e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct {
18e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy		__be16 port;
19e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	} tcp;
20e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct {
21e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy		__be16 port;
22e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	} udp;
23e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct {
24e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy		__be16 id;
25e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	} icmp;
26e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct {
27e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy		__be16 port;
28e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	} dccp;
29e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct {
30e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy		__be16 port;
31e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	} sctp;
32e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct {
33e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy		__be16 key;	/* GRE key is 32bit, PPtP only uses 16bit */
34e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	} gre;
35e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy};
36e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
3740d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
3840d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy
3940d54756cd8a2705e22b36f7aef03bb2c472a10bPatrick McHardy#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */
40