Merge "Verify the update of shouldLongLivedTcpExcluded in VpnTransportInfo"

This commit is contained in:
Chiachang Wang
2023-03-25 04:12:22 +00:00
committed by Gerrit Code Review

View File

@@ -48,6 +48,7 @@ import static android.telephony.CarrierConfigManager.KEY_PREFERRED_IKE_PROTOCOL_
import static com.android.net.module.util.NetworkStackConstants.IPV6_MIN_MTU;
import static com.android.server.connectivity.Vpn.AUTOMATIC_KEEPALIVE_DELAY_SECONDS;
import static com.android.server.connectivity.Vpn.DEFAULT_LONG_LIVED_TCP_CONNS_EXPENSIVE_TIMEOUT_SEC;
import static com.android.server.connectivity.Vpn.DEFAULT_UDP_PORT_4500_NAT_TIMEOUT_SEC_INT;
import static com.android.server.connectivity.Vpn.PREFERRED_IKE_PROTOCOL_AUTO;
import static com.android.server.connectivity.Vpn.PREFERRED_IKE_PROTOCOL_IPV4_UDP;
@@ -1860,6 +1861,13 @@ public class VpnTest extends VpnTestBase {
private PlatformVpnSnapshot verifySetupPlatformVpn(VpnProfile vpnProfile,
IkeSessionConfiguration ikeConfig, boolean mtuSupportsIpv6) throws Exception {
return verifySetupPlatformVpn(vpnProfile, ikeConfig, mtuSupportsIpv6,
false /* areLongLivedTcpConnectionsExpensive */);
}
private PlatformVpnSnapshot verifySetupPlatformVpn(VpnProfile vpnProfile,
IkeSessionConfiguration ikeConfig, boolean mtuSupportsIpv6,
boolean areLongLivedTcpConnectionsExpensive) throws Exception {
if (!mtuSupportsIpv6) {
doReturn(IPV6_MIN_MTU - 1).when(mTestDeps).calculateVpnMtu(any(), anyInt(), anyInt(),
anyBoolean());
@@ -1942,8 +1950,10 @@ public class VpnTest extends VpnTestBase {
// Check if allowBypass is set or not.
assertTrue(nacCaptor.getValue().isBypassableVpn());
assertTrue(((VpnTransportInfo) ncCaptor.getValue().getTransportInfo()).isBypassable());
final VpnTransportInfo info = (VpnTransportInfo) ncCaptor.getValue().getTransportInfo();
assertTrue(info.isBypassable());
assertEquals(areLongLivedTcpConnectionsExpensive,
info.areLongLivedTcpConnectionsExpensive());
return new PlatformVpnSnapshot(vpn, nwCb, ikeCb, childCb);
}
@@ -2069,7 +2079,8 @@ public class VpnTest extends VpnTestBase {
final PlatformVpnSnapshot vpnSnapShot =
verifySetupPlatformVpn(profile,
createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */),
false /* mtuSupportsIpv6 */);
false /* mtuSupportsIpv6 */,
expectedKeepalive < DEFAULT_LONG_LIVED_TCP_CONNS_EXPENSIVE_TIMEOUT_SEC);
// Simulate a new network coming up
vpnSnapShot.nwCb.onAvailable(TEST_NETWORK_2);
verify(mIkeSessionWrapper, never()).setNetwork(any(), anyInt(), anyInt(), anyInt());
@@ -2116,7 +2127,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_IPV4_UDP,
AUTOMATIC_KEEPALIVE_DELAY_SECONDS /* expectedKeepaliveTimer */,
ESP_IP_VERSION_AUTO /* expectedIpVersion */,
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */);
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
false /* expectedReadFromCarrierConfig*/,
true /* areLongLivedTcpConnectionsExpensive */);
}
@Test
@@ -2126,7 +2139,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_IPV4_UDP,
AUTOMATIC_KEEPALIVE_DELAY_SECONDS /* expectedKeepaliveTimer */,
ESP_IP_VERSION_AUTO /* expectedIpVersion */,
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */);
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
false /* expectedReadFromCarrierConfig*/,
true /* areLongLivedTcpConnectionsExpensive */);
}
@Test
@@ -2136,7 +2151,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_AUTO,
TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
ESP_IP_VERSION_AUTO /* expectedIpVersion */,
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */);
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
true /* expectedReadFromCarrierConfig*/,
false /* areLongLivedTcpConnectionsExpensive */);
}
@Test
@@ -2150,7 +2167,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_IPV4_UDP,
AUTOMATIC_KEEPALIVE_DELAY_SECONDS /* expectedKeepaliveTimer */,
ESP_IP_VERSION_AUTO /* expectedIpVersion */,
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */);
ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
false /* expectedReadFromCarrierConfig*/,
true /* areLongLivedTcpConnectionsExpensive */);
}
@Test
@@ -2160,7 +2179,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_IPV4_UDP,
TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
ESP_IP_VERSION_IPV4 /* expectedIpVersion */,
ESP_ENCAP_TYPE_UDP /* expectedEncapType */);
ESP_ENCAP_TYPE_UDP /* expectedEncapType */,
true /* expectedReadFromCarrierConfig*/,
false /* areLongLivedTcpConnectionsExpensive */);
}
@Test
@@ -2170,7 +2191,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_IPV6_ESP,
TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
ESP_IP_VERSION_IPV6 /* expectedIpVersion */,
ESP_ENCAP_TYPE_NONE /* expectedEncapType */);
ESP_ENCAP_TYPE_NONE /* expectedEncapType */,
true /* expectedReadFromCarrierConfig*/,
false /* areLongLivedTcpConnectionsExpensive */);
}
@Test
@@ -2180,7 +2203,9 @@ public class VpnTest extends VpnTestBase {
PREFERRED_IKE_PROTOCOL_IPV6_UDP,
TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
ESP_IP_VERSION_IPV6 /* expectedIpVersion */,
ESP_ENCAP_TYPE_UDP /* expectedEncapType */);
ESP_ENCAP_TYPE_UDP /* expectedEncapType */,
true /* expectedReadFromCarrierConfig*/,
false /* areLongLivedTcpConnectionsExpensive */);
}
private NetworkCapabilities createTestCellNc() {
@@ -2193,7 +2218,9 @@ public class VpnTest extends VpnTestBase {
}
private void doTestReadCarrierConfig(NetworkCapabilities nc, int simState, int preferredIpProto,
int expectedKeepaliveTimer, int expectedIpVersion, int expectedEncapType)
int expectedKeepaliveTimer, int expectedIpVersion, int expectedEncapType,
boolean expectedReadFromCarrierConfig,
boolean areLongLivedTcpConnectionsExpensive)
throws Exception {
final Ikev2VpnProfile ikeProfile =
new Ikev2VpnProfile.Builder(TEST_VPN_SERVER, TEST_VPN_IDENTITY)
@@ -2206,7 +2233,8 @@ public class VpnTest extends VpnTestBase {
final PlatformVpnSnapshot vpnSnapShot =
verifySetupPlatformVpn(ikeProfile.toVpnProfile(),
createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */),
false /* mtuSupportsIpv6 */);
false /* mtuSupportsIpv6 */,
true /* areLongLivedTcpConnectionsExpensive */);
final CarrierConfigManager.CarrierConfigChangeListener listener =
getCarrierConfigListener();
@@ -2221,15 +2249,31 @@ public class VpnTest extends VpnTestBase {
vpnSnapShot.nwCb.onCapabilitiesChanged(TEST_NETWORK_2, nc);
verify(mIkeSessionWrapper).setNetwork(TEST_NETWORK_2,
expectedIpVersion, expectedEncapType, expectedKeepaliveTimer);
if (expectedReadFromCarrierConfig) {
final ArgumentCaptor<NetworkCapabilities> ncCaptor =
ArgumentCaptor.forClass(NetworkCapabilities.class);
verify(mMockNetworkAgent).doSendNetworkCapabilities(ncCaptor.capture());
final VpnTransportInfo info =
(VpnTransportInfo) ncCaptor.getValue().getTransportInfo();
assertEquals(areLongLivedTcpConnectionsExpensive,
info.areLongLivedTcpConnectionsExpensive());
} else {
verify(mMockNetworkAgent, never()).doSendNetworkCapabilities(any());
}
reset(mExecutor);
reset(mIkeSessionWrapper);
reset(mMockNetworkAgent);
// Trigger carrier config change
listener.onCarrierConfigChanged(1 /* logicalSlotIndex */, TEST_SUB_ID,
-1 /* carrierId */, -1 /* specificCarrierId */);
verify(mIkeSessionWrapper).setNetwork(TEST_NETWORK_2,
expectedIpVersion, expectedEncapType, expectedKeepaliveTimer);
// Expect no NetworkCapabilities change.
// Call to doSendNetworkCapabilities() will not be triggered.
verify(mMockNetworkAgent, never()).doSendNetworkCapabilities(any());
}
@Test