1 #ifndef _NF_NAT_HELPER_H 2 #define _NF_NAT_HELPER_H 3 /* NAT protocol helper routines. */ 4 5 #include <net/netfilter/nf_conntrack.h> 6 7 struct sk_buff; 8 9 /* These return true or false. */ 10 extern int __nf_nat_mangle_tcp_packet(struct sk_buff *skb, 11 struct nf_conn *ct, 12 enum ip_conntrack_info ctinfo, 13 unsigned int match_offset, 14 unsigned int match_len, 15 const char *rep_buffer, 16 unsigned int rep_len, bool adjust); 17 18 static inline int nf_nat_mangle_tcp_packet(struct sk_buff *skb, 19 struct nf_conn *ct, 20 enum ip_conntrack_info ctinfo, 21 unsigned int match_offset, 22 unsigned int match_len, 23 const char *rep_buffer, 24 unsigned int rep_len) 25 { 26 return __nf_nat_mangle_tcp_packet(skb, ct, ctinfo, 27 match_offset, match_len, 28 rep_buffer, rep_len, true); 29 } 30 31 extern int nf_nat_mangle_udp_packet(struct sk_buff *skb, 32 struct nf_conn *ct, 33 enum ip_conntrack_info ctinfo, 34 unsigned int match_offset, 35 unsigned int match_len, 36 const char *rep_buffer, 37 unsigned int rep_len); 38 39 extern void nf_nat_set_seq_adjust(struct nf_conn *ct, 40 enum ip_conntrack_info ctinfo, 41 __be32 seq, s16 off); 42 extern int nf_nat_seq_adjust(struct sk_buff *skb, 43 struct nf_conn *ct, 44 enum ip_conntrack_info ctinfo); 45 extern int (*nf_nat_seq_adjust_hook)(struct sk_buff *skb, 46 struct nf_conn *ct, 47 enum ip_conntrack_info ctinfo); 48 49 /* Setup NAT on this expected conntrack so it follows master, but goes 50 * to port ct->master->saved_proto. */ 51 extern void nf_nat_follow_master(struct nf_conn *ct, 52 struct nf_conntrack_expect *this); 53 54 extern s16 nf_nat_get_offset(const struct nf_conn *ct, 55 enum ip_conntrack_dir dir, 56 u32 seq); 57 #endif 58