public static Ipv6Prefix createPrefix(final Ipv6Address ipv6Address, final int intmask){ return IetfInetUtil.INSTANCE.ipv6PrefixFor(ipv6Address, intmask); }
/** * Creates an Ipv6Prefix object from given byte array. * * @param bytes IPv6 address * @param length prefix length * @return Ipv6Prefix object */ public static Ipv6Prefix prefixForBytes(final byte[] bytes, final int length) { Preconditions.checkArgument(length <= bytes.length * Byte.SIZE); final byte[] tmp; if (bytes.length != IPV6_LENGTH) { tmp = Arrays.copyOfRange(bytes, 0, IPV6_LENGTH); } else { tmp = bytes; } return IetfInetUtil.INSTANCE.ipv6PrefixFor(tmp, length); }
/** * Creates an Ipv6Prefix object from given ByteBuf. Prefix length is assumed to * be in the left most byte of the buffer. * * @param buf IPv6 address * @return Ipv6Prefix object */ public static Ipv6Prefix prefixForByteBuf(final ByteBuf buf) { final int prefixLength = buf.readByte(); final int size = prefixLength / Byte.SIZE + ((prefixLength % Byte.SIZE == 0) ? 0 : 1); final int readable = buf.readableBytes(); Preconditions.checkArgument(size <= readable, "Illegal length of IP prefix: %s/%s", size, readable); final byte[] bytes = new byte[IPV6_LENGTH]; buf.readBytes(bytes, 0, size); return IetfInetUtil.INSTANCE.ipv6PrefixFor(bytes, prefixLength); }
public static Ipv6Prefix createPrefix(final Ipv6Address ipv6Address, final byte [] bytemask){ return IetfInetUtil.INSTANCE.ipv6PrefixFor(ipv6Address, countBits(bytemask)); }
public static Ipv6Prefix createPrefix(final Ipv6Address ipv6Address, final String mask){ /* * Ipv6Address has already validated the address part of the prefix, * It is mandated to comply to the same regexp as the address * There is absolutely no point rerunning additional checks vs this * Note - there is no canonical form check here!!! */ if (Strings.isNullOrEmpty(mask)) { return new Ipv6Prefix(ipv6Address.getValue() + PREFIX_SEPARATOR + String.valueOf(IPV6_ADDRESS_LENGTH)); } else { return new Ipv6Prefix(ipv6Address.getValue() + PREFIX_SEPARATOR + mask); } }