Merge "Also log IPv4 and IPv6 connectivity of any previous default network" into nyc-dev

am: 0628d32

* commit '0628d324d0f1c2116c051faadd8e4bf26206b1a6':
  Also log IPv4 and IPv6 connectivity of any previous default network

Change-Id: Ibcbd79a6674cf062138ccbd031d14721b0367e22
This commit is contained in:
Erik Kline
2016-04-14 10:20:17 +00:00
committed by android-build-merger
2 changed files with 41 additions and 14 deletions

View File

@@ -27,28 +27,38 @@ public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implemen
// The ID of the network that has become the new default or NETID_UNSET if none. // The ID of the network that has become the new default or NETID_UNSET if none.
private final int mNetId; private final int mNetId;
// The ID of the network that was the default before or NETID_UNSET if none.
private final int mPrevNetId;
// The list of transport types of the new default network, for example TRANSPORT_WIFI, as // The list of transport types of the new default network, for example TRANSPORT_WIFI, as
// defined in NetworkCapabilities.java. // defined in NetworkCapabilities.java.
private final int[] mTransportTypes; private final int[] mTransportTypes;
// The ID of the network that was the default before or NETID_UNSET if none.
private final int mPrevNetId;
// Whether the previous network had IPv4/IPv6 connectivity.
private final boolean mPrevIPv4;
private final boolean mPrevIPv6;
public ConnectivityServiceChangeEvent(int netId, int prevNetId, int[] transportTypes) { public ConnectivityServiceChangeEvent(int netId, int[] transportTypes,
int prevNetId, boolean prevIPv4, boolean prevIPv6) {
mNetId = netId; mNetId = netId;
mPrevNetId = prevNetId;
mTransportTypes = transportTypes; mTransportTypes = transportTypes;
mPrevNetId = prevNetId;
mPrevIPv4 = prevIPv4;
mPrevIPv6 = prevIPv6;
} }
public ConnectivityServiceChangeEvent(Parcel in) { public ConnectivityServiceChangeEvent(Parcel in) {
mNetId = in.readInt(); mNetId = in.readInt();
mPrevNetId = in.readInt();
mTransportTypes = in.createIntArray(); mTransportTypes = in.createIntArray();
mPrevNetId = in.readInt();
mPrevIPv4 = (in.readByte() > 0);
mPrevIPv6 = (in.readByte() > 0);
} }
public void writeToParcel(Parcel out, int flags) { public void writeToParcel(Parcel out, int flags) {
out.writeInt(mNetId); out.writeInt(mNetId);
out.writeInt(mPrevNetId);
out.writeIntArray(mTransportTypes); out.writeIntArray(mTransportTypes);
out.writeInt(mPrevNetId);
out.writeByte(mPrevIPv4 ? (byte) 1 : (byte) 0);
out.writeByte(mPrevIPv6 ? (byte) 1 : (byte) 0);
} }
public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR
@@ -62,8 +72,10 @@ public class ConnectivityServiceChangeEvent extends IpConnectivityEvent implemen
} }
}; };
public static void logEvent(int netId, int prevNetId, int[] transportTypes) { public static void logEvent(int netId, int[] transportTypes,
int prevNetId, boolean prevIPv4, boolean prevIPv6) {
IpConnectivityEvent.logEvent(IpConnectivityEvent.IPCE_CONSRV_DEFAULT_NET_CHANGE, IpConnectivityEvent.logEvent(IpConnectivityEvent.IPCE_CONSRV_DEFAULT_NET_CHANGE,
new ConnectivityServiceChangeEvent(netId, prevNetId, transportTypes)); new ConnectivityServiceChangeEvent(
netId, transportTypes, prevNetId, prevIPv4, prevIPv6));
} }
}; };

View File

@@ -2208,9 +2208,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
rematchAllNetworksAndRequests(null, 0); rematchAllNetworksAndRequests(null, 0);
if (wasDefault && getDefaultNetwork() == null) { if (wasDefault && getDefaultNetwork() == null) {
// Log that we lost the default network and there is no replacement. // Log that we lost the default network and there is no replacement.
final int[] transportTypes = new int[0]; logConnectivityServiceChangeEvent(null, nai);
ConnectivityServiceChangeEvent.logEvent(NETID_UNSET, nai.network.netId,
transportTypes);
} }
if (nai.created) { if (nai.created) {
// Tell netd to clean up the configuration for this network // Tell netd to clean up the configuration for this network
@@ -4434,7 +4432,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
} }
private void makeDefault(NetworkAgentInfo newNetwork, NetworkAgentInfo prevNetwork) { private void makeDefault(NetworkAgentInfo newNetwork, NetworkAgentInfo prevNetwork) {
int prevNetId = (prevNetwork == null) ? NETID_UNSET : prevNetwork.network.netId;
if (DBG) log("Switching to new default network: " + newNetwork); if (DBG) log("Switching to new default network: " + newNetwork);
setupDataActivityTracking(newNetwork); setupDataActivityTracking(newNetwork);
try { try {
@@ -4446,8 +4443,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy()); handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
updateTcpBufferSizes(newNetwork); updateTcpBufferSizes(newNetwork);
setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers()); setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
ConnectivityServiceChangeEvent.logEvent(newNetwork.network.netId, prevNetId,
newNetwork.networkCapabilities.getTransportTypes()); logConnectivityServiceChangeEvent(newNetwork, prevNetwork);
} }
// Handles a network appearing or improving its score. // Handles a network appearing or improving its score.
@@ -5068,4 +5065,22 @@ public class ConnectivityService extends IConnectivityManager.Stub
NetworkAgentInfo nai, NetworkRequest defaultRequest) { NetworkAgentInfo nai, NetworkRequest defaultRequest) {
return new NetworkMonitor(context, handler, nai, defaultRequest); return new NetworkMonitor(context, handler, nai, defaultRequest);
} }
private static void logConnectivityServiceChangeEvent(
NetworkAgentInfo next, NetworkAgentInfo prev) {
final int newNetId = (next == null) ? NETID_UNSET : next.network.netId;
final int[] newTransportTypes = (next == null)
? new int[0]
: next.networkCapabilities.getTransportTypes();
final int oldNetId = (prev == null) ? NETID_UNSET : prev.network.netId;
final boolean hadIPv4 = (prev != null) &&
prev.linkProperties.hasIPv4Address() &&
prev.linkProperties.hasIPv4DefaultRoute();
final boolean hadIPv6 = (prev != null) &&
prev.linkProperties.hasGlobalIPv6Address() &&
prev.linkProperties.hasIPv6DefaultRoute();
ConnectivityServiceChangeEvent.logEvent(newNetId, newTransportTypes,
oldNetId, hadIPv4, hadIPv6);
}
} }