Merge "Some fixes in ConnectivityService event logging" into nyc-dev

This commit is contained in:
Hugo Benichi
2016-04-21 04:02:54 +00:00
committed by Android (Google) Code Review
3 changed files with 37 additions and 36 deletions

View File

@@ -26033,11 +26033,11 @@ package android.net.metrics {
field public final int state; field public final int state;
} }
public final class ConnectivityServiceChangeEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable { public final class DefaultNetworkEvent extends android.net.metrics.IpConnectivityEvent implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public static void logEvent(int, int[], int, boolean, boolean); method public static void logEvent(int, int[], int, boolean, boolean);
method public void writeToParcel(android.os.Parcel, int); method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.net.metrics.ConnectivityServiceChangeEvent> CREATOR; field public static final android.os.Parcelable.Creator<android.net.metrics.DefaultNetworkEvent> CREATOR;
field public final int netId; field public final int netId;
field public final boolean prevIPv4; field public final boolean prevIPv4;
field public final boolean prevIPv6; field public final boolean prevIPv6;

View File

@@ -24,8 +24,7 @@ import android.os.Parcelable;
* {@hide} * {@hide}
*/ */
@SystemApi @SystemApi
public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent public final class DefaultNetworkEvent extends IpConnectivityEvent implements Parcelable {
implements Parcelable {
// 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.
public final int netId; public final int netId;
// 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
@@ -37,7 +36,7 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
public final boolean prevIPv4; public final boolean prevIPv4;
public final boolean prevIPv6; public final boolean prevIPv6;
private ConnectivityServiceChangeEvent(int netId, int[] transportTypes, private DefaultNetworkEvent(int netId, int[] transportTypes,
int prevNetId, boolean prevIPv4, boolean prevIPv6) { int prevNetId, boolean prevIPv4, boolean prevIPv6) {
this.netId = netId; this.netId = netId;
this.transportTypes = transportTypes; this.transportTypes = transportTypes;
@@ -46,7 +45,7 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
this.prevIPv6 = prevIPv6; this.prevIPv6 = prevIPv6;
} }
private ConnectivityServiceChangeEvent(Parcel in) { private DefaultNetworkEvent(Parcel in) {
this.netId = in.readInt(); this.netId = in.readInt();
this.transportTypes = in.createIntArray(); this.transportTypes = in.createIntArray();
this.prevNetId = in.readInt(); this.prevNetId = in.readInt();
@@ -66,21 +65,21 @@ public final class ConnectivityServiceChangeEvent extends IpConnectivityEvent
return 0; return 0;
} }
public static final Parcelable.Creator<ConnectivityServiceChangeEvent> CREATOR public static final Parcelable.Creator<DefaultNetworkEvent> CREATOR
= new Parcelable.Creator<ConnectivityServiceChangeEvent>() { = new Parcelable.Creator<DefaultNetworkEvent>() {
public ConnectivityServiceChangeEvent createFromParcel(Parcel in) { public DefaultNetworkEvent createFromParcel(Parcel in) {
return new ConnectivityServiceChangeEvent(in); return new DefaultNetworkEvent(in);
} }
public ConnectivityServiceChangeEvent[] newArray(int size) { public DefaultNetworkEvent[] newArray(int size) {
return new ConnectivityServiceChangeEvent[size]; return new DefaultNetworkEvent[size];
} }
}; };
public static void logEvent(int netId, int[] transportTypes, public static void logEvent(
int prevNetId, boolean prevIPv4, boolean prevIPv6) { int netId, int[] transports, int prevNetId, boolean hadIPv4, boolean hadIPv6) {
logEvent(IPCE_CONSRV_DEFAULT_NET_CHANGE, final DefaultNetworkEvent ev =
new ConnectivityServiceChangeEvent( new DefaultNetworkEvent(netId, transports, prevNetId, hadIPv4, hadIPv6);
netId, transportTypes, prevNetId, prevIPv4, prevIPv6)); logEvent(IPCE_CONSRV_DEFAULT_NET_CHANGE, ev);
} }
}; };

View File

@@ -71,7 +71,7 @@ import android.net.ProxyInfo;
import android.net.RouteInfo; import android.net.RouteInfo;
import android.net.UidRange; import android.net.UidRange;
import android.net.Uri; import android.net.Uri;
import android.net.metrics.ConnectivityServiceChangeEvent; import android.net.metrics.DefaultNetworkEvent;
import android.os.Binder; import android.os.Binder;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
@@ -2217,7 +2217,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.
logConnectivityServiceChangeEvent(null, nai); logDefaultNetworkEvent(null, nai);
} }
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
@@ -4452,8 +4452,7 @@ 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());
logDefaultNetworkEvent(newNetwork, prevNetwork);
logConnectivityServiceChangeEvent(newNetwork, prevNetwork);
} }
// Handles a network appearing or improving its score. // Handles a network appearing or improving its score.
@@ -5075,21 +5074,24 @@ public class ConnectivityService extends IConnectivityManager.Stub
return new NetworkMonitor(context, handler, nai, defaultRequest); return new NetworkMonitor(context, handler, nai, defaultRequest);
} }
private static void logConnectivityServiceChangeEvent( private static void logDefaultNetworkEvent(NetworkAgentInfo newNai, NetworkAgentInfo prevNai) {
NetworkAgentInfo next, NetworkAgentInfo prev) { int newNetid = NETID_UNSET;
final int newNetId = (next == null) ? NETID_UNSET : next.network.netId; int prevNetid = NETID_UNSET;
final int[] newTransportTypes = (next == null) int[] transports = new int[0];
? new int[0] boolean hadIPv4 = false;
: next.networkCapabilities.getTransportTypes(); boolean hadIPv6 = false;
final int oldNetId = (prev == null) ? NETID_UNSET : prev.network.netId; if (newNai != null) {
final boolean hadIPv4 = (prev != null) && newNetid = newNai.network.netId;
prev.linkProperties.hasIPv4Address() && transports = newNai.networkCapabilities.getTransportTypes();
prev.linkProperties.hasIPv4DefaultRoute(); }
final boolean hadIPv6 = (prev != null) && if (prevNai != null) {
prev.linkProperties.hasGlobalIPv6Address() && prevNetid = prevNai.network.netId;
prev.linkProperties.hasIPv6DefaultRoute(); final LinkProperties lp = prevNai.linkProperties;
ConnectivityServiceChangeEvent.logEvent(newNetId, newTransportTypes, hadIPv4 = lp.hasIPv4Address() && lp.hasIPv4DefaultRoute();
oldNetId, hadIPv4, hadIPv6); hadIPv6 = lp.hasGlobalIPv6Address() && lp.hasIPv6DefaultRoute();
}
DefaultNetworkEvent.logEvent(newNetid, transports, prevNetid, hadIPv4, hadIPv6);
} }
} }