Merge "Address the comments left in the IPv6 utils change."
diff --git a/staticlibs/device/com/android/net/module/util/structs/EthernetHeader.java b/staticlibs/device/com/android/net/module/util/structs/EthernetHeader.java
index d895cfa..92ef8a7 100644
--- a/staticlibs/device/com/android/net/module/util/structs/EthernetHeader.java
+++ b/staticlibs/device/com/android/net/module/util/structs/EthernetHeader.java
@@ -40,7 +40,7 @@
* +- -+
* | Address |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1|
+ * | EtherType |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/
public class EthernetHeader extends Struct {
diff --git a/staticlibs/device/com/android/net/module/util/structs/Ipv6Header.java b/staticlibs/device/com/android/net/module/util/structs/Ipv6Header.java
index 3ad8157..a14e064 100644
--- a/staticlibs/device/com/android/net/module/util/structs/Ipv6Header.java
+++ b/staticlibs/device/com/android/net/module/util/structs/Ipv6Header.java
@@ -53,7 +53,7 @@
@Field(order = 0, type = Type.S32)
public int vtf;
@Field(order = 1, type = Type.U16)
- public int length;
+ public int payloadLength;
@Field(order = 2, type = Type.S8)
public byte nextHeader;
@Field(order = 3, type = Type.U8)
@@ -63,10 +63,10 @@
@Field(order = 5, type = Type.Ipv6Address)
public Inet6Address dstIp;
- public Ipv6Header(final int vtf, final int length, final byte nextHeader, final short hopLimit,
- final Inet6Address srcIp, final Inet6Address dstIp) {
+ public Ipv6Header(final int vtf, final int payloadLength, final byte nextHeader,
+ final short hopLimit, final Inet6Address srcIp, final Inet6Address dstIp) {
this.vtf = vtf;
- this.length = length;
+ this.payloadLength = payloadLength;
this.nextHeader = nextHeader;
this.hopLimit = hopLimit;
this.srcIp = srcIp;
diff --git a/staticlibs/device/com/android/net/module/util/structs/LlaOption.java b/staticlibs/device/com/android/net/module/util/structs/LlaOption.java
index 2cdeefb..fbaccab 100644
--- a/staticlibs/device/com/android/net/module/util/structs/LlaOption.java
+++ b/staticlibs/device/com/android/net/module/util/structs/LlaOption.java
@@ -36,14 +36,16 @@
*/
public class LlaOption extends Struct {
@Field(order = 0, type = Type.S8)
- // 1 for Source Link-layer Address; 2 for Target Link-layer Address.
public final byte type;
@Field(order = 1, type = Type.S8)
public final byte length; // Length in 8-byte units
@Field(order = 2, type = Type.EUI48)
+ // Link layer address length and format varies on different link layers, which is not
+ // guaranteed to be a 6-byte MAC address. However, Struct only supports 6-byte MAC
+ // addresses type(EUI-48) for now.
public final MacAddress linkLayerAddress;
- public LlaOption(final byte type, final byte length, final MacAddress linkLayerAddress) {
+ LlaOption(final byte type, final byte length, final MacAddress linkLayerAddress) {
this.type = type;
this.length = length;
this.linkLayerAddress = linkLayerAddress;
@@ -54,6 +56,6 @@
*/
public static ByteBuffer build(final byte type, final MacAddress linkLayerAddress) {
final LlaOption option = new LlaOption(type, (byte) 1 /* option len */, linkLayerAddress);
- return ByteBuffer.wrap(option.writeToBytes(ByteOrder.nativeOrder()));
+ return ByteBuffer.wrap(option.writeToBytes(ByteOrder.BIG_ENDIAN));
}
}
diff --git a/staticlibs/device/com/android/net/module/util/structs/MtuOption.java b/staticlibs/device/com/android/net/module/util/structs/MtuOption.java
index a35b576..34bc21c 100644
--- a/staticlibs/device/com/android/net/module/util/structs/MtuOption.java
+++ b/staticlibs/device/com/android/net/module/util/structs/MtuOption.java
@@ -46,7 +46,7 @@
@Field(order = 3, type = Type.U32)
public final long mtu;
- public MtuOption(final byte type, final byte length, final short reserved,
+ MtuOption(final byte type, final byte length, final short reserved,
final long mtu) {
this.type = type;
this.length = length;
@@ -60,6 +60,6 @@
public static ByteBuffer build(final long mtu) {
final MtuOption option = new MtuOption((byte) ICMPV6_ND_OPTION_MTU,
(byte) 1 /* option len */, (short) 0 /* reserved */, mtu);
- return ByteBuffer.wrap(option.writeToBytes(ByteOrder.nativeOrder()));
+ return ByteBuffer.wrap(option.writeToBytes(ByteOrder.BIG_ENDIAN));
}
}
diff --git a/staticlibs/device/com/android/net/module/util/structs/NaHeader.java b/staticlibs/device/com/android/net/module/util/structs/NaHeader.java
index 8101b06..571d67b 100644
--- a/staticlibs/device/com/android/net/module/util/structs/NaHeader.java
+++ b/staticlibs/device/com/android/net/module/util/structs/NaHeader.java
@@ -23,7 +23,7 @@
import java.net.Inet6Address;
/**
- * ICMPv6 Neighbor Advertisement header, follow [Icmpv6Header], as per
+ * ICMPv6 Neighbor Advertisement header, follow {@link Icmpv6Header}, as per
* https://tools.ietf.org/html/rfc4861. This does not contain any option.
*
* 0 1 2 3
diff --git a/staticlibs/device/com/android/net/module/util/structs/PrefixInformationOption.java b/staticlibs/device/com/android/net/module/util/structs/PrefixInformationOption.java
index 7dc0192..1bdee29 100644
--- a/staticlibs/device/com/android/net/module/util/structs/PrefixInformationOption.java
+++ b/staticlibs/device/com/android/net/module/util/structs/PrefixInformationOption.java
@@ -70,7 +70,7 @@
@Field(order = 7, type = Type.ByteArray, arraysize = 16)
public final byte[] prefix;
- public PrefixInformationOption(final byte type, final byte length, final byte prefixLen,
+ PrefixInformationOption(final byte type, final byte length, final byte prefixLen,
final byte flags, final long validLifetime, final long preferredLifetime,
final int reserved, @NonNull final byte[] prefix) {
this.type = type;
@@ -92,6 +92,6 @@
(byte) ICMPV6_ND_OPTION_PIO, (byte) 4 /* option len */,
(byte) prefix.getPrefixLength(), flags, validLifetime, preferredLifetime,
(int) 0, prefix.getRawAddress());
- return ByteBuffer.wrap(option.writeToBytes(ByteOrder.nativeOrder()));
+ return ByteBuffer.wrap(option.writeToBytes(ByteOrder.BIG_ENDIAN));
}
}
diff --git a/staticlibs/device/com/android/net/module/util/structs/RdnssOption.java b/staticlibs/device/com/android/net/module/util/structs/RdnssOption.java
index de55e66..b7c2b0c 100644
--- a/staticlibs/device/com/android/net/module/util/structs/RdnssOption.java
+++ b/staticlibs/device/com/android/net/module/util/structs/RdnssOption.java
@@ -53,8 +53,7 @@
@Field(order = 3, type = Type.U32)
public final long lifetime;
- public RdnssOption(final byte type, final byte length, final short reserved,
- final long lifetime) {
+ RdnssOption(final byte type, final byte length, final short reserved, final long lifetime) {
this.type = type;
this.length = length;
this.reserved = reserved;
@@ -79,6 +78,8 @@
/**
* Build a RDNSS option from the required specified String parameters.
+ *
+ * @throws IllegalArgumentException if {@code servers} does not contain only numeric addresses.
*/
public static ByteBuffer build(final long lifetime, final String... servers) {
final Inet6Address[] serverArray = new Inet6Address[servers.length];