blob: 186c54138f358261f66aee9a86ec9d365e0c33ad [file] [log] [blame]
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -08001#ifndef _NF_NAT_CORE_H
2#define _NF_NAT_CORE_H
3#include <linux/list.h>
4#include <net/netfilter/nf_conntrack.h>
Yasuyuki Kozakai4ba88772007-07-07 22:22:33 -07005#include <net/netfilter/nf_nat.h>
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -08006
7/* This header used to share core functionality between the standalone
8 NAT module, and the compatibility layer's use of NAT for masquerading. */
9
Joe Perches4e77be42013-09-23 11:37:48 -070010unsigned int nf_nat_packet(struct nf_conn *ct, enum ip_conntrack_info ctinfo,
11 unsigned int hooknum, struct sk_buff *skb);
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -080012
Eric W. Biedermanc7af6482015-09-18 14:33:07 -050013int nf_xfrm_me_harder(struct net *net, struct sk_buff *skb, unsigned int family);
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -080014
15static inline int nf_nat_initialized(struct nf_conn *ct,
16 enum nf_nat_manip_type manip)
17{
Patrick McHardycbc9f2f2011-12-23 13:59:49 +010018 if (manip == NF_NAT_MANIP_SRC)
Changli Gaoa7c2f4d2011-01-18 15:02:48 +010019 return ct->status & IPS_SRC_NAT_DONE;
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -080020 else
Changli Gaoa7c2f4d2011-01-18 15:02:48 +010021 return ct->status & IPS_DST_NAT_DONE;
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -080022}
Pablo Neira Ayusoe6a7d3c2008-10-14 11:58:31 -070023
24struct nlattr;
25
26extern int
27(*nfnetlink_parse_nat_setup_hook)(struct nf_conn *ct,
28 enum nf_nat_manip_type manip,
Patrick McHardy39938322009-08-25 16:07:58 +020029 const struct nlattr *attr);
Pablo Neira Ayusoe6a7d3c2008-10-14 11:58:31 -070030
Jozsef Kadlecsik5b1158e2006-12-02 22:07:13 -080031#endif /* _NF_NAT_CORE_H */