netfilter: ipset: deduplicate prefixlen maps
authorAaron Conole <aconole@bytheb.org>
Mon, 11 Sep 2017 19:52:39 +0000 (21:52 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 4 Oct 2017 14:19:06 +0000 (16:19 +0200)
The prefixlen maps used here are identical, and have been since
introduction.  It seems to make sense to use a single large map,
that the preprocessor will fill appropriately.

Signed-off-by: Aaron Conole <aconole@bytheb.org>
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/ipset/pfxlen.c

index 1c8a42c1056c286da311a271e403574c873fa34c..d5be9c25fad602d15d7fb685c53b0225cabd5a32 100644 (file)
@@ -3,6 +3,141 @@
 
 /* Prefixlen maps for fast conversions, by Jan Engelhardt. */
 
+#ifdef E
+#undef E
+#endif
+
+#define PREFIXES_MAP                                           \
+       E(0x00000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0x80000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xC0000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xE0000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xF0000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xF8000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFC000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFE000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFF000000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFF800000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFC00000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFE00000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFF00000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFF80000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFC0000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFE0000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFF0000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFF8000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFC000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFE000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFF000, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFF800, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFC00, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFE00, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFF00, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFF80, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFC0, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFE0, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFF0, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFF8, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFC, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0x80000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xC0000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xE0000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xF0000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xF8000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFC000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFE000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFF000000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFF800000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFC00000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFE00000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFF00000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFF80000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFC0000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFE0000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFF0000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFF8000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFC000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFE000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFF000, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFF800, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFC00, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFE00, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFF00, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFF80, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFC0, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFE0, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFF0, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFF8, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFC, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFE, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0x80000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE),      \
+       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF),
+
 #define E(a, b, c, d) \
        {.ip6 = { \
                htonl(a), htonl(b), \
  * just use prefixlen_netmask_map[prefixlength].ip.
  */
 const union nf_inet_addr ip_set_netmask_map[] = {
-       E(0x00000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0x80000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xC0000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xE0000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xF0000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xF8000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFC000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFE000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFF000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFF800000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFC00000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFE00000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFF00000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFF80000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFC0000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFE0000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFF0000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFF8000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFC000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFE000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFF000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFF800, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFC00, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFE00, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFF00, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFF80, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFC0, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFE0, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFF0, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFF8, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFC, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0x80000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xC0000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xE0000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xF0000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xF8000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFC000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFE000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFF000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFF800000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFC00000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFE00000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFF00000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFF80000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFC0000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFE0000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFF0000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFF8000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFC000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFE000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFF000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFF800, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFC00, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFE00, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFF00, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFF80, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFC0, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFE0, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFF0, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFF8, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFC, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFE, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0x80000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF),
+       PREFIXES_MAP
 };
 EXPORT_SYMBOL_GPL(ip_set_netmask_map);
 
@@ -155,135 +162,7 @@ EXPORT_SYMBOL_GPL(ip_set_netmask_map);
  * just use prefixlen_hostmask_map[prefixlength].ip.
  */
 const union nf_inet_addr ip_set_hostmask_map[] = {
-       E(0x00000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0x80000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xC0000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xE0000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xF0000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xF8000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFC000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFE000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFF000000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFF800000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFC00000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFE00000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFF00000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFF80000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFC0000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFE0000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFF0000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFF8000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFC000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFE000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFF000, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFF800, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFC00, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFE00, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFF00, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFF80, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFC0, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFE0, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFF0, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFF8, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFC, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0x80000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xC0000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xE0000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xF0000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xF8000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFC000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFE000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFF000000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFF800000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFC00000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFE00000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFF00000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFF80000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFC0000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFE0000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFF0000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFF8000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFC000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFE000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFF000, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFF800, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFC00, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFE00, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFF00, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFF80, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFC0, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFE0, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFF0, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFF8, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFC, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFE, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0x80000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE),
-       E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF),
+       PREFIXES_MAP
 };
 EXPORT_SYMBOL_GPL(ip_set_hostmask_map);