@Override public byte[] serialize() { int payloadLen = options == null ? DEFAULT_LEN : DEFAULT_LEN + options.serialize().length; ByteBuffer bb = ByteBuffer.allocate(payloadLen + Dhcp6Option.DEFAULT_LEN); bb.putShort(DHCP6.OptionCode.IAADDR.value()); bb.putShort((short) payloadLen); bb.put(ip6Address.toOctets()); bb.putInt(preferredLifetime); bb.putInt(validLifetime); if (options != null) { bb.put(options.serialize()); } return bb.array(); }
@Override public byte[] serialize() { int payloadLen = options == null ? DEFAULT_LEN : DEFAULT_LEN + options.serialize().length; ByteBuffer bb = ByteBuffer.allocate(payloadLen + Dhcp6Option.DEFAULT_LEN); bb.putShort(DHCP6.OptionCode.IAPREFIX.value()); bb.putShort((short) payloadLen); bb.putInt(preferredLifetime); bb.putInt(validLifetime); bb.put(prefixLength); bb.put(ip6Prefix.toOctets()); if (options != null) { bb.put(options.serialize()); } return bb.array(); }
@Override public void writeTo(ByteBuf byteBuf, LispIpv6Address address) throws LispWriterException { byte[] ipByte = address.getAddress().getIp6Address().toOctets(); byteBuf.writeBytes(ipByte); } }
@Override public void write(Kryo kryo, Output output, Ip6Address object) { byte[] octs = object.toOctets(); // It is always Ip6Address.BYTE_LENGTH output.writeInt(octs.length); output.writeBytes(octs); }
@Override public void init(Criterion criterion, int bitWidth) throws ByteSequenceTrimException { IPv6NDTargetAddressCriterion c = (IPv6NDTargetAddressCriterion) criterion; initAsExactMatch(copyFrom(c.targetAddress().getIp6Address().toOctets()), bitWidth); } }
@Override public void write(Kryo kryo, Output output, Ip6Prefix object) { byte[] octs = object.address().toOctets(); // It is always Ip6Address.BYTE_LENGTH output.writeInt(octs.length); output.writeBytes(octs); output.writeInt(object.prefixLength()); }
@Override public int write(ChannelBuffer cb) { int iLenStartIndex = cb.writerIndex(); cb.writeShort(type); cb.writeShort(LENGTH); cb.writeBytes(address.toOctets()); return cb.writerIndex() - iLenStartIndex; }
ipv6.setSourceAddress(sourceIp.toOctets()); ipv6.setDestinationAddress(destinationIp.toOctets()); ipv6.setHopLimit(NDP_HOP_LIMIT); ns.setTargetAddress(targetIp.toOctets()); if (!Arrays.equals(sourceIp.toOctets(), Ip6Address.ZERO.toOctets())) { ns.addOption(NeighborDiscoveryOptions.TYPE_SOURCE_LL_ADDRESS, sourceMac.toBytes());
ns.setTargetAddress(targetIp); if (!Arrays.equals(sourceIp, Ip6Address.ZERO.toOctets())) { ns.addOption(NeighborDiscoveryOptions.TYPE_SOURCE_LL_ADDRESS, sourceMac);
ip = (L3ModificationInstruction.ModIPInstruction) i; ip6 = ip.ip().getIp6Address(); oxm = factory.oxms().ipv6Src(IPv6Address.of(ip6.toOctets())); break; case IPV6_DST: ip = (L3ModificationInstruction.ModIPInstruction) i; ip6 = ip.ip().getIp6Address(); oxm = factory.oxms().ipv6Dst(IPv6Address.of(ip6.toOctets())); break; case IPV6_FLABEL:
ip6Address = targetAddressCriterion.targetAddress(); mBuilder.setExact(MatchField.IPV6_ND_TARGET, IPv6Address.of(ip6Address.toOctets())); break; case IPV6_ND_SLL: