Lines Matching refs:prefix

90 static struct in_addr prefix2mask(unsigned int prefix)
96 if (prefix)
97 mask.s_addr = htonl(~((1 << (32 - prefix)) - 1));
143 static char *get_ipv4_netmask(unsigned int prefix)
146 struct in_addr mask = prefix2mask(prefix);
148 if (prefix > MAX_IPV4_PREFIX)
161 static char *get_ipv6_netmask(unsigned int prefix)
167 if (prefix > MAX_IPV6_PREFIX)
171 for (i = prefix, j = 0; i > 0; i -= 8, j++) {
188 static char *get_ipv4_broadcast(struct in_addr ip, unsigned int prefix)
190 struct in_addr mask = prefix2mask(prefix);
209 unsigned int prefix)
214 mask = prefix2mask(prefix);
262 unsigned int prefix)
270 if (prefix > 128)
274 for (i = prefix, j = 0; i > 0; i -= 8, j++) {
321 static char *get_ipv6_network(const unsigned char *a0, unsigned int prefix)
332 if (prefix > MAX_IPV6_PREFIX)
335 if (prefix == MAX_IPV6_PREFIX)
346 if (i < prefix >> 4) {
353 if (i >= prefix >> 4)
429 /* prefix < 8 (IPv4) or 128 (IPv6) */
433 /* prefix > 0 && prefix < 32 (IPv4) or 128 (IPv6) */
444 static void check_prefix_range(unsigned int prefix, int is_ipv6, int is_lhost)
450 if (prefix < base_prefix || (is_ipv6 && prefix == 128) ||
451 (!is_ipv6 && prefix == 32))
453 "prefix %d for %s will be unsuitable for some stress tests which need %s variable. To avoid this use prefix >= %d and prefix < %d.",
454 prefix, is_ipv6 ? "IPv6" : "IPv4",
461 static char *get_ipv4_network(int ip, unsigned int prefix)
470 if (prefix > MAX_IPV4_PREFIX)
473 if (prefix == MAX_IPV4_PREFIX)
476 prefix &= MAX_IPV4_PREFIX - 8;
478 for (i = prefix; i > 0; i -= 8) {
480 sprintf(p_buf, i < prefix ? ".%d" : "%d", byte);
488 * Round down prefix.
490 static int round_down_prefix(unsigned int prefix, int is_ipv6)
495 return prefix / base_prefix * base_prefix;