File Index
Files and directories
Sign in
FILE

nf_nat.h

File preview with syntax highlighting.

linux-6.19.14/include/uapi/linux/netfilter/nf_nat.h C
 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#define NF_NAT_RANGE_PROTO_OFFSET		(1 << 5)
14#define NF_NAT_RANGE_NETMAP			(1 << 6)
15
16#define NF_NAT_RANGE_PROTO_RANDOM_ALL		\
17	(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
18
19#define NF_NAT_RANGE_MASK					\
20	(NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED |	\
21	 NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT |	\
22	 NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \
23	 NF_NAT_RANGE_NETMAP)
24
25struct nf_nat_ipv4_range {
26	unsigned int			flags;
27	__be32				min_ip;
28	__be32				max_ip;
29	union nf_conntrack_man_proto	min;
30	union nf_conntrack_man_proto	max;
31};
32
33struct nf_nat_ipv4_multi_range_compat {
34	unsigned int			rangesize;
35	struct nf_nat_ipv4_range	range[1];
36};
37
38struct nf_nat_range {
39	unsigned int			flags;
40	union nf_inet_addr		min_addr;
41	union nf_inet_addr		max_addr;
42	union nf_conntrack_man_proto	min_proto;
43	union nf_conntrack_man_proto	max_proto;
44};
45
46struct nf_nat_range2 {
47	unsigned int			flags;
48	union nf_inet_addr		min_addr;
49	union nf_inet_addr		max_addr;
50	union nf_conntrack_man_proto	min_proto;
51	union nf_conntrack_man_proto	max_proto;
52	union nf_conntrack_man_proto	base_proto;
53};
54
55#endif /* _NETFILTER_NF_NAT_H */
~/ Read-only file preview.