1 #ifndef __IP_SET_IPMAP_H
2 #define __IP_SET_IPMAP_H
4 #include <linux/netfilter_ipv4/ip_set.h>
6 #define SETTYPE_NAME "ipmap"
7 #define MAX_RANGE 0x0000FFFF
10 void *members; /* the ipmap proper */
11 ip_set_ip_t first_ip; /* host byte order, included in range */
12 ip_set_ip_t last_ip; /* host byte order, included in range */
13 ip_set_ip_t netmask; /* subnet netmask */
14 ip_set_ip_t sizeid; /* size of set in IPs */
15 ip_set_ip_t hosts; /* number of hosts in a subnet */
18 struct ip_set_req_ipmap_create {
24 struct ip_set_req_ipmap {
29 mask_to_bits(ip_set_ip_t mask)
31 unsigned int bits = 32;
34 if (mask == 0xFFFFFFFF)
37 maskaddr = 0xFFFFFFFE;
38 while (--bits >= 0 && maskaddr != mask)
45 range_to_mask(ip_set_ip_t from, ip_set_ip_t to, unsigned int *bits)
47 ip_set_ip_t mask = 0xFFFFFFFE;
50 while (--(*bits) >= 0 && mask && (to & mask) != from)
56 #endif /* __IP_SET_IPMAP_H */