diff options
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 50a6bfc065d7..b3f734524078 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<String> getAllowedPlmnIds() { + public Set<String> 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<Builder> { + public static final class Builder extends VcnUnderlyingNetworkPriority.Builder<Builder> { @NonNull private final Set<String> mAllowedNetworkPlmnIds = new ArraySet<>(); @NonNull private final Set<Integer> mAllowedSpecificCarrierIds = new ArraySet<>(); @@ -233,7 +233,7 @@ public final class VcnCellUnderlyingNetworkPriority extends VcnUnderlyingNetwork * and {@link SubscriptionInfo#getMncString()}. */ @NonNull - public Builder setAllowedPlmnIds(@NonNull Set<String> allowedNetworkPlmnIds) { + public Builder setAllowedOperatorPlmnIds(@NonNull Set<String> allowedNetworkPlmnIds) { validatePlmnIds(allowedNetworkPlmnIds); mAllowedNetworkPlmnIds.clear(); diff --git a/core/java/android/net/vcn/VcnGatewayConnectionConfig.java b/core/java/android/net/vcn/VcnGatewayConnectionConfig.java index 31e38c0b7574..0bd146cbc1b4 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 2ba916927705..85eb100779a2 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 7b26fe0370c9..45769575111f 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 f7d3697029d6..476be44ee759 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<String>(), networkPriority.getAllowedPlmnIds()); + assertEquals(new HashSet<String>(), networkPriority.getAllowedOperatorPlmnIds()); assertEquals(new HashSet<Integer>(), 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 724c33ffb354..18518aac7757 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<VcnUnderlyingNetworkPriority> 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<VcnUnderlyingNetworkPriority> networkPrioritiesEqual = + new LinkedHashSet(); + networkPrioritiesEqual.add(VcnCellUnderlyingNetworkPriorityTest.getTestNetworkPriority()); + networkPrioritiesEqual.add(VcnWifiUnderlyingNetworkPriorityTest.getTestNetworkPriority()); + final VcnGatewayConnectionConfig configEqual = + buildTestConfigWithVcnUnderlyingNetworkPriorities(networkPrioritiesEqual); + + final LinkedHashSet<VcnUnderlyingNetworkPriority> 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 2e1aab60152d..46a614f60ae7 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( |