From d3a7de1333615d441fbf473e1e62f087e274caa0 Mon Sep 17 00:00:00 2001 From: Yan Yan Date: Thu, 2 Dec 2021 18:04:40 -0800 Subject: [PATCH] Update #hashCode & #equals with mUnderlyingNetworkPriorities Update VcnGatewayConnectionConfig to consider mUnderlyingNetworkPriorities in #hashCode and #equals methods Rename #setAllowedPlmnIds and #getAllowedPlmnIds to #setAllowedOperatorPlmnIds and #getAllowedOperatorPlmnIds Bug: 206044122 Test: atest FrameworksVcnTests(new tests), CtsVcnTestCases Change-Id: Id16d88024bbb7ef275da0304f2dde1413a18de10 --- .../vcn/VcnCellUnderlyingNetworkPriority.java | 6 ++-- .../net/vcn/VcnGatewayConnectionConfig.java | 2 ++ .../vcn/VcnWifiUnderlyingNetworkPriority.java | 2 +- .../NetworkPriorityClassifier.java | 4 +-- .../VcnCellUnderlyingNetworkPriorityTest.java | 6 ++-- .../vcn/VcnGatewayConnectionConfigTest.java | 36 +++++++++++++++++++ .../NetworkPriorityClassifierTest.java | 2 +- 7 files changed, 48 insertions(+), 10 deletions(-) diff --git a/core/java/android/net/vcn/VcnCellUnderlyingNetworkPriority.java b/core/java/android/net/vcn/VcnCellUnderlyingNetworkPriority.java index 50a6bfc065d75..b3f7345240788 100644 --- a/core/java/android/net/vcn/VcnCellUnderlyingNetworkPriority.java +++ b/core/java/android/net/vcn/VcnCellUnderlyingNetworkPriority.java @@ -151,7 +151,7 @@ public final class VcnCellUnderlyingNetworkPriority extends VcnUnderlyingNetwork /** Retrieve the allowed PLMN IDs, or an empty set if any PLMN ID is acceptable. */ @NonNull - public Set getAllowedPlmnIds() { + public Set getAllowedOperatorPlmnIds() { return Collections.unmodifiableSet(mAllowedNetworkPlmnIds); } @@ -211,7 +211,7 @@ public final class VcnCellUnderlyingNetworkPriority extends VcnUnderlyingNetwork } /** This class is used to incrementally build WifiNetworkPriority objects. */ - public static class Builder extends VcnUnderlyingNetworkPriority.Builder { + public static final class Builder extends VcnUnderlyingNetworkPriority.Builder { @NonNull private final Set mAllowedNetworkPlmnIds = new ArraySet<>(); @NonNull private final Set mAllowedSpecificCarrierIds = new ArraySet<>(); @@ -233,7 +233,7 @@ public final class VcnCellUnderlyingNetworkPriority extends VcnUnderlyingNetwork * and {@link SubscriptionInfo#getMncString()}. */ @NonNull - public Builder setAllowedPlmnIds(@NonNull Set allowedNetworkPlmnIds) { + public Builder setAllowedOperatorPlmnIds(@NonNull Set allowedNetworkPlmnIds) { validatePlmnIds(allowedNetworkPlmnIds); mAllowedNetworkPlmnIds.clear(); diff --git a/core/java/android/net/vcn/VcnGatewayConnectionConfig.java b/core/java/android/net/vcn/VcnGatewayConnectionConfig.java index 31e38c0b75749..0bd146cbc1b4e 100644 --- a/core/java/android/net/vcn/VcnGatewayConnectionConfig.java +++ b/core/java/android/net/vcn/VcnGatewayConnectionConfig.java @@ -420,6 +420,7 @@ public final class VcnGatewayConnectionConfig { mGatewayConnectionName, mTunnelConnectionParams, mExposedCapabilities, + mUnderlyingNetworkPriorities, Arrays.hashCode(mRetryIntervalsMs), mMaxMtu); } @@ -434,6 +435,7 @@ public final class VcnGatewayConnectionConfig { return mGatewayConnectionName.equals(rhs.mGatewayConnectionName) && mTunnelConnectionParams.equals(rhs.mTunnelConnectionParams) && mExposedCapabilities.equals(rhs.mExposedCapabilities) + && mUnderlyingNetworkPriorities.equals(rhs.mUnderlyingNetworkPriorities) && Arrays.equals(mRetryIntervalsMs, rhs.mRetryIntervalsMs) && mMaxMtu == rhs.mMaxMtu; } diff --git a/core/java/android/net/vcn/VcnWifiUnderlyingNetworkPriority.java b/core/java/android/net/vcn/VcnWifiUnderlyingNetworkPriority.java index 2ba9169277054..85eb100779a25 100644 --- a/core/java/android/net/vcn/VcnWifiUnderlyingNetworkPriority.java +++ b/core/java/android/net/vcn/VcnWifiUnderlyingNetworkPriority.java @@ -79,7 +79,7 @@ public final class VcnWifiUnderlyingNetworkPriority extends VcnUnderlyingNetwork } final VcnWifiUnderlyingNetworkPriority rhs = (VcnWifiUnderlyingNetworkPriority) other; - return mSsid == rhs.mSsid; + return mSsid.equals(rhs.mSsid); } /** @hide */ diff --git a/services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java b/services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java index 7b26fe0370c90..45769575111f1 100644 --- a/services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java +++ b/services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java @@ -226,9 +226,9 @@ class NetworkPriorityClassifier { .getSystemService(TelephonyManager.class) .createForSubscriptionId(subId); - if (!networkPriority.getAllowedPlmnIds().isEmpty()) { + if (!networkPriority.getAllowedOperatorPlmnIds().isEmpty()) { final String plmnId = subIdSpecificTelephonyMgr.getNetworkOperator(); - if (!networkPriority.getAllowedPlmnIds().contains(plmnId)) { + if (!networkPriority.getAllowedOperatorPlmnIds().contains(plmnId)) { return false; } } diff --git a/tests/vcn/java/android/net/vcn/VcnCellUnderlyingNetworkPriorityTest.java b/tests/vcn/java/android/net/vcn/VcnCellUnderlyingNetworkPriorityTest.java index f7d3697029d69..476be44ee7598 100644 --- a/tests/vcn/java/android/net/vcn/VcnCellUnderlyingNetworkPriorityTest.java +++ b/tests/vcn/java/android/net/vcn/VcnCellUnderlyingNetworkPriorityTest.java @@ -36,7 +36,7 @@ public class VcnCellUnderlyingNetworkPriorityTest { return new VcnCellUnderlyingNetworkPriority.Builder() .setNetworkQuality(NETWORK_QUALITY_OK) .setAllowMetered(true /* allowMetered */) - .setAllowedPlmnIds(ALLOWED_PLMN_IDS) + .setAllowedOperatorPlmnIds(ALLOWED_PLMN_IDS) .setAllowedSpecificCarrierIds(ALLOWED_CARRIER_IDS) .setAllowRoaming(true /* allowRoaming */) .setRequireOpportunistic(true /* requireOpportunistic */) @@ -48,7 +48,7 @@ public class VcnCellUnderlyingNetworkPriorityTest { final VcnCellUnderlyingNetworkPriority networkPriority = getTestNetworkPriority(); assertEquals(NETWORK_QUALITY_OK, networkPriority.getNetworkQuality()); assertTrue(networkPriority.allowMetered()); - assertEquals(ALLOWED_PLMN_IDS, networkPriority.getAllowedPlmnIds()); + assertEquals(ALLOWED_PLMN_IDS, networkPriority.getAllowedOperatorPlmnIds()); assertEquals(ALLOWED_CARRIER_IDS, networkPriority.getAllowedSpecificCarrierIds()); assertTrue(networkPriority.allowRoaming()); assertTrue(networkPriority.requireOpportunistic()); @@ -60,7 +60,7 @@ public class VcnCellUnderlyingNetworkPriorityTest { new VcnCellUnderlyingNetworkPriority.Builder().build(); assertEquals(NETWORK_QUALITY_ANY, networkPriority.getNetworkQuality()); assertFalse(networkPriority.allowMetered()); - assertEquals(new HashSet(), networkPriority.getAllowedPlmnIds()); + assertEquals(new HashSet(), networkPriority.getAllowedOperatorPlmnIds()); assertEquals(new HashSet(), networkPriority.getAllowedSpecificCarrierIds()); assertFalse(networkPriority.allowRoaming()); assertFalse(networkPriority.requireOpportunistic()); diff --git a/tests/vcn/java/android/net/vcn/VcnGatewayConnectionConfigTest.java b/tests/vcn/java/android/net/vcn/VcnGatewayConnectionConfigTest.java index 724c33ffb3542..18518aac77579 100644 --- a/tests/vcn/java/android/net/vcn/VcnGatewayConnectionConfigTest.java +++ b/tests/vcn/java/android/net/vcn/VcnGatewayConnectionConfigTest.java @@ -271,4 +271,40 @@ public class VcnGatewayConnectionConfigTest { assertNotEquals(tunnelParams, anotherTunnelParams); assertNotEquals(config, anotherConfig); } + + private static VcnGatewayConnectionConfig buildTestConfigWithVcnUnderlyingNetworkPriorities( + LinkedHashSet networkPriorities) { + return buildTestConfigWithExposedCaps( + new VcnGatewayConnectionConfig.Builder( + "buildTestConfigWithVcnUnderlyingNetworkPriorities", + TUNNEL_CONNECTION_PARAMS) + .setVcnUnderlyingNetworkPriorities(networkPriorities), + EXPOSED_CAPS); + } + + @Test + public void testVcnUnderlyingNetworkPrioritiesEquality() throws Exception { + final VcnGatewayConnectionConfig config = + buildTestConfigWithVcnUnderlyingNetworkPriorities(UNDERLYING_NETWORK_PRIORITIES); + + final LinkedHashSet networkPrioritiesEqual = + new LinkedHashSet(); + networkPrioritiesEqual.add(VcnCellUnderlyingNetworkPriorityTest.getTestNetworkPriority()); + networkPrioritiesEqual.add(VcnWifiUnderlyingNetworkPriorityTest.getTestNetworkPriority()); + final VcnGatewayConnectionConfig configEqual = + buildTestConfigWithVcnUnderlyingNetworkPriorities(networkPrioritiesEqual); + + final LinkedHashSet networkPrioritiesNotEqual = + new LinkedHashSet(); + networkPrioritiesNotEqual.add( + VcnWifiUnderlyingNetworkPriorityTest.getTestNetworkPriority()); + final VcnGatewayConnectionConfig configNotEqual = + buildTestConfigWithVcnUnderlyingNetworkPriorities(networkPrioritiesNotEqual); + + assertEquals(UNDERLYING_NETWORK_PRIORITIES, networkPrioritiesEqual); + assertEquals(config, configEqual); + + assertNotEquals(UNDERLYING_NETWORK_PRIORITIES, networkPrioritiesNotEqual); + assertNotEquals(config, configNotEqual); + } } diff --git a/tests/vcn/java/com/android/server/vcn/routeselection/NetworkPriorityClassifierTest.java b/tests/vcn/java/com/android/server/vcn/routeselection/NetworkPriorityClassifierTest.java index 2e1aab60152df..46a614f60ae73 100644 --- a/tests/vcn/java/com/android/server/vcn/routeselection/NetworkPriorityClassifierTest.java +++ b/tests/vcn/java/com/android/server/vcn/routeselection/NetworkPriorityClassifierTest.java @@ -279,7 +279,7 @@ public class NetworkPriorityClassifierTest { final String networkPriorityPlmnId = useMatchedPlmnId ? PLMN_ID : PLMN_ID_OTHER; final VcnCellUnderlyingNetworkPriority networkPriority = getCellNetworkPriorityBuilder() - .setAllowedPlmnIds(Set.of(networkPriorityPlmnId)) + .setAllowedOperatorPlmnIds(Set.of(networkPriorityPlmnId)) .build(); assertEquals(