]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - include/uapi/linux/netfilter/nf_nat.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[mirror_ubuntu-bionic-kernel.git] / include / uapi / linux / netfilter / nf_nat.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _NETFILTER_NF_NAT_H
3 #define _NETFILTER_NF_NAT_H
4
5 #include <linux/netfilter.h>
6 #include <linux/netfilter/nf_conntrack_tuple_common.h>
7
8 #define NF_NAT_RANGE_MAP_IPS (1 << 0)
9 #define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1)
10 #define NF_NAT_RANGE_PROTO_RANDOM (1 << 2)
11 #define NF_NAT_RANGE_PERSISTENT (1 << 3)
12 #define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4)
13
14 #define NF_NAT_RANGE_PROTO_RANDOM_ALL \
15 (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
16
17 #define NF_NAT_RANGE_MASK \
18 (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \
19 NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \
20 NF_NAT_RANGE_PROTO_RANDOM_FULLY)
21
22 struct nf_nat_ipv4_range {
23 unsigned int flags;
24 __be32 min_ip;
25 __be32 max_ip;
26 union nf_conntrack_man_proto min;
27 union nf_conntrack_man_proto max;
28 };
29
30 struct nf_nat_ipv4_multi_range_compat {
31 unsigned int rangesize;
32 struct nf_nat_ipv4_range range[1];
33 };
34
35 struct nf_nat_range {
36 unsigned int flags;
37 union nf_inet_addr min_addr;
38 union nf_inet_addr max_addr;
39 union nf_conntrack_man_proto min_proto;
40 union nf_conntrack_man_proto max_proto;
41 };
42
43 #endif /* _NETFILTER_NF_NAT_H */