Merge "Fix lint errors for moving IpClient to NetworkStack"

This commit is contained in:
Remi NGUYEN VAN
2019-01-22 07:13:39 +00:00
committed by Gerrit Code Review
11 changed files with 156 additions and 88 deletions

View File

@@ -39,14 +39,6 @@ import static android.net.NetworkStats.TAG_NONE;
import static android.net.NetworkStats.UID_ALL; import static android.net.NetworkStats.UID_ALL;
import static android.net.TrafficStats.UID_TETHERING; 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.NetworkManagementService.NetdResponseCode.TtyListResult;
import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENABLED; import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENABLED;

View File

@@ -16,28 +16,39 @@
package android.net.dhcp; package android.net.dhcp;
import com.android.internal.util.HexDump; import static android.net.dhcp.DhcpPacket.DHCP_BROADCAST_ADDRESS;
import com.android.internal.util.Protocol; import static android.net.dhcp.DhcpPacket.DHCP_DNS_SERVER;
import com.android.internal.util.State; import static android.net.dhcp.DhcpPacket.DHCP_DOMAIN_NAME;
import com.android.internal.util.MessageUtils; import static android.net.dhcp.DhcpPacket.DHCP_LEASE_TIME;
import com.android.internal.util.StateMachine; import static android.net.dhcp.DhcpPacket.DHCP_MTU;
import com.android.internal.util.WakeupMessage; 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.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.DhcpResults; import android.net.DhcpResults;
import android.net.InterfaceConfiguration;
import android.net.LinkAddress;
import android.net.NetworkUtils; import android.net.NetworkUtils;
import android.net.TrafficStats; import android.net.TrafficStats;
import android.net.metrics.IpConnectivityLog;
import android.net.metrics.DhcpClientEvent; import android.net.metrics.DhcpClientEvent;
import android.net.metrics.DhcpErrorEvent; import android.net.metrics.DhcpErrorEvent;
import android.net.metrics.IpConnectivityLog;
import android.net.util.InterfaceParams; import android.net.util.InterfaceParams;
import android.os.Message; import android.os.Message;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock; import android.os.SystemClock;
import android.system.ErrnoException; import android.system.ErrnoException;
import android.system.Os; import android.system.Os;
@@ -47,20 +58,23 @@ import android.util.Log;
import android.util.SparseArray; import android.util.SparseArray;
import android.util.TimeUtils; 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.FileDescriptor;
import java.io.IOException; import java.io.IOException;
import java.lang.Thread;
import java.net.Inet4Address; import java.net.Inet4Address;
import java.net.SocketException; import java.net.SocketException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Arrays; import java.util.Arrays;
import java.util.Random; import java.util.Random;
import libcore.io.IoBridge;
import static android.system.OsConstants.*;
import static android.net.dhcp.DhcpPacket.*;
/** /**
* A DHCPv4 client. * A DHCPv4 client.
* *

View File

@@ -16,27 +16,27 @@
package android.net.ip; 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.NetworkUtils;
import android.net.util.PacketReader;
import android.net.util.ConnectivityPacketSummary; import android.net.util.ConnectivityPacketSummary;
import android.net.util.InterfaceParams; import android.net.util.InterfaceParams;
import android.net.util.PacketReader;
import android.os.Handler; import android.os.Handler;
import android.system.ErrnoException; import android.system.ErrnoException;
import android.system.Os; import android.system.Os;
import android.system.PacketSocketAddress; import android.system.PacketSocketAddress;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.util.LocalLog; import android.util.LocalLog;
import android.util.Log;
import libcore.io.IoBridge;
import libcore.util.HexEncoding; import libcore.util.HexEncoding;
import java.io.FileDescriptor; import java.io.FileDescriptor;
import java.io.InterruptedIOException;
import java.io.IOException; import java.io.IOException;
import java.net.SocketException;
/** /**

View File

@@ -19,7 +19,6 @@ package android.net.ip;
import android.net.INetd; import android.net.INetd;
import android.net.InterfaceConfiguration; import android.net.InterfaceConfiguration;
import android.net.LinkAddress; import android.net.LinkAddress;
import android.net.util.NetdService;
import android.net.util.SharedLog; import android.net.util.SharedLog;
import android.os.INetworkManagementService; import android.os.INetworkManagementService;
import android.os.RemoteException; import android.os.RemoteException;

View File

@@ -343,7 +343,7 @@ public class IpClient extends StateMachine {
private static final int CMD_START = 3; private static final int CMD_START = 3;
private static final int CMD_CONFIRM = 4; private static final int CMD_CONFIRM = 4;
private static final int EVENT_PRE_DHCP_ACTION_COMPLETE = 5; 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 EVENT_NETLINK_LINKPROPERTIES_CHANGED = 6;
private static final int CMD_UPDATE_TCP_BUFFER_SIZES = 7; private static final int CMD_UPDATE_TCP_BUFFER_SIZES = 7;
private static final int CMD_UPDATE_HTTP_PROXY = 8; private static final int CMD_UPDATE_HTTP_PROXY = 8;
@@ -429,6 +429,9 @@ public class IpClient extends StateMachine {
return NetdService.getInstance(); return NetdService.getInstance();
} }
/**
* Get interface parameters for the specified interface.
*/
public InterfaceParams getInterfaceParams(String ifname) { public InterfaceParams getInterfaceParams(String ifname) {
return InterfaceParams.getByName(ifname); return InterfaceParams.getByName(ifname);
} }
@@ -446,7 +449,9 @@ public class IpClient extends StateMachine {
INetworkManagementService nwService) { INetworkManagementService nwService) {
this(context, ifName, callback, new Dependencies() { this(context, ifName, callback, new Dependencies() {
@Override @Override
public INetworkManagementService getNMS() { return nwService; } public INetworkManagementService getNMS() {
return nwService;
}
}); });
} }
@@ -517,7 +522,7 @@ public class IpClient extends StateMachine {
private void logMsg(String msg) { private void logMsg(String msg) {
Log.d(mTag, 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() { private void configureAndStartStateMachine() {
// CHECKSTYLE:OFF IndentationCheck
addState(mStoppedState); addState(mStoppedState);
addState(mStartedState); addState(mStartedState);
addState(mRunningState, mStartedState); addState(mRunningState, mStartedState);
addState(mStoppingState); addState(mStoppingState);
// CHECKSTYLE:ON IndentationCheck
setInitialState(mStoppedState); setInitialState(mStoppedState);
@@ -676,18 +683,34 @@ public class IpClient extends StateMachine {
startProvisioning(new android.net.shared.ProvisioningConfiguration()); 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() { public void stop() {
sendMessage(CMD_STOP); sendMessage(CMD_STOP);
} }
/**
* Confirm the provisioning configuration.
*/
public void confirmConfiguration() { public void confirmConfiguration() {
sendMessage(CMD_CONFIRM); 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() { public void completedPreDhcpAction() {
sendMessage(EVENT_PRE_DHCP_ACTION_COMPLETE); sendMessage(EVENT_PRE_DHCP_ACTION_COMPLETE);
} }
/**
* Indicate that packet filter read is complete.
*/
public void readPacketFilterComplete(byte[] data) { public void readPacketFilterComplete(byte[] data) {
sendMessage(EVENT_READ_PACKET_FILTER_COMPLETE, data); sendMessage(EVENT_READ_PACKET_FILTER_COMPLETE, data);
} }
@@ -720,6 +743,9 @@ public class IpClient extends StateMachine {
sendMessage(CMD_SET_MULTICAST_FILTER, enabled); sendMessage(CMD_SET_MULTICAST_FILTER, enabled);
} }
/**
* Dump logs of this IpClient.
*/
public void dump(FileDescriptor fd, PrintWriter writer, String[] args) { public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
if (args != null && args.length > 0 && DUMP_ARG_CONFIRM.equals(args[0])) { if (args != null && args.length > 0 && DUMP_ARG_CONFIRM.equals(args[0])) {
// Execute confirmConfiguration() and take no further action. // Execute confirmConfiguration() and take no further action.
@@ -962,19 +988,25 @@ public class IpClient extends StateMachine {
private void dispatchCallback(ProvisioningChange delta, LinkProperties newLp) { private void dispatchCallback(ProvisioningChange delta, LinkProperties newLp) {
switch (delta) { switch (delta) {
case GAINED_PROVISIONING: case GAINED_PROVISIONING:
if (DBG) { Log.d(mTag, "onProvisioningSuccess()"); } if (DBG) {
Log.d(mTag, "onProvisioningSuccess()");
}
recordMetric(IpManagerEvent.PROVISIONING_OK); recordMetric(IpManagerEvent.PROVISIONING_OK);
mCallback.onProvisioningSuccess(newLp); mCallback.onProvisioningSuccess(newLp);
break; break;
case LOST_PROVISIONING: case LOST_PROVISIONING:
if (DBG) { Log.d(mTag, "onProvisioningFailure()"); } if (DBG) {
Log.d(mTag, "onProvisioningFailure()");
}
recordMetric(IpManagerEvent.PROVISIONING_FAIL); recordMetric(IpManagerEvent.PROVISIONING_FAIL);
mCallback.onProvisioningFailure(newLp); mCallback.onProvisioningFailure(newLp);
break; break;
default: default:
if (DBG) { Log.d(mTag, "onLinkPropertiesChange()"); } if (DBG) {
Log.d(mTag, "onLinkPropertiesChange()");
}
mCallback.onLinkPropertiesChange(newLp); mCallback.onLinkPropertiesChange(newLp);
break; break;
} }
@@ -1118,7 +1150,9 @@ public class IpClient extends StateMachine {
// any addresses upon entry to StoppedState. // any addresses upon entry to StoppedState.
mInterfaceCtrl.clearIPv4Address(); mInterfaceCtrl.clearIPv4Address();
mDhcpResults = null; mDhcpResults = null;
if (DBG) { Log.d(mTag, "onNewDhcpResults(null)"); } if (DBG) {
Log.d(mTag, "onNewDhcpResults(null)");
}
mCallback.onNewDhcpResults(null); mCallback.onNewDhcpResults(null);
handleProvisioningFailure(); handleProvisioningFailure();
@@ -1171,9 +1205,9 @@ public class IpClient extends StateMachine {
} }
private boolean startIPv6() { private boolean startIPv6() {
return mInterfaceCtrl.setIPv6PrivacyExtensions(true) && return mInterfaceCtrl.setIPv6PrivacyExtensions(true)
mInterfaceCtrl.setIPv6AddrGenModeIfSupported(mConfiguration.mIPv6AddrGenMode) && && mInterfaceCtrl.setIPv6AddrGenModeIfSupported(mConfiguration.mIPv6AddrGenMode)
mInterfaceCtrl.enableIPv6(); && mInterfaceCtrl.enableIPv6();
} }
private boolean applyInitialConfig(InitialConfiguration config) { private boolean applyInitialConfig(InitialConfiguration config) {
@@ -1191,10 +1225,10 @@ public class IpClient extends StateMachine {
// settings observer to watch for update and re-program these // settings observer to watch for update and re-program these
// parameters (Q: is this level of dynamic updatability really // parameters (Q: is this level of dynamic updatability really
// necessary or does reading from settings at startup suffice?). // necessary or does reading from settings at startup suffice?).
final int NUM_SOLICITS = 5; final int numSolicits = 5;
final int INTER_SOLICIT_INTERVAL_MS = 750; final int interSolicitIntervalMs = 750;
setNeighborParameters(mDependencies.getNetd(), mInterfaceName, setNeighborParameters(mDependencies.getNetd(), mInterfaceName,
NUM_SOLICITS, INTER_SOLICIT_INTERVAL_MS); numSolicits, interSolicitIntervalMs);
} catch (Exception e) { } catch (Exception e) {
mLog.e("Failed to adjust neighbor parameters", e); mLog.e("Failed to adjust neighbor parameters", e);
// Carry on using the system defaults (currently: 3, 1000); // Carry on using the system defaults (currently: 3, 1000);
@@ -1341,8 +1375,8 @@ public class IpClient extends StateMachine {
mStartTimeMillis = SystemClock.elapsedRealtime(); mStartTimeMillis = SystemClock.elapsedRealtime();
if (mConfiguration.mProvisioningTimeoutMs > 0) { if (mConfiguration.mProvisioningTimeoutMs > 0) {
final long alarmTime = SystemClock.elapsedRealtime() + final long alarmTime = SystemClock.elapsedRealtime()
mConfiguration.mProvisioningTimeoutMs; + mConfiguration.mProvisioningTimeoutMs;
mProvisioningTimeoutAlarm.schedule(alarmTime); mProvisioningTimeoutAlarm.schedule(alarmTime);
} }
@@ -1397,8 +1431,7 @@ public class IpClient extends StateMachine {
} }
private boolean readyToProceed() { private boolean readyToProceed() {
return (!mLinkProperties.hasIPv4Address() && return (!mLinkProperties.hasIPv4Address() && !mLinkProperties.hasGlobalIPv6Address());
!mLinkProperties.hasGlobalIPv6Address());
} }
} }
@@ -1449,7 +1482,7 @@ public class IpClient extends StateMachine {
if (mConfiguration.mUsingMultinetworkPolicyTracker) { if (mConfiguration.mUsingMultinetworkPolicyTracker) {
mMultinetworkPolicyTracker = new MultinetworkPolicyTracker( mMultinetworkPolicyTracker = new MultinetworkPolicyTracker(
mContext, getHandler(), mContext, getHandler(),
() -> { mLog.log("OBSERVED AvoidBadWifi changed"); }); () -> mLog.log("OBSERVED AvoidBadWifi changed"));
mMultinetworkPolicyTracker.start(); mMultinetworkPolicyTracker.start();
} }
@@ -1510,8 +1543,8 @@ public class IpClient extends StateMachine {
if (!mDhcpActionInFlight) { if (!mDhcpActionInFlight) {
mCallback.onPreDhcpAction(); mCallback.onPreDhcpAction();
mDhcpActionInFlight = true; mDhcpActionInFlight = true;
final long alarmTime = SystemClock.elapsedRealtime() + final long alarmTime = SystemClock.elapsedRealtime()
mConfiguration.mRequestedPreDhcpActionMs; + mConfiguration.mRequestedPreDhcpActionMs;
mDhcpActionTimeoutAlarm.schedule(alarmTime); mDhcpActionTimeoutAlarm.schedule(alarmTime);
} }
} }
@@ -1680,16 +1713,18 @@ public class IpClient extends StateMachine {
} }
private static void setNeighborParameters( 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 { throws RemoteException, IllegalArgumentException {
Preconditions.checkNotNull(netd); Preconditions.checkNotNull(netd);
Preconditions.checkArgument(!TextUtils.isEmpty(ifName)); Preconditions.checkArgument(!TextUtils.isEmpty(ifName));
Preconditions.checkArgument(num_solicits > 0); Preconditions.checkArgument(numSolicits > 0);
Preconditions.checkArgument(inter_solicit_interval_ms > 0); Preconditions.checkArgument(interSolicitIntervalMs > 0);
for (int family : new Integer[]{INetd.IPV4, INetd.IPV6}) { 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, "retrans_time_ms",
netd.setProcSysNet(family, INetd.NEIGH, ifName, "ucast_solicit", Integer.toString(num_solicits)); Integer.toString(interSolicitIntervalMs));
netd.setProcSysNet(family, INetd.NEIGH, ifName, "ucast_solicit",
Integer.toString(numSolicits));
} }
} }

View File

@@ -16,8 +16,8 @@
package android.net.ip; 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.RTM_DELNEIGH;
import static android.net.netlink.NetlinkConstants.hexify;
import static android.net.netlink.NetlinkConstants.stringForNlMsgType; import static android.net.netlink.NetlinkConstants.stringForNlMsgType;
import android.net.MacAddress; import android.net.MacAddress;
@@ -26,7 +26,6 @@ import android.net.netlink.NetlinkMessage;
import android.net.netlink.NetlinkSocket; import android.net.netlink.NetlinkSocket;
import android.net.netlink.RtNetlinkNeighborMessage; import android.net.netlink.RtNetlinkNeighborMessage;
import android.net.netlink.StructNdMsg; import android.net.netlink.StructNdMsg;
import android.net.netlink.StructNlMsgHdr;
import android.net.util.PacketReader; import android.net.util.PacketReader;
import android.net.util.SharedLog; import android.net.util.SharedLog;
import android.os.Handler; import android.os.Handler;

View File

@@ -18,11 +18,15 @@ package android.net.ip;
import static android.net.util.NetworkConstants.IPV6_MIN_MTU; import static android.net.util.NetworkConstants.IPV6_MIN_MTU;
import static android.net.util.NetworkConstants.RFC7421_PREFIX_LENGTH; 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.IpPrefix;
import android.net.LinkAddress; import android.net.LinkAddress;
import android.net.LinkProperties;
import android.net.NetworkUtils; import android.net.NetworkUtils;
import android.net.TrafficStats; import android.net.TrafficStats;
import android.net.util.InterfaceParams; import android.net.util.InterfaceParams;
@@ -34,10 +38,8 @@ import android.util.Log;
import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.GuardedBy;
import libcore.io.IoBridge; import libcore.io.IoBridge;
import libcore.util.HexEncoding;
import java.io.FileDescriptor; import java.io.FileDescriptor;
import java.io.InterruptedIOException;
import java.io.IOException; import java.io.IOException;
import java.net.Inet6Address; import java.net.Inet6Address;
import java.net.InetAddress; import java.net.InetAddress;
@@ -47,7 +49,6 @@ import java.net.UnknownHostException;
import java.nio.BufferOverflowException; import java.nio.BufferOverflowException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;

View File

@@ -16,22 +16,15 @@
package android.net.netlink; 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_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_REPLACE;
import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST; 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 static java.nio.ByteOrder.BIG_ENDIAN;
import android.system.OsConstants; import android.system.OsConstants;
import android.util.Log;
import java.net.Inet4Address; import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;

View File

@@ -16,19 +16,56 @@
package android.net.util; 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.MacAddress;
import android.net.dhcp.DhcpPacket;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.util.Arrays;
import java.util.StringJoiner; import java.util.StringJoiner;
import static android.system.OsConstants.*;
import static android.net.util.NetworkConstants.*;
/** /**
* Critical connectivity packet summarizing class. * Critical connectivity packet summarizing class.

View File

@@ -19,7 +19,6 @@ package android.net.util;
import android.net.INetd; import android.net.INetd;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.ServiceSpecificException;
import android.os.SystemClock; import android.os.SystemClock;
import android.util.Log; import android.util.Log;

View File

@@ -16,19 +16,18 @@
package android.net.util; package android.net.util;
import static android.net.util.NetworkConstants.*;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import android.net.MacAddress; import android.net.MacAddress;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.filters.SmallTest; import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
import org.junit.runner.RunWith;
import org.junit.Test;
import libcore.util.HexEncoding; import libcore.util.HexEncoding;
import org.junit.Test;
import org.junit.runner.RunWith;
/** /**
* Tests for ConnectivityPacketSummary. * Tests for ConnectivityPacketSummary.
* *