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