130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _NF_CONNTRACK_TUPLE_COMMON_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
430692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum ip_conntrack_dir {
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IP_CT_DIR_ORIGINAL,
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IP_CT_DIR_REPLY,
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IP_CT_DIR_MAX
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* The protocol-specific manipulable parts of the tuple: always in
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * network order
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
1330692c65c4174412c90e79489e98ab85c1a7412fBen Chengunion nf_conntrack_man_proto {
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	/* Add other protocols here. */
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be16 all;
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct {
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		__be16 port;
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} tcp;
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct {
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		__be16 port;
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} udp;
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct {
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		__be16 id;
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} icmp;
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct {
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		__be16 port;
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} dccp;
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct {
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		__be16 port;
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} sctp;
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct {
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		__be16 key;	/* GRE key is 32bit, PPtP only uses 16bit */
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} gre;
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */
40