Merge "Fix lint errors for moving IpClient to NetworkStack"
This commit is contained in:
@@ -39,14 +39,6 @@ import static android.net.NetworkStats.TAG_NONE;
|
||||
import static android.net.NetworkStats.UID_ALL;
|
||||
import static android.net.TrafficStats.UID_TETHERING;
|
||||
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.IpFwdStatusResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.TetherDnsFwdTgtListResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.TetherInterfaceListResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.TetherStatusResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.TetheringStatsListResult;
|
||||
import static com.android.server.NetworkManagementService.NetdResponseCode.TtyListResult;
|
||||
import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENABLED;
|
||||
|
||||
|
||||
@@ -16,28 +16,39 @@
|
||||
|
||||
package android.net.dhcp;
|
||||
|
||||
import com.android.internal.util.HexDump;
|
||||
import com.android.internal.util.Protocol;
|
||||
import com.android.internal.util.State;
|
||||
import com.android.internal.util.MessageUtils;
|
||||
import com.android.internal.util.StateMachine;
|
||||
import com.android.internal.util.WakeupMessage;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_BROADCAST_ADDRESS;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_DNS_SERVER;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_DOMAIN_NAME;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_LEASE_TIME;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_MTU;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_REBINDING_TIME;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_RENEWAL_TIME;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_ROUTER;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_SUBNET_MASK;
|
||||
import static android.net.dhcp.DhcpPacket.DHCP_VENDOR_INFO;
|
||||
import static android.net.dhcp.DhcpPacket.INADDR_ANY;
|
||||
import static android.net.dhcp.DhcpPacket.INADDR_BROADCAST;
|
||||
import static android.system.OsConstants.AF_INET;
|
||||
import static android.system.OsConstants.AF_PACKET;
|
||||
import static android.system.OsConstants.ETH_P_IP;
|
||||
import static android.system.OsConstants.IPPROTO_UDP;
|
||||
import static android.system.OsConstants.SOCK_DGRAM;
|
||||
import static android.system.OsConstants.SOCK_RAW;
|
||||
import static android.system.OsConstants.SOL_SOCKET;
|
||||
import static android.system.OsConstants.SO_BINDTODEVICE;
|
||||
import static android.system.OsConstants.SO_BROADCAST;
|
||||
import static android.system.OsConstants.SO_RCVBUF;
|
||||
import static android.system.OsConstants.SO_REUSEADDR;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.DhcpResults;
|
||||
import android.net.InterfaceConfiguration;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.NetworkUtils;
|
||||
import android.net.TrafficStats;
|
||||
import android.net.metrics.IpConnectivityLog;
|
||||
import android.net.metrics.DhcpClientEvent;
|
||||
import android.net.metrics.DhcpErrorEvent;
|
||||
import android.net.metrics.IpConnectivityLog;
|
||||
import android.net.util.InterfaceParams;
|
||||
import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.SystemClock;
|
||||
import android.system.ErrnoException;
|
||||
import android.system.Os;
|
||||
@@ -47,20 +58,23 @@ import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
import android.util.TimeUtils;
|
||||
|
||||
import com.android.internal.util.HexDump;
|
||||
import com.android.internal.util.MessageUtils;
|
||||
import com.android.internal.util.Protocol;
|
||||
import com.android.internal.util.State;
|
||||
import com.android.internal.util.StateMachine;
|
||||
import com.android.internal.util.WakeupMessage;
|
||||
|
||||
import libcore.io.IoBridge;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.IOException;
|
||||
import java.lang.Thread;
|
||||
import java.net.Inet4Address;
|
||||
import java.net.SocketException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
import libcore.io.IoBridge;
|
||||
|
||||
import static android.system.OsConstants.*;
|
||||
import static android.net.dhcp.DhcpPacket.*;
|
||||
|
||||
/**
|
||||
* A DHCPv4 client.
|
||||
*
|
||||
|
||||
@@ -16,27 +16,27 @@
|
||||
|
||||
package android.net.ip;
|
||||
|
||||
import static android.system.OsConstants.*;
|
||||
import static android.system.OsConstants.AF_PACKET;
|
||||
import static android.system.OsConstants.ARPHRD_ETHER;
|
||||
import static android.system.OsConstants.ETH_P_ALL;
|
||||
import static android.system.OsConstants.SOCK_RAW;
|
||||
|
||||
import android.net.NetworkUtils;
|
||||
import android.net.util.PacketReader;
|
||||
import android.net.util.ConnectivityPacketSummary;
|
||||
import android.net.util.InterfaceParams;
|
||||
import android.net.util.PacketReader;
|
||||
import android.os.Handler;
|
||||
import android.system.ErrnoException;
|
||||
import android.system.Os;
|
||||
import android.system.PacketSocketAddress;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.util.LocalLog;
|
||||
import android.util.Log;
|
||||
|
||||
import libcore.io.IoBridge;
|
||||
import libcore.util.HexEncoding;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,7 +19,6 @@ package android.net.ip;
|
||||
import android.net.INetd;
|
||||
import android.net.InterfaceConfiguration;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.util.NetdService;
|
||||
import android.net.util.SharedLog;
|
||||
import android.os.INetworkManagementService;
|
||||
import android.os.RemoteException;
|
||||
|
||||
@@ -343,7 +343,7 @@ public class IpClient extends StateMachine {
|
||||
private static final int CMD_START = 3;
|
||||
private static final int CMD_CONFIRM = 4;
|
||||
private static final int EVENT_PRE_DHCP_ACTION_COMPLETE = 5;
|
||||
// Sent by NetlinkTracker to communicate netlink events.
|
||||
// Triggered by NetlinkTracker to communicate netlink events.
|
||||
private static final int EVENT_NETLINK_LINKPROPERTIES_CHANGED = 6;
|
||||
private static final int CMD_UPDATE_TCP_BUFFER_SIZES = 7;
|
||||
private static final int CMD_UPDATE_HTTP_PROXY = 8;
|
||||
@@ -429,6 +429,9 @@ public class IpClient extends StateMachine {
|
||||
return NetdService.getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get interface parameters for the specified interface.
|
||||
*/
|
||||
public InterfaceParams getInterfaceParams(String ifname) {
|
||||
return InterfaceParams.getByName(ifname);
|
||||
}
|
||||
@@ -446,7 +449,9 @@ public class IpClient extends StateMachine {
|
||||
INetworkManagementService nwService) {
|
||||
this(context, ifName, callback, new Dependencies() {
|
||||
@Override
|
||||
public INetworkManagementService getNMS() { return nwService; }
|
||||
public INetworkManagementService getNMS() {
|
||||
return nwService;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -493,7 +498,7 @@ public class IpClient extends StateMachine {
|
||||
return;
|
||||
}
|
||||
|
||||
final String msg = "interfaceAdded(" + iface +")";
|
||||
final String msg = "interfaceAdded(" + iface + ")";
|
||||
logMsg(msg);
|
||||
}
|
||||
|
||||
@@ -511,13 +516,13 @@ public class IpClient extends StateMachine {
|
||||
return;
|
||||
}
|
||||
|
||||
final String msg = "interfaceRemoved(" + iface +")";
|
||||
final String msg = "interfaceRemoved(" + iface + ")";
|
||||
logMsg(msg);
|
||||
}
|
||||
|
||||
private void logMsg(String msg) {
|
||||
Log.d(mTag, msg);
|
||||
getHandler().post(() -> { mLog.log("OBSERVED " + msg); });
|
||||
getHandler().post(() -> mLog.log("OBSERVED " + msg));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -590,10 +595,12 @@ public class IpClient extends StateMachine {
|
||||
}
|
||||
|
||||
private void configureAndStartStateMachine() {
|
||||
// CHECKSTYLE:OFF IndentationCheck
|
||||
addState(mStoppedState);
|
||||
addState(mStartedState);
|
||||
addState(mRunningState, mStartedState);
|
||||
addState(mStoppingState);
|
||||
// CHECKSTYLE:ON IndentationCheck
|
||||
|
||||
setInitialState(mStoppedState);
|
||||
|
||||
@@ -676,18 +683,34 @@ public class IpClient extends StateMachine {
|
||||
startProvisioning(new android.net.shared.ProvisioningConfiguration());
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop this IpClient.
|
||||
*
|
||||
* <p>This does not shut down the StateMachine itself, which is handled by {@link #shutdown()}.
|
||||
*/
|
||||
public void stop() {
|
||||
sendMessage(CMD_STOP);
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirm the provisioning configuration.
|
||||
*/
|
||||
public void confirmConfiguration() {
|
||||
sendMessage(CMD_CONFIRM);
|
||||
}
|
||||
|
||||
/**
|
||||
* For clients using {@link ProvisioningConfiguration.Builder#withPreDhcpAction()}, must be
|
||||
* called after {@link IIpClientCallbacks#onPreDhcpAction} to indicate that DHCP is clear to
|
||||
* proceed.
|
||||
*/
|
||||
public void completedPreDhcpAction() {
|
||||
sendMessage(EVENT_PRE_DHCP_ACTION_COMPLETE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicate that packet filter read is complete.
|
||||
*/
|
||||
public void readPacketFilterComplete(byte[] data) {
|
||||
sendMessage(EVENT_READ_PACKET_FILTER_COMPLETE, data);
|
||||
}
|
||||
@@ -720,6 +743,9 @@ public class IpClient extends StateMachine {
|
||||
sendMessage(CMD_SET_MULTICAST_FILTER, enabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dump logs of this IpClient.
|
||||
*/
|
||||
public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
|
||||
if (args != null && args.length > 0 && DUMP_ARG_CONFIRM.equals(args[0])) {
|
||||
// Execute confirmConfiguration() and take no further action.
|
||||
@@ -962,19 +988,25 @@ public class IpClient extends StateMachine {
|
||||
private void dispatchCallback(ProvisioningChange delta, LinkProperties newLp) {
|
||||
switch (delta) {
|
||||
case GAINED_PROVISIONING:
|
||||
if (DBG) { Log.d(mTag, "onProvisioningSuccess()"); }
|
||||
if (DBG) {
|
||||
Log.d(mTag, "onProvisioningSuccess()");
|
||||
}
|
||||
recordMetric(IpManagerEvent.PROVISIONING_OK);
|
||||
mCallback.onProvisioningSuccess(newLp);
|
||||
break;
|
||||
|
||||
case LOST_PROVISIONING:
|
||||
if (DBG) { Log.d(mTag, "onProvisioningFailure()"); }
|
||||
if (DBG) {
|
||||
Log.d(mTag, "onProvisioningFailure()");
|
||||
}
|
||||
recordMetric(IpManagerEvent.PROVISIONING_FAIL);
|
||||
mCallback.onProvisioningFailure(newLp);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (DBG) { Log.d(mTag, "onLinkPropertiesChange()"); }
|
||||
if (DBG) {
|
||||
Log.d(mTag, "onLinkPropertiesChange()");
|
||||
}
|
||||
mCallback.onLinkPropertiesChange(newLp);
|
||||
break;
|
||||
}
|
||||
@@ -1118,7 +1150,9 @@ public class IpClient extends StateMachine {
|
||||
// any addresses upon entry to StoppedState.
|
||||
mInterfaceCtrl.clearIPv4Address();
|
||||
mDhcpResults = null;
|
||||
if (DBG) { Log.d(mTag, "onNewDhcpResults(null)"); }
|
||||
if (DBG) {
|
||||
Log.d(mTag, "onNewDhcpResults(null)");
|
||||
}
|
||||
mCallback.onNewDhcpResults(null);
|
||||
|
||||
handleProvisioningFailure();
|
||||
@@ -1171,9 +1205,9 @@ public class IpClient extends StateMachine {
|
||||
}
|
||||
|
||||
private boolean startIPv6() {
|
||||
return mInterfaceCtrl.setIPv6PrivacyExtensions(true) &&
|
||||
mInterfaceCtrl.setIPv6AddrGenModeIfSupported(mConfiguration.mIPv6AddrGenMode) &&
|
||||
mInterfaceCtrl.enableIPv6();
|
||||
return mInterfaceCtrl.setIPv6PrivacyExtensions(true)
|
||||
&& mInterfaceCtrl.setIPv6AddrGenModeIfSupported(mConfiguration.mIPv6AddrGenMode)
|
||||
&& mInterfaceCtrl.enableIPv6();
|
||||
}
|
||||
|
||||
private boolean applyInitialConfig(InitialConfiguration config) {
|
||||
@@ -1191,10 +1225,10 @@ public class IpClient extends StateMachine {
|
||||
// settings observer to watch for update and re-program these
|
||||
// parameters (Q: is this level of dynamic updatability really
|
||||
// necessary or does reading from settings at startup suffice?).
|
||||
final int NUM_SOLICITS = 5;
|
||||
final int INTER_SOLICIT_INTERVAL_MS = 750;
|
||||
final int numSolicits = 5;
|
||||
final int interSolicitIntervalMs = 750;
|
||||
setNeighborParameters(mDependencies.getNetd(), mInterfaceName,
|
||||
NUM_SOLICITS, INTER_SOLICIT_INTERVAL_MS);
|
||||
numSolicits, interSolicitIntervalMs);
|
||||
} catch (Exception e) {
|
||||
mLog.e("Failed to adjust neighbor parameters", e);
|
||||
// Carry on using the system defaults (currently: 3, 1000);
|
||||
@@ -1341,8 +1375,8 @@ public class IpClient extends StateMachine {
|
||||
mStartTimeMillis = SystemClock.elapsedRealtime();
|
||||
|
||||
if (mConfiguration.mProvisioningTimeoutMs > 0) {
|
||||
final long alarmTime = SystemClock.elapsedRealtime() +
|
||||
mConfiguration.mProvisioningTimeoutMs;
|
||||
final long alarmTime = SystemClock.elapsedRealtime()
|
||||
+ mConfiguration.mProvisioningTimeoutMs;
|
||||
mProvisioningTimeoutAlarm.schedule(alarmTime);
|
||||
}
|
||||
|
||||
@@ -1397,8 +1431,7 @@ public class IpClient extends StateMachine {
|
||||
}
|
||||
|
||||
private boolean readyToProceed() {
|
||||
return (!mLinkProperties.hasIPv4Address() &&
|
||||
!mLinkProperties.hasGlobalIPv6Address());
|
||||
return (!mLinkProperties.hasIPv4Address() && !mLinkProperties.hasGlobalIPv6Address());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1449,7 +1482,7 @@ public class IpClient extends StateMachine {
|
||||
if (mConfiguration.mUsingMultinetworkPolicyTracker) {
|
||||
mMultinetworkPolicyTracker = new MultinetworkPolicyTracker(
|
||||
mContext, getHandler(),
|
||||
() -> { mLog.log("OBSERVED AvoidBadWifi changed"); });
|
||||
() -> mLog.log("OBSERVED AvoidBadWifi changed"));
|
||||
mMultinetworkPolicyTracker.start();
|
||||
}
|
||||
|
||||
@@ -1510,8 +1543,8 @@ public class IpClient extends StateMachine {
|
||||
if (!mDhcpActionInFlight) {
|
||||
mCallback.onPreDhcpAction();
|
||||
mDhcpActionInFlight = true;
|
||||
final long alarmTime = SystemClock.elapsedRealtime() +
|
||||
mConfiguration.mRequestedPreDhcpActionMs;
|
||||
final long alarmTime = SystemClock.elapsedRealtime()
|
||||
+ mConfiguration.mRequestedPreDhcpActionMs;
|
||||
mDhcpActionTimeoutAlarm.schedule(alarmTime);
|
||||
}
|
||||
}
|
||||
@@ -1680,16 +1713,18 @@ public class IpClient extends StateMachine {
|
||||
}
|
||||
|
||||
private static void setNeighborParameters(
|
||||
INetd netd, String ifName, int num_solicits, int inter_solicit_interval_ms)
|
||||
INetd netd, String ifName, int numSolicits, int interSolicitIntervalMs)
|
||||
throws RemoteException, IllegalArgumentException {
|
||||
Preconditions.checkNotNull(netd);
|
||||
Preconditions.checkArgument(!TextUtils.isEmpty(ifName));
|
||||
Preconditions.checkArgument(num_solicits > 0);
|
||||
Preconditions.checkArgument(inter_solicit_interval_ms > 0);
|
||||
Preconditions.checkArgument(numSolicits > 0);
|
||||
Preconditions.checkArgument(interSolicitIntervalMs > 0);
|
||||
|
||||
for (int family : new Integer[]{INetd.IPV4, INetd.IPV6}) {
|
||||
netd.setProcSysNet(family, INetd.NEIGH, ifName, "retrans_time_ms", Integer.toString(inter_solicit_interval_ms));
|
||||
netd.setProcSysNet(family, INetd.NEIGH, ifName, "ucast_solicit", Integer.toString(num_solicits));
|
||||
netd.setProcSysNet(family, INetd.NEIGH, ifName, "retrans_time_ms",
|
||||
Integer.toString(interSolicitIntervalMs));
|
||||
netd.setProcSysNet(family, INetd.NEIGH, ifName, "ucast_solicit",
|
||||
Integer.toString(numSolicits));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1718,7 +1753,7 @@ public class IpClient extends StateMachine {
|
||||
static <T> T find(Iterable<T> coll, Predicate<T> fn) {
|
||||
for (T t: coll) {
|
||||
if (fn.test(t)) {
|
||||
return t;
|
||||
return t;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
|
||||
package android.net.ip;
|
||||
|
||||
import static android.net.netlink.NetlinkConstants.hexify;
|
||||
import static android.net.netlink.NetlinkConstants.RTM_DELNEIGH;
|
||||
import static android.net.netlink.NetlinkConstants.hexify;
|
||||
import static android.net.netlink.NetlinkConstants.stringForNlMsgType;
|
||||
|
||||
import android.net.MacAddress;
|
||||
@@ -26,7 +26,6 @@ import android.net.netlink.NetlinkMessage;
|
||||
import android.net.netlink.NetlinkSocket;
|
||||
import android.net.netlink.RtNetlinkNeighborMessage;
|
||||
import android.net.netlink.StructNdMsg;
|
||||
import android.net.netlink.StructNlMsgHdr;
|
||||
import android.net.util.PacketReader;
|
||||
import android.net.util.SharedLog;
|
||||
import android.os.Handler;
|
||||
|
||||
@@ -18,11 +18,15 @@ package android.net.ip;
|
||||
|
||||
import static android.net.util.NetworkConstants.IPV6_MIN_MTU;
|
||||
import static android.net.util.NetworkConstants.RFC7421_PREFIX_LENGTH;
|
||||
import static android.system.OsConstants.*;
|
||||
import static android.system.OsConstants.AF_INET6;
|
||||
import static android.system.OsConstants.IPPROTO_ICMPV6;
|
||||
import static android.system.OsConstants.SOCK_RAW;
|
||||
import static android.system.OsConstants.SOL_SOCKET;
|
||||
import static android.system.OsConstants.SO_BINDTODEVICE;
|
||||
import static android.system.OsConstants.SO_SNDTIMEO;
|
||||
|
||||
import android.net.IpPrefix;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.LinkProperties;
|
||||
import android.net.NetworkUtils;
|
||||
import android.net.TrafficStats;
|
||||
import android.net.util.InterfaceParams;
|
||||
@@ -34,10 +38,8 @@ import android.util.Log;
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
|
||||
import libcore.io.IoBridge;
|
||||
import libcore.util.HexEncoding;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.io.IOException;
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
@@ -47,7 +49,6 @@ import java.net.UnknownHostException;
|
||||
import java.nio.BufferOverflowException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
|
||||
@@ -16,22 +16,15 @@
|
||||
|
||||
package android.net.netlink;
|
||||
|
||||
import static android.net.netlink.NetlinkConstants.alignedLengthOf;
|
||||
import static android.net.netlink.StructNlAttr.makeNestedType;
|
||||
import static android.net.netlink.StructNlAttr.NLA_HEADERLEN;
|
||||
import static android.net.netlink.StructNlMsgHdr.NLM_F_ACK;
|
||||
import static android.net.netlink.StructNlMsgHdr.NLM_F_DUMP;
|
||||
import static android.net.netlink.StructNlMsgHdr.NLM_F_REPLACE;
|
||||
import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST;
|
||||
import static android.net.util.NetworkConstants.IPV4_ADDR_LEN;
|
||||
|
||||
import static java.nio.ByteOrder.BIG_ENDIAN;
|
||||
|
||||
import android.system.OsConstants;
|
||||
import android.util.Log;
|
||||
|
||||
import java.net.Inet4Address;
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
|
||||
@@ -16,19 +16,56 @@
|
||||
|
||||
package android.net.util;
|
||||
|
||||
import android.net.dhcp.DhcpPacket;
|
||||
import static android.net.util.NetworkConstants.ARP_HWTYPE_ETHER;
|
||||
import static android.net.util.NetworkConstants.ARP_PAYLOAD_LEN;
|
||||
import static android.net.util.NetworkConstants.ARP_REPLY;
|
||||
import static android.net.util.NetworkConstants.ARP_REQUEST;
|
||||
import static android.net.util.NetworkConstants.DHCP4_CLIENT_PORT;
|
||||
import static android.net.util.NetworkConstants.ETHER_ADDR_LEN;
|
||||
import static android.net.util.NetworkConstants.ETHER_DST_ADDR_OFFSET;
|
||||
import static android.net.util.NetworkConstants.ETHER_HEADER_LEN;
|
||||
import static android.net.util.NetworkConstants.ETHER_SRC_ADDR_OFFSET;
|
||||
import static android.net.util.NetworkConstants.ETHER_TYPE_ARP;
|
||||
import static android.net.util.NetworkConstants.ETHER_TYPE_IPV4;
|
||||
import static android.net.util.NetworkConstants.ETHER_TYPE_IPV6;
|
||||
import static android.net.util.NetworkConstants.ETHER_TYPE_OFFSET;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_HEADER_MIN_LEN;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ND_OPTION_LENGTH_SCALING_FACTOR;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ND_OPTION_MIN_LENGTH;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ND_OPTION_MTU;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ND_OPTION_SLLA;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ND_OPTION_TLLA;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_NEIGHBOR_ADVERTISEMENT;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_NEIGHBOR_SOLICITATION;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ROUTER_ADVERTISEMENT;
|
||||
import static android.net.util.NetworkConstants.ICMPV6_ROUTER_SOLICITATION;
|
||||
import static android.net.util.NetworkConstants.IPV4_ADDR_LEN;
|
||||
import static android.net.util.NetworkConstants.IPV4_DST_ADDR_OFFSET;
|
||||
import static android.net.util.NetworkConstants.IPV4_FLAGS_OFFSET;
|
||||
import static android.net.util.NetworkConstants.IPV4_FRAGMENT_MASK;
|
||||
import static android.net.util.NetworkConstants.IPV4_HEADER_MIN_LEN;
|
||||
import static android.net.util.NetworkConstants.IPV4_IHL_MASK;
|
||||
import static android.net.util.NetworkConstants.IPV4_PROTOCOL_OFFSET;
|
||||
import static android.net.util.NetworkConstants.IPV4_SRC_ADDR_OFFSET;
|
||||
import static android.net.util.NetworkConstants.IPV6_ADDR_LEN;
|
||||
import static android.net.util.NetworkConstants.IPV6_HEADER_LEN;
|
||||
import static android.net.util.NetworkConstants.IPV6_PROTOCOL_OFFSET;
|
||||
import static android.net.util.NetworkConstants.IPV6_SRC_ADDR_OFFSET;
|
||||
import static android.net.util.NetworkConstants.UDP_HEADER_LEN;
|
||||
import static android.net.util.NetworkConstants.asString;
|
||||
import static android.net.util.NetworkConstants.asUint;
|
||||
import static android.system.OsConstants.IPPROTO_ICMPV6;
|
||||
import static android.system.OsConstants.IPPROTO_UDP;
|
||||
|
||||
import android.net.MacAddress;
|
||||
import android.net.dhcp.DhcpPacket;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.Arrays;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
import static android.system.OsConstants.*;
|
||||
import static android.net.util.NetworkConstants.*;
|
||||
|
||||
|
||||
/**
|
||||
* Critical connectivity packet summarizing class.
|
||||
|
||||
@@ -19,7 +19,6 @@ package android.net.util;
|
||||
import android.net.INetd;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.ServiceSpecificException;
|
||||
import android.os.SystemClock;
|
||||
import android.util.Log;
|
||||
|
||||
|
||||
@@ -16,19 +16,18 @@
|
||||
|
||||
package android.net.util;
|
||||
|
||||
import static android.net.util.NetworkConstants.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import android.net.MacAddress;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
import android.support.test.filters.SmallTest;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.Test;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
||||
import libcore.util.HexEncoding;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
/**
|
||||
* Tests for ConnectivityPacketSummary.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user