1cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy#ifndef _NETFILTER_NF_NAT_H 2cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy#define _NETFILTER_NF_NAT_H 3cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy 4cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy#include <linux/netfilter.h> 5cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy#include <linux/netfilter/nf_conntrack_tuple_common.h> 6cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy 734ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann#define NF_NAT_RANGE_MAP_IPS (1 << 0) 834ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) 934ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) 1034ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann#define NF_NAT_RANGE_PERSISTENT (1 << 3) 1134ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) 1234ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann 1334ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ 1434ce324019e76f6d93768d68343a0e78f464d754Daniel Borkmann (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) 15cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy 16e42eff8a32f8b7bde88ea3c5a56391407cbe84f3Arturo Borrero#define NF_NAT_RANGE_MASK \ 17e42eff8a32f8b7bde88ea3c5a56391407cbe84f3Arturo Borrero (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ 18e42eff8a32f8b7bde88ea3c5a56391407cbe84f3Arturo Borrero NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ 19e42eff8a32f8b7bde88ea3c5a56391407cbe84f3Arturo Borrero NF_NAT_RANGE_PROTO_RANDOM_FULLY) 20e42eff8a32f8b7bde88ea3c5a56391407cbe84f3Arturo Borrero 21cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardystruct nf_nat_ipv4_range { 22cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy unsigned int flags; 23cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy __be32 min_ip; 24cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy __be32 max_ip; 25cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy union nf_conntrack_man_proto min; 26cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy union nf_conntrack_man_proto max; 27cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy}; 28cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy 29cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardystruct nf_nat_ipv4_multi_range_compat { 30cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy unsigned int rangesize; 31cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy struct nf_nat_ipv4_range range[1]; 32cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy}; 33cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy 34c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardystruct nf_nat_range { 35c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy unsigned int flags; 36c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy union nf_inet_addr min_addr; 37c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy union nf_inet_addr max_addr; 38c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy union nf_conntrack_man_proto min_proto; 39c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy union nf_conntrack_man_proto max_proto; 40c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy}; 41c7232c9979cba684c50b64c513c4a83c9aa70563Patrick McHardy 42cbc9f2f4fcd70d5a627558ca9a881fa9391abf69Patrick McHardy#endif /* _NETFILTER_NF_NAT_H */ 43