diff options
author | Po-Chun Lee <pochunlee@google.com> | 2023-04-26 20:40:36 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-04-26 20:40:36 +0000 |
commit | 34681c851c95d4ff30c97448a76261c12a2a6b5b (patch) | |
tree | 0852a7a548ca80741e5cf849b54955622a435e89 | |
parent | 6744de247b08a4bc9b3484b01e7ab5099bac4279 (diff) | |
parent | fcc0cf9da94adfd4a819f80b59f14b8ebe1b68dc (diff) | |
download | Iwlan-34681c851c95d4ff30c97448a76261c12a2a6b5b.tar.gz |
Merge "Avoid closing IKE during bring-up if Network is not updated" into udc-dev
-rw-r--r-- | src/com/google/android/iwlan/IwlanDataService.java | 3 | ||||
-rw-r--r-- | test/com/google/android/iwlan/IwlanDataServiceTest.java | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java index 8759c6a..2f3ed2b 100644 --- a/src/com/google/android/iwlan/IwlanDataService.java +++ b/src/com/google/android/iwlan/IwlanDataService.java @@ -969,6 +969,9 @@ public class IwlanDataService extends DataService { getTunnelManager().updateNetwork(network, linkProperties); } + if (network.equals(sNetwork)) { + return; + } for (Map.Entry<String, TunnelState> entry : mTunnelStateForApn.entrySet()) { TunnelState tunnelState = entry.getValue(); if (tunnelState.getState() == TunnelState.TUNNEL_IN_BRINGUP) { diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java index 4e53836..98fd3eb 100644 --- a/test/com/google/android/iwlan/IwlanDataServiceTest.java +++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java @@ -408,6 +408,34 @@ public class IwlanDataServiceTest { } @Test + public void testOnLinkPropertiesChangedForBringingUpIkeSession() { + DataProfile dp = buildImsDataProfile(); + + NetworkCallback networkCallback = getNetworkMonitorCallback(); + onSystemDefaultNetworkConnected(mMockNetwork, mLinkProperties, TRANSPORT_WIFI); + + clearInvocations(mMockEpdgTunnelManager); + + mSpyIwlanDataServiceProvider.setTunnelState( + dp, + mMockDataServiceCallback, + TunnelState.TUNNEL_IN_BRINGUP, + null, /* linkProperties */ + false /* isHandover */, + 1 /* pduSessionId */, + true /* isImsOrEmergency */); + + LinkProperties newLinkProperties = new LinkProperties(mLinkProperties); + newLinkProperties.setInterfaceName("wlan0"); + newLinkProperties.addLinkAddress(mMockIPv6LinkAddress); + + networkCallback.onLinkPropertiesChanged(mMockNetwork, newLinkProperties); + verify(mMockEpdgTunnelManager, times(1)) + .updateNetwork(eq(mMockNetwork), eq(newLinkProperties)); + verify(mMockEpdgTunnelManager, never()).closeTunnel(any(), anyBoolean(), any(), any()); + } + + @Test public void testNetworkNotConnectedWithCellularAndCrossSimDisabled() throws InterruptedException { NetworkCapabilities nc = |