Loading services/core/java/com/android/server/connectivity/Vpn.java +5 −0 Original line number Diff line number Diff line Loading @@ -4773,6 +4773,11 @@ public class Vpn { pw.increaseIndent(); mEventChanges.reverseDump(pw); pw.decreaseIndent(); if (mVpnConnectivityMetrics != null) { pw.println(); mVpnConnectivityMetrics.dump(pw); } } } Loading services/core/java/com/android/server/connectivity/VpnConnectivityMetrics.java +22 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import android.net.LinkAddress; import android.net.Network; import android.net.NetworkCapabilities; import android.net.VpnManager; import android.util.IndentingPrintWriter; import android.util.LocalLog; import android.util.Log; import android.util.SparseArray; import android.util.SparseIntArray; Loading @@ -56,6 +58,8 @@ import java.util.List; */ public class VpnConnectivityMetrics { private static final String TAG = VpnConnectivityMetrics.class.getSimpleName(); private static final int MAX_LOG_RECORDS = 100; private final LocalLog mMetricLogs = new LocalLog(MAX_LOG_RECORDS); // Copied from corenetworking platform vpn enum @VisibleForTesting static final int VPN_TYPE_UNKNOWN = 0; Loading Loading @@ -454,6 +458,14 @@ public class VpnConnectivityMetrics { private void validateAndReportVpnConnectionEvent(boolean connected) { validateAndCorrectMetrics(); mMetricLogs.log("Report VPN connection event: " + (connected ? "CONNECTED" : "DISCONNECTED") + ", vpnType=" + mVpnType + ", vpnProfileType=" + mVpnProfileType + ", underlyingNetworkTypes=" + Arrays.toString(mUnderlyingNetworkTypes) + ", vpnNetworkIpProtocol=" + mVpnNetworkIpProtocol + ", serverIpProtocol=" + mServerIpProtocol + ", allowedAlgorithms=" + mAllowedAlgorithms + ", mtu=" + mMtu); mDependencies.statsWrite( mVpnType, mVpnNetworkIpProtocol, Loading Loading @@ -501,4 +513,14 @@ public class VpnConnectivityMetrics { mMtu = 0; mUnderlyingNetworkTypes = new int[0]; } /** * Dumps the local log buffer. */ public void dump(IndentingPrintWriter pw) { pw.println("VpnConnectivityMetrics logs (most recent first):"); pw.increaseIndent(); mMetricLogs.reverseDump(pw); pw.decreaseIndent(); } } Loading
services/core/java/com/android/server/connectivity/Vpn.java +5 −0 Original line number Diff line number Diff line Loading @@ -4773,6 +4773,11 @@ public class Vpn { pw.increaseIndent(); mEventChanges.reverseDump(pw); pw.decreaseIndent(); if (mVpnConnectivityMetrics != null) { pw.println(); mVpnConnectivityMetrics.dump(pw); } } } Loading
services/core/java/com/android/server/connectivity/VpnConnectivityMetrics.java +22 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ import android.net.LinkAddress; import android.net.Network; import android.net.NetworkCapabilities; import android.net.VpnManager; import android.util.IndentingPrintWriter; import android.util.LocalLog; import android.util.Log; import android.util.SparseArray; import android.util.SparseIntArray; Loading @@ -56,6 +58,8 @@ import java.util.List; */ public class VpnConnectivityMetrics { private static final String TAG = VpnConnectivityMetrics.class.getSimpleName(); private static final int MAX_LOG_RECORDS = 100; private final LocalLog mMetricLogs = new LocalLog(MAX_LOG_RECORDS); // Copied from corenetworking platform vpn enum @VisibleForTesting static final int VPN_TYPE_UNKNOWN = 0; Loading Loading @@ -454,6 +458,14 @@ public class VpnConnectivityMetrics { private void validateAndReportVpnConnectionEvent(boolean connected) { validateAndCorrectMetrics(); mMetricLogs.log("Report VPN connection event: " + (connected ? "CONNECTED" : "DISCONNECTED") + ", vpnType=" + mVpnType + ", vpnProfileType=" + mVpnProfileType + ", underlyingNetworkTypes=" + Arrays.toString(mUnderlyingNetworkTypes) + ", vpnNetworkIpProtocol=" + mVpnNetworkIpProtocol + ", serverIpProtocol=" + mServerIpProtocol + ", allowedAlgorithms=" + mAllowedAlgorithms + ", mtu=" + mMtu); mDependencies.statsWrite( mVpnType, mVpnNetworkIpProtocol, Loading Loading @@ -501,4 +513,14 @@ public class VpnConnectivityMetrics { mMtu = 0; mUnderlyingNetworkTypes = new int[0]; } /** * Dumps the local log buffer. */ public void dump(IndentingPrintWriter pw) { pw.println("VpnConnectivityMetrics logs (most recent first):"); pw.increaseIndent(); mMetricLogs.reverseDump(pw); pw.decreaseIndent(); } }