1e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy#ifndef _NETFILTER_NF_NAT_H
2e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy#define _NETFILTER_NF_NAT_H
3e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
4e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy#include <linux/netfilter.h>
5e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy#include <linux/netfilter/nf_conntrack_tuple_common.h>
6e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
73cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann#define NF_NAT_RANGE_MAP_IPS			(1 << 0)
83cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann#define NF_NAT_RANGE_PROTO_SPECIFIED		(1 << 1)
93cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann#define NF_NAT_RANGE_PROTO_RANDOM		(1 << 2)
103cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann#define NF_NAT_RANGE_PERSISTENT			(1 << 3)
113cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann#define NF_NAT_RANGE_PROTO_RANDOM_FULLY		(1 << 4)
123cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann
133cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann#define NF_NAT_RANGE_PROTO_RANDOM_ALL		\
143cefc136d13f426fd68808ddfd39ada0c90f23dbDaniel Borkmann	(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
15e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
16e62f426c7ead7c0025d15860df97426db6509942Patrick McHardystruct nf_nat_ipv4_range {
17e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	unsigned int			flags;
18e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	__be32				min_ip;
19e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	__be32				max_ip;
20e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	union nf_conntrack_man_proto	min;
21e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	union nf_conntrack_man_proto	max;
22e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy};
23e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
24e62f426c7ead7c0025d15860df97426db6509942Patrick McHardystruct nf_nat_ipv4_multi_range_compat {
25e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	unsigned int			rangesize;
26e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy	struct nf_nat_ipv4_range	range[1];
27e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy};
28e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy
290e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardystruct nf_nat_range {
300e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy	unsigned int			flags;
310e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy	union nf_inet_addr		min_addr;
320e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy	union nf_inet_addr		max_addr;
330e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy	union nf_conntrack_man_proto	min_proto;
340e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy	union nf_conntrack_man_proto	max_proto;
350e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy};
360e37f00980eb6b4fc2c5f979cc5fa83c0fff9d30Patrick McHardy
37e62f426c7ead7c0025d15860df97426db6509942Patrick McHardy#endif /* _NETFILTER_NF_NAT_H */
38