1 #ifndef _NF_NAT_HELPER_H
2 #define _NF_NAT_HELPER_H
3 /* NAT protocol helper routines. */
5 #include <net/netfilter/nf_conntrack.h>
9 /* These return true or false. */
10 extern int __nf_nat_mangle_tcp_packet(struct sk_buff
*skb
,
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
);
18 static inline int nf_nat_mangle_tcp_packet(struct sk_buff
*skb
,
20 enum ip_conntrack_info ctinfo
,
21 unsigned int match_offset
,
22 unsigned int match_len
,
23 const char *rep_buffer
,
26 return __nf_nat_mangle_tcp_packet(skb
, ct
, ctinfo
,
27 match_offset
, match_len
,
28 rep_buffer
, rep_len
, true);
31 extern int nf_nat_mangle_udp_packet(struct sk_buff
*skb
,
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
);
39 extern void nf_nat_set_seq_adjust(struct nf_conn
*ct
,
40 enum ip_conntrack_info ctinfo
,
42 extern int nf_nat_seq_adjust(struct sk_buff
*skb
,
44 enum ip_conntrack_info ctinfo
);
45 extern int (*nf_nat_seq_adjust_hook
)(struct sk_buff
*skb
,
47 enum ip_conntrack_info ctinfo
);
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);
54 extern s16
nf_nat_get_offset(const struct nf_conn
*ct
,
55 enum ip_conntrack_dir dir
,