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