1#include <linux/export.h> 2#include <linux/netfilter/ipset/pfxlen.h> 3 4/* 5 * Prefixlen maps for fast conversions, by Jan Engelhardt. 6 */ 7 8#define E(a, b, c, d) \ 9 {.ip6 = { \ 10 htonl(a), htonl(b), \ 11 htonl(c), htonl(d), \ 12 } } 13 14/* 15 * This table works for both IPv4 and IPv6; 16 * just use prefixlen_netmask_map[prefixlength].ip. 17 */ 18const union nf_inet_addr ip_set_netmask_map[] = { 19 E(0x00000000, 0x00000000, 0x00000000, 0x00000000), 20 E(0x80000000, 0x00000000, 0x00000000, 0x00000000), 21 E(0xC0000000, 0x00000000, 0x00000000, 0x00000000), 22 E(0xE0000000, 0x00000000, 0x00000000, 0x00000000), 23 E(0xF0000000, 0x00000000, 0x00000000, 0x00000000), 24 E(0xF8000000, 0x00000000, 0x00000000, 0x00000000), 25 E(0xFC000000, 0x00000000, 0x00000000, 0x00000000), 26 E(0xFE000000, 0x00000000, 0x00000000, 0x00000000), 27 E(0xFF000000, 0x00000000, 0x00000000, 0x00000000), 28 E(0xFF800000, 0x00000000, 0x00000000, 0x00000000), 29 E(0xFFC00000, 0x00000000, 0x00000000, 0x00000000), 30 E(0xFFE00000, 0x00000000, 0x00000000, 0x00000000), 31 E(0xFFF00000, 0x00000000, 0x00000000, 0x00000000), 32 E(0xFFF80000, 0x00000000, 0x00000000, 0x00000000), 33 E(0xFFFC0000, 0x00000000, 0x00000000, 0x00000000), 34 E(0xFFFE0000, 0x00000000, 0x00000000, 0x00000000), 35 E(0xFFFF0000, 0x00000000, 0x00000000, 0x00000000), 36 E(0xFFFF8000, 0x00000000, 0x00000000, 0x00000000), 37 E(0xFFFFC000, 0x00000000, 0x00000000, 0x00000000), 38 E(0xFFFFE000, 0x00000000, 0x00000000, 0x00000000), 39 E(0xFFFFF000, 0x00000000, 0x00000000, 0x00000000), 40 E(0xFFFFF800, 0x00000000, 0x00000000, 0x00000000), 41 E(0xFFFFFC00, 0x00000000, 0x00000000, 0x00000000), 42 E(0xFFFFFE00, 0x00000000, 0x00000000, 0x00000000), 43 E(0xFFFFFF00, 0x00000000, 0x00000000, 0x00000000), 44 E(0xFFFFFF80, 0x00000000, 0x00000000, 0x00000000), 45 E(0xFFFFFFC0, 0x00000000, 0x00000000, 0x00000000), 46 E(0xFFFFFFE0, 0x00000000, 0x00000000, 0x00000000), 47 E(0xFFFFFFF0, 0x00000000, 0x00000000, 0x00000000), 48 E(0xFFFFFFF8, 0x00000000, 0x00000000, 0x00000000), 49 E(0xFFFFFFFC, 0x00000000, 0x00000000, 0x00000000), 50 E(0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000), 51 E(0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000), 52 E(0xFFFFFFFF, 0x80000000, 0x00000000, 0x00000000), 53 E(0xFFFFFFFF, 0xC0000000, 0x00000000, 0x00000000), 54 E(0xFFFFFFFF, 0xE0000000, 0x00000000, 0x00000000), 55 E(0xFFFFFFFF, 0xF0000000, 0x00000000, 0x00000000), 56 E(0xFFFFFFFF, 0xF8000000, 0x00000000, 0x00000000), 57 E(0xFFFFFFFF, 0xFC000000, 0x00000000, 0x00000000), 58 E(0xFFFFFFFF, 0xFE000000, 0x00000000, 0x00000000), 59 E(0xFFFFFFFF, 0xFF000000, 0x00000000, 0x00000000), 60 E(0xFFFFFFFF, 0xFF800000, 0x00000000, 0x00000000), 61 E(0xFFFFFFFF, 0xFFC00000, 0x00000000, 0x00000000), 62 E(0xFFFFFFFF, 0xFFE00000, 0x00000000, 0x00000000), 63 E(0xFFFFFFFF, 0xFFF00000, 0x00000000, 0x00000000), 64 E(0xFFFFFFFF, 0xFFF80000, 0x00000000, 0x00000000), 65 E(0xFFFFFFFF, 0xFFFC0000, 0x00000000, 0x00000000), 66 E(0xFFFFFFFF, 0xFFFE0000, 0x00000000, 0x00000000), 67 E(0xFFFFFFFF, 0xFFFF0000, 0x00000000, 0x00000000), 68 E(0xFFFFFFFF, 0xFFFF8000, 0x00000000, 0x00000000), 69 E(0xFFFFFFFF, 0xFFFFC000, 0x00000000, 0x00000000), 70 E(0xFFFFFFFF, 0xFFFFE000, 0x00000000, 0x00000000), 71 E(0xFFFFFFFF, 0xFFFFF000, 0x00000000, 0x00000000), 72 E(0xFFFFFFFF, 0xFFFFF800, 0x00000000, 0x00000000), 73 E(0xFFFFFFFF, 0xFFFFFC00, 0x00000000, 0x00000000), 74 E(0xFFFFFFFF, 0xFFFFFE00, 0x00000000, 0x00000000), 75 E(0xFFFFFFFF, 0xFFFFFF00, 0x00000000, 0x00000000), 76 E(0xFFFFFFFF, 0xFFFFFF80, 0x00000000, 0x00000000), 77 E(0xFFFFFFFF, 0xFFFFFFC0, 0x00000000, 0x00000000), 78 E(0xFFFFFFFF, 0xFFFFFFE0, 0x00000000, 0x00000000), 79 E(0xFFFFFFFF, 0xFFFFFFF0, 0x00000000, 0x00000000), 80 E(0xFFFFFFFF, 0xFFFFFFF8, 0x00000000, 0x00000000), 81 E(0xFFFFFFFF, 0xFFFFFFFC, 0x00000000, 0x00000000), 82 E(0xFFFFFFFF, 0xFFFFFFFE, 0x00000000, 0x00000000), 83 E(0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000), 84 E(0xFFFFFFFF, 0xFFFFFFFF, 0x80000000, 0x00000000), 85 E(0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000, 0x00000000), 86 E(0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000, 0x00000000), 87 E(0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000, 0x00000000), 88 E(0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000, 0x00000000), 89 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000, 0x00000000), 90 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000, 0x00000000), 91 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000, 0x00000000), 92 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000, 0x00000000), 93 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000, 0x00000000), 94 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000, 0x00000000), 95 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000, 0x00000000), 96 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000, 0x00000000), 97 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000, 0x00000000), 98 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000, 0x00000000), 99 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0x00000000), 100 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000, 0x00000000), 101 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000, 0x00000000), 102 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000, 0x00000000), 103 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000, 0x00000000), 104 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800, 0x00000000), 105 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00, 0x00000000), 106 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00, 0x00000000), 107 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00, 0x00000000), 108 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80, 0x00000000), 109 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0, 0x00000000), 110 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0, 0x00000000), 111 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0, 0x00000000), 112 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8, 0x00000000), 113 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC, 0x00000000), 114 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0x00000000), 115 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000), 116 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000), 117 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000), 118 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000), 119 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000), 120 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000), 121 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000), 122 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000), 123 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000), 124 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000), 125 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000), 126 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000), 127 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000), 128 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000), 129 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000), 130 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000), 131 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000), 132 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000), 133 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000), 134 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000), 135 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000), 136 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800), 137 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00), 138 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00), 139 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00), 140 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80), 141 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0), 142 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0), 143 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0), 144 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8), 145 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC), 146 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE), 147 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF), 148}; 149EXPORT_SYMBOL_GPL(ip_set_netmask_map); 150 151#undef E 152#define E(a, b, c, d) \ 153 {.ip6 = { (__force __be32) a, (__force __be32) b, \ 154 (__force __be32) c, (__force __be32) d, \ 155 } } 156 157/* 158 * This table works for both IPv4 and IPv6; 159 * just use prefixlen_hostmask_map[prefixlength].ip. 160 */ 161const union nf_inet_addr ip_set_hostmask_map[] = { 162 E(0x00000000, 0x00000000, 0x00000000, 0x00000000), 163 E(0x80000000, 0x00000000, 0x00000000, 0x00000000), 164 E(0xC0000000, 0x00000000, 0x00000000, 0x00000000), 165 E(0xE0000000, 0x00000000, 0x00000000, 0x00000000), 166 E(0xF0000000, 0x00000000, 0x00000000, 0x00000000), 167 E(0xF8000000, 0x00000000, 0x00000000, 0x00000000), 168 E(0xFC000000, 0x00000000, 0x00000000, 0x00000000), 169 E(0xFE000000, 0x00000000, 0x00000000, 0x00000000), 170 E(0xFF000000, 0x00000000, 0x00000000, 0x00000000), 171 E(0xFF800000, 0x00000000, 0x00000000, 0x00000000), 172 E(0xFFC00000, 0x00000000, 0x00000000, 0x00000000), 173 E(0xFFE00000, 0x00000000, 0x00000000, 0x00000000), 174 E(0xFFF00000, 0x00000000, 0x00000000, 0x00000000), 175 E(0xFFF80000, 0x00000000, 0x00000000, 0x00000000), 176 E(0xFFFC0000, 0x00000000, 0x00000000, 0x00000000), 177 E(0xFFFE0000, 0x00000000, 0x00000000, 0x00000000), 178 E(0xFFFF0000, 0x00000000, 0x00000000, 0x00000000), 179 E(0xFFFF8000, 0x00000000, 0x00000000, 0x00000000), 180 E(0xFFFFC000, 0x00000000, 0x00000000, 0x00000000), 181 E(0xFFFFE000, 0x00000000, 0x00000000, 0x00000000), 182 E(0xFFFFF000, 0x00000000, 0x00000000, 0x00000000), 183 E(0xFFFFF800, 0x00000000, 0x00000000, 0x00000000), 184 E(0xFFFFFC00, 0x00000000, 0x00000000, 0x00000000), 185 E(0xFFFFFE00, 0x00000000, 0x00000000, 0x00000000), 186 E(0xFFFFFF00, 0x00000000, 0x00000000, 0x00000000), 187 E(0xFFFFFF80, 0x00000000, 0x00000000, 0x00000000), 188 E(0xFFFFFFC0, 0x00000000, 0x00000000, 0x00000000), 189 E(0xFFFFFFE0, 0x00000000, 0x00000000, 0x00000000), 190 E(0xFFFFFFF0, 0x00000000, 0x00000000, 0x00000000), 191 E(0xFFFFFFF8, 0x00000000, 0x00000000, 0x00000000), 192 E(0xFFFFFFFC, 0x00000000, 0x00000000, 0x00000000), 193 E(0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000), 194 E(0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000), 195 E(0xFFFFFFFF, 0x80000000, 0x00000000, 0x00000000), 196 E(0xFFFFFFFF, 0xC0000000, 0x00000000, 0x00000000), 197 E(0xFFFFFFFF, 0xE0000000, 0x00000000, 0x00000000), 198 E(0xFFFFFFFF, 0xF0000000, 0x00000000, 0x00000000), 199 E(0xFFFFFFFF, 0xF8000000, 0x00000000, 0x00000000), 200 E(0xFFFFFFFF, 0xFC000000, 0x00000000, 0x00000000), 201 E(0xFFFFFFFF, 0xFE000000, 0x00000000, 0x00000000), 202 E(0xFFFFFFFF, 0xFF000000, 0x00000000, 0x00000000), 203 E(0xFFFFFFFF, 0xFF800000, 0x00000000, 0x00000000), 204 E(0xFFFFFFFF, 0xFFC00000, 0x00000000, 0x00000000), 205 E(0xFFFFFFFF, 0xFFE00000, 0x00000000, 0x00000000), 206 E(0xFFFFFFFF, 0xFFF00000, 0x00000000, 0x00000000), 207 E(0xFFFFFFFF, 0xFFF80000, 0x00000000, 0x00000000), 208 E(0xFFFFFFFF, 0xFFFC0000, 0x00000000, 0x00000000), 209 E(0xFFFFFFFF, 0xFFFE0000, 0x00000000, 0x00000000), 210 E(0xFFFFFFFF, 0xFFFF0000, 0x00000000, 0x00000000), 211 E(0xFFFFFFFF, 0xFFFF8000, 0x00000000, 0x00000000), 212 E(0xFFFFFFFF, 0xFFFFC000, 0x00000000, 0x00000000), 213 E(0xFFFFFFFF, 0xFFFFE000, 0x00000000, 0x00000000), 214 E(0xFFFFFFFF, 0xFFFFF000, 0x00000000, 0x00000000), 215 E(0xFFFFFFFF, 0xFFFFF800, 0x00000000, 0x00000000), 216 E(0xFFFFFFFF, 0xFFFFFC00, 0x00000000, 0x00000000), 217 E(0xFFFFFFFF, 0xFFFFFE00, 0x00000000, 0x00000000), 218 E(0xFFFFFFFF, 0xFFFFFF00, 0x00000000, 0x00000000), 219 E(0xFFFFFFFF, 0xFFFFFF80, 0x00000000, 0x00000000), 220 E(0xFFFFFFFF, 0xFFFFFFC0, 0x00000000, 0x00000000), 221 E(0xFFFFFFFF, 0xFFFFFFE0, 0x00000000, 0x00000000), 222 E(0xFFFFFFFF, 0xFFFFFFF0, 0x00000000, 0x00000000), 223 E(0xFFFFFFFF, 0xFFFFFFF8, 0x00000000, 0x00000000), 224 E(0xFFFFFFFF, 0xFFFFFFFC, 0x00000000, 0x00000000), 225 E(0xFFFFFFFF, 0xFFFFFFFE, 0x00000000, 0x00000000), 226 E(0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000), 227 E(0xFFFFFFFF, 0xFFFFFFFF, 0x80000000, 0x00000000), 228 E(0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000, 0x00000000), 229 E(0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000, 0x00000000), 230 E(0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000, 0x00000000), 231 E(0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000, 0x00000000), 232 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000, 0x00000000), 233 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000, 0x00000000), 234 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000, 0x00000000), 235 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000, 0x00000000), 236 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000, 0x00000000), 237 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000, 0x00000000), 238 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000, 0x00000000), 239 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000, 0x00000000), 240 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000, 0x00000000), 241 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000, 0x00000000), 242 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0x00000000), 243 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000, 0x00000000), 244 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000, 0x00000000), 245 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000, 0x00000000), 246 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000, 0x00000000), 247 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800, 0x00000000), 248 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00, 0x00000000), 249 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00, 0x00000000), 250 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00, 0x00000000), 251 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80, 0x00000000), 252 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0, 0x00000000), 253 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0, 0x00000000), 254 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0, 0x00000000), 255 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8, 0x00000000), 256 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC, 0x00000000), 257 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0x00000000), 258 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000), 259 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000), 260 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC0000000), 261 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xE0000000), 262 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF0000000), 263 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF8000000), 264 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFC000000), 265 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE000000), 266 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000), 267 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF800000), 268 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFC00000), 269 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFE00000), 270 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF00000), 271 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80000), 272 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC0000), 273 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFE0000), 274 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000), 275 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF8000), 276 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC000), 277 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE000), 278 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF000), 279 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFF800), 280 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFC00), 281 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFE00), 282 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF00), 283 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFF80), 284 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFC0), 285 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFE0), 286 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF0), 287 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF8), 288 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFC), 289 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE), 290 E(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF), 291}; 292EXPORT_SYMBOL_GPL(ip_set_hostmask_map); 293 294/* Find the largest network which matches the range from left, in host order. */ 295u32 296ip_set_range_to_cidr(u32 from, u32 to, u8 *cidr) 297{ 298 u32 last; 299 u8 i; 300 301 for (i = 1; i < 32; i++) { 302 if ((from & ip_set_hostmask(i)) != from) 303 continue; 304 last = from | ~ip_set_hostmask(i); 305 if (!after(last, to)) { 306 *cidr = i; 307 return last; 308 } 309 } 310 *cidr = 32; 311 return from; 312} 313EXPORT_SYMBOL_GPL(ip_set_range_to_cidr); 314