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 7struct sk_buff; 8 9/* These return true or false. */ 10extern 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 18static 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 31extern 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 39extern void nf_nat_set_seq_adjust(struct nf_conn *ct, 40 enum ip_conntrack_info ctinfo, 41 __be32 seq, s16 off); 42extern int nf_nat_seq_adjust(struct sk_buff *skb, 43 struct nf_conn *ct, 44 enum ip_conntrack_info ctinfo); 45extern 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. */ 51extern void nf_nat_follow_master(struct nf_conn *ct, 52 struct nf_conntrack_expect *this); 53 54extern s16 nf_nat_get_offset(const struct nf_conn *ct, 55 enum ip_conntrack_dir dir, 56 u32 seq); 57#endif 58