int addr_host_is_all0s(const struct xaddr* a, int masklen) { struct xaddr tmp_addr, tmp_mask, tmp_result; rte_memcpy(&tmp_addr, a, sizeof(tmp_addr)); if (addr_hostmask(a->af, masklen, &tmp_mask) == -1) return (-1); if (addr_and(&tmp_result, &tmp_addr, &tmp_mask) == -1) return (-1); return (addr_is_all0s(&tmp_result)); }
int addr_host_is_all1s(const struct xaddr *a, u_int masklen) { struct xaddr tmp_addr, tmp_mask, tmp_result; memcpy(&tmp_addr, a, sizeof(tmp_addr)); if (addr_netmask(a->af, masklen, &tmp_mask) == -1) return (-1); if (addr_or(&tmp_result, &tmp_addr, &tmp_mask) == -1) return (-1); if (addr_invert(&tmp_result) == -1) return (-1); return (addr_is_all0s(&tmp_result)); }