From 6121a7656c95544c93759770a67e3ae72621b6dd Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Tue, 21 Nov 2023 10:25:14 +0000 Subject: [PATCH] Revert "Prioritize non-slices over slices" This reverts commit 14499f01192a7be146f6ec34db71101a11758ca5. Reason for revert: b/312408745 Change-Id: I8b03799fe6e0e256263240909ee7446c178bf508 --- .../server/connectivity/NetworkRanker.java | 21 --------- .../server/connectivity/NetworkRankerTest.kt | 44 +------------------ 2 files changed, 2 insertions(+), 63 deletions(-) diff --git a/service/src/com/android/server/connectivity/NetworkRanker.java b/service/src/com/android/server/connectivity/NetworkRanker.java index c473444272..d94c8dceeb 100644 --- a/service/src/com/android/server/connectivity/NetworkRanker.java +++ b/service/src/com/android/server/connectivity/NetworkRanker.java @@ -17,8 +17,6 @@ package com.android.server.connectivity; import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL; -import static android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH; -import static android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY; import static android.net.NetworkCapabilities.TRANSPORT_BLUETOOTH; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET; @@ -222,19 +220,6 @@ public class NetworkRanker { accepted, rejected); } - /** - * Returns whether the scorable has any of the PRIORITIZE_* capabilities. - * - * These capabilities code for customer slices, and a network that has one is a customer slice. - */ - private boolean hasPrioritizedCapability(@NonNull final Scoreable nai) { - final NetworkCapabilities caps = nai.getCapsNoCopy(); - final long anyPrioritizeCapability = - (1L << NET_CAPABILITY_PRIORITIZE_LATENCY) - | (1L << NET_CAPABILITY_PRIORITIZE_BANDWIDTH); - return 0 != (caps.getCapabilitiesInternal() & anyPrioritizeCapability); - } - /** * Get the best network among a list of candidates according to policy. * @param candidates the candidates @@ -339,12 +324,6 @@ public class NetworkRanker { // change from the previous result. If there were, it's guaranteed candidates.size() > 0 // because accepted.size() > 0 above. - // If any network is not a slice with prioritized bandwidth or latency, don't choose one - // that is. - partitionInto(candidates, nai -> !hasPrioritizedCapability(nai), accepted, rejected); - if (accepted.size() == 1) return accepted.get(0); - if (accepted.size() > 0 && rejected.size() > 0) candidates = new ArrayList<>(accepted); - // If some of the networks have a better transport than others, keep only the ones with // the best transports. for (final int transport : PREFERRED_TRANSPORTS_ORDER) { diff --git a/tests/unit/java/com/android/server/connectivity/NetworkRankerTest.kt b/tests/unit/java/com/android/server/connectivity/NetworkRankerTest.kt index 87f736948b..1e3f38970a 100644 --- a/tests/unit/java/com/android/server/connectivity/NetworkRankerTest.kt +++ b/tests/unit/java/com/android/server/connectivity/NetworkRankerTest.kt @@ -18,12 +18,9 @@ package com.android.server.connectivity import android.net.NetworkCapabilities import android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL as NET_CAP_PORTAL -import android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET as NET_CAP_INTERNET -import android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH as NET_CAP_PRIO_BW import android.net.NetworkCapabilities.TRANSPORT_CELLULAR import android.net.NetworkCapabilities.TRANSPORT_WIFI import android.net.NetworkScore.KEEP_CONNECTED_NONE -import android.net.NetworkScore.POLICY_TRANSPORT_PRIMARY import android.net.NetworkScore.POLICY_EXITING as EXITING import android.net.NetworkScore.POLICY_TRANSPORT_PRIMARY as PRIMARY import android.net.NetworkScore.POLICY_YIELD_TO_BAD_WIFI as YIELD_TO_BAD_WIFI @@ -53,8 +50,8 @@ private fun caps(transport: Int, vararg capabilities: Int) = class NetworkRankerTest(private val activelyPreferBadWifi: Boolean) { private val mRanker = NetworkRanker(NetworkRanker.Configuration(activelyPreferBadWifi)) - private class TestScore(private val sc: FullScore, private val nc: NetworkCapabilities) : - NetworkRanker.Scoreable { + private class TestScore(private val sc: FullScore, private val nc: NetworkCapabilities) + : NetworkRanker.Scoreable { override fun getScore() = sc override fun getCapsNoCopy(): NetworkCapabilities = nc } @@ -199,41 +196,4 @@ class NetworkRankerTest(private val activelyPreferBadWifi: Boolean) { val badExitingWifi = TestScore(score(EVER_EVALUATED, EVER_VALIDATED, EXITING), CAPS_WIFI) assertEquals(cell, rank(cell, badExitingWifi)) } - - @Test - fun testValidatedPolicyStrongerThanSlice() { - val unvalidatedNonslice = TestScore(score(EVER_EVALUATED), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET)) - val slice = TestScore(score(EVER_EVALUATED, IS_VALIDATED), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET, NET_CAP_PRIO_BW)) - assertEquals(slice, rank(slice, unvalidatedNonslice)) - } - - @Test - fun testPrimaryPolicyStrongerThanSlice() { - val nonslice = TestScore(score(EVER_EVALUATED), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET)) - val primarySlice = TestScore(score(EVER_EVALUATED, POLICY_TRANSPORT_PRIMARY), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET, NET_CAP_PRIO_BW)) - assertEquals(primarySlice, rank(nonslice, primarySlice)) - } - - @Test - fun testPreferNonSlices() { - // Slices lose to non-slices for general ranking - val nonslice = TestScore(score(EVER_EVALUATED, IS_VALIDATED), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET)) - val slice = TestScore(score(EVER_EVALUATED, IS_VALIDATED), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET, NET_CAP_PRIO_BW)) - assertEquals(nonslice, rank(slice, nonslice)) - } - - @Test - fun testSlicePolicyStrongerThanTransport() { - val nonSliceCell = TestScore(score(EVER_EVALUATED, IS_VALIDATED), - caps(TRANSPORT_CELLULAR, NET_CAP_INTERNET)) - val sliceWifi = TestScore(score(EVER_EVALUATED, IS_VALIDATED), - caps(TRANSPORT_WIFI, NET_CAP_INTERNET, NET_CAP_PRIO_BW)) - assertEquals(nonSliceCell, rank(nonSliceCell, sliceWifi)) - } }