forked from KNEMC/KLALB
42 lines
1.1 KiB
Java
42 lines
1.1 KiB
Java
package org.kne.cloud.network.klalb;
|
|
|
|
import java.io.DataInput;
|
|
import java.io.DataInputStream;
|
|
import java.io.DataOutput;
|
|
import java.io.DataOutputStream;
|
|
import java.io.IOException;
|
|
import java.net.Inet6Address;
|
|
import java.net.UnknownHostException;
|
|
import java.nio.ByteBuffer;
|
|
|
|
import org.kne.cloud.network.ipv6.IPv6Address;
|
|
import org.kne.cloud.network.ipv6.IPv6AddressGroup;
|
|
|
|
public class VADDRPacket extends KLALBPacket {
|
|
private static final int HEADER_LENGTH=18;
|
|
public IPv6AddressGroup getVaddr() {
|
|
long high=klalbHeader.getLong(1);
|
|
long low=klalbHeader.getLong(9);
|
|
int perf=klalbHeader.get(17)&0xff;
|
|
|
|
return new IPv6AddressGroup(new IPv6Address(high, low), perf);
|
|
}
|
|
|
|
public VADDRPacket(IPv6AddressGroup vaddr) {
|
|
super(VADDR,HEADER_LENGTH);
|
|
klalbHeader.putLong(1, vaddr.getAddress().getHigh());
|
|
klalbHeader.putLong(9, vaddr.getAddress().getLow());
|
|
klalbHeader.put(17,(byte) vaddr.getPrefixLength());
|
|
}
|
|
|
|
public VADDRPacket(ByteBuffer bb) {
|
|
super(bb,HEADER_LENGTH);
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "VADDR "+getVaddr();
|
|
}
|
|
|
|
}
|