130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _NETFILTER_NF_NAT_H
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _NETFILTER_NF_NAT_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/netfilter.h>
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/netfilter/nf_conntrack_tuple_common.h>
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define NF_NAT_RANGE_MAP_IPS			(1 << 0)
8e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define NF_NAT_RANGE_PROTO_SPECIFIED		(1 << 1)
9e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define NF_NAT_RANGE_PROTO_RANDOM		(1 << 2)
10e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define NF_NAT_RANGE_PERSISTENT			(1 << 3)
11e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define NF_NAT_RANGE_PROTO_RANDOM_FULLY		(1 << 4)
12e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl
13e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define NF_NAT_RANGE_PROTO_RANDOM_ALL		\
14e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl	(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1630692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nf_nat_ipv4_range {
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned int			flags;
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32				min_ip;
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32				max_ip;
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union nf_conntrack_man_proto	min;
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union nf_conntrack_man_proto	max;
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nf_nat_ipv4_multi_range_compat {
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned int			rangesize;
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct nf_nat_ipv4_range	range[1];
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct nf_nat_range {
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	unsigned int			flags;
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union nf_inet_addr		min_addr;
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union nf_inet_addr		max_addr;
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union nf_conntrack_man_proto	min_proto;
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union nf_conntrack_man_proto	max_proto;
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _NETFILTER_NF_NAT_H */
38