1#ifndef _NF_NAT_CORE_H
2#define _NF_NAT_CORE_H
3#include <linux/list.h>
4#include <net/netfilter/nf_conntrack.h>
5
6/* This header used to share core functionality between the standalone
7   NAT module, and the compatibility layer's use of NAT for masquerading. */
8
9extern unsigned int nf_nat_packet(struct nf_conn *ct,
10				  enum ip_conntrack_info ctinfo,
11				  unsigned int hooknum,
12				  struct sk_buff **pskb);
13
14extern int nf_nat_icmp_reply_translation(struct nf_conn *ct,
15					 enum ip_conntrack_info ctinfo,
16					 unsigned int hooknum,
17					 struct sk_buff **pskb);
18
19static inline int nf_nat_initialized(struct nf_conn *ct,
20				     enum nf_nat_manip_type manip)
21{
22	if (manip == IP_NAT_MANIP_SRC)
23		return test_bit(IPS_SRC_NAT_DONE_BIT, &ct->status);
24	else
25		return test_bit(IPS_DST_NAT_DONE_BIT, &ct->status);
26}
27#endif /* _NF_NAT_CORE_H */
28