Merge "Log VCN Gateway Connection safe mode transitions." into main
This commit is contained in:
commit
a1fdea2259
3 changed files with 22 additions and 2 deletions
|
|
@ -106,6 +106,7 @@ import com.android.internal.util.WakeupMessage;
|
|||
import com.android.modules.utils.HandlerExecutor;
|
||||
import com.android.server.vcn.TelephonySubscriptionTracker.TelephonySubscriptionSnapshot;
|
||||
import com.android.server.vcn.Vcn.VcnGatewayStatusCallback;
|
||||
import com.android.server.vcn.metrics.VcnMetrics;
|
||||
import com.android.server.vcn.routeselection.UnderlyingNetworkController;
|
||||
import com.android.server.vcn.routeselection.UnderlyingNetworkController.UnderlyingNetworkControllerCallback;
|
||||
import com.android.server.vcn.routeselection.UnderlyingNetworkRecord;
|
||||
|
|
@ -626,6 +627,7 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
@NonNull private final UnderlyingNetworkController mUnderlyingNetworkController;
|
||||
@NonNull private final VcnGatewayConnectionConfig mConnectionConfig;
|
||||
@NonNull private final VcnGatewayStatusCallback mGatewayStatusCallback;
|
||||
@NonNull private final VcnMetrics mVcnMetrics;
|
||||
@NonNull private final Dependencies mDeps;
|
||||
|
||||
@NonNull
|
||||
|
|
@ -634,6 +636,7 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
@NonNull private final VcnConnectivityDiagnosticsCallback mConnectivityDiagnosticsCallback;
|
||||
|
||||
private final boolean mIsMobileDataEnabled;
|
||||
private final int mId = System.identityHashCode(this);
|
||||
|
||||
@NonNull private final IpSecManager mIpSecManager;
|
||||
@NonNull private final ConnectivityManager mConnectivityManager;
|
||||
|
|
@ -787,6 +790,7 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
Objects.requireNonNull(gatewayStatusCallback, "Missing gatewayStatusCallback");
|
||||
mIsMobileDataEnabled = isMobileDataEnabled;
|
||||
mDeps = Objects.requireNonNull(deps, "Missing deps");
|
||||
mVcnMetrics = mDeps.newVcnMetrics();
|
||||
|
||||
mLastSnapshot = Objects.requireNonNull(snapshot, "Missing snapshot");
|
||||
|
||||
|
|
@ -1522,6 +1526,9 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
|
||||
// Connectivity for this GatewayConnection is broken; tear down the Network.
|
||||
teardownNetwork();
|
||||
if (!mIsInSafeMode) {
|
||||
mVcnMetrics.logEnterSafeMode(mId);
|
||||
}
|
||||
mIsInSafeMode = true;
|
||||
mGatewayStatusCallback.onSafeModeStatusChanged();
|
||||
}
|
||||
|
|
@ -1893,6 +1900,9 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
mFailedAttempts = 0;
|
||||
cancelSafeModeAlarm();
|
||||
|
||||
if (mIsInSafeMode) {
|
||||
mVcnMetrics.logExitSafeMode(mId);
|
||||
}
|
||||
mIsInSafeMode = false;
|
||||
mGatewayStatusCallback.onSafeModeStatusChanged();
|
||||
}
|
||||
|
|
@ -2514,8 +2524,7 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
+ LogUtils.getHashedSubscriptionGroup(mSubscriptionGroup)
|
||||
+ "-"
|
||||
+ mConnectionConfig.getGatewayConnectionName()
|
||||
+ "-"
|
||||
+ System.identityHashCode(this)
|
||||
+ "-" + mId
|
||||
+ ") ";
|
||||
}
|
||||
|
||||
|
|
@ -2743,6 +2752,11 @@ public class VcnGatewayConnection extends StateMachine {
|
|||
/** External dependencies used by VcnGatewayConnection, for injection in tests */
|
||||
@VisibleForTesting(visibility = Visibility.PRIVATE)
|
||||
public static class Dependencies {
|
||||
/** Builds a new VcnMetrics. */
|
||||
public VcnMetrics newVcnMetrics() {
|
||||
return new VcnMetrics();
|
||||
}
|
||||
|
||||
/** Builds a new UnderlyingNetworkController. */
|
||||
public UnderlyingNetworkController newUnderlyingNetworkController(
|
||||
VcnContext vcnContext,
|
||||
|
|
|
|||
|
|
@ -626,6 +626,7 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection
|
|||
|
||||
verifySafeModeStateAndCallbackFired(2 /* invocationCount */, false /* isInSafeMode */);
|
||||
assertFalse(mGatewayConnection.isInSafeMode());
|
||||
verify(mVcnMetrics).logExitSafeMode(anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -654,6 +655,7 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection
|
|||
mTestLooper.dispatchAll();
|
||||
|
||||
verifySafeModeStateAndCallbackFired(2 /* invocationCount */, true /* isInSafeMode */);
|
||||
verify(mVcnMetrics).logEnterSafeMode(anyInt());
|
||||
}
|
||||
|
||||
private void verifySetSafeModeAlarm(
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ import com.android.server.vcn.VcnGatewayConnection.VcnChildSessionCallback;
|
|||
import com.android.server.vcn.VcnGatewayConnection.VcnIkeSession;
|
||||
import com.android.server.vcn.VcnGatewayConnection.VcnNetworkAgent;
|
||||
import com.android.server.vcn.VcnGatewayConnection.VcnWakeLock;
|
||||
import com.android.server.vcn.metrics.VcnMetrics;
|
||||
import com.android.server.vcn.routeselection.UnderlyingNetworkController;
|
||||
import com.android.server.vcn.routeselection.UnderlyingNetworkRecord;
|
||||
|
||||
|
|
@ -173,6 +174,7 @@ public class VcnGatewayConnectionTestBase {
|
|||
@NonNull protected final WakeupMessage mDisconnectRequestAlarm;
|
||||
@NonNull protected final WakeupMessage mRetryTimeoutAlarm;
|
||||
@NonNull protected final WakeupMessage mSafeModeTimeoutAlarm;
|
||||
@NonNull protected final VcnMetrics mVcnMetrics;
|
||||
|
||||
@NonNull protected final IpSecService mIpSecSvc;
|
||||
@NonNull protected final ConnectivityManager mConnMgr;
|
||||
|
|
@ -199,6 +201,7 @@ public class VcnGatewayConnectionTestBase {
|
|||
mDisconnectRequestAlarm = mock(WakeupMessage.class);
|
||||
mRetryTimeoutAlarm = mock(WakeupMessage.class);
|
||||
mSafeModeTimeoutAlarm = mock(WakeupMessage.class);
|
||||
mVcnMetrics = mock(VcnMetrics.class);
|
||||
|
||||
mIpSecSvc = mock(IpSecService.class);
|
||||
setupIpSecManager(mContext, mIpSecSvc);
|
||||
|
|
@ -226,6 +229,7 @@ public class VcnGatewayConnectionTestBase {
|
|||
doReturn(mUnderlyingNetworkController)
|
||||
.when(mDeps)
|
||||
.newUnderlyingNetworkController(any(), any(), any(), any(), any());
|
||||
doReturn(mVcnMetrics).when(mDeps).newVcnMetrics();
|
||||
doReturn(mWakeLock)
|
||||
.when(mDeps)
|
||||
.newWakeLock(eq(mContext), eq(PowerManager.PARTIAL_WAKE_LOCK), any());
|
||||
|
|
|
|||
Loading…
Reference in a new issue