summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo-Chun Lee <pochunlee@google.com>2023-04-26 20:40:36 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-04-26 20:40:36 +0000
commit34681c851c95d4ff30c97448a76261c12a2a6b5b (patch)
tree0852a7a548ca80741e5cf849b54955622a435e89
parent6744de247b08a4bc9b3484b01e7ab5099bac4279 (diff)
parentfcc0cf9da94adfd4a819f80b59f14b8ebe1b68dc (diff)
downloadIwlan-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.java3
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java28
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 =