summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/WifiMetrics.java13
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSelector.java3
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java30
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java6
4 files changed, 36 insertions, 16 deletions
diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java
index d70fa3044..0afca3e09 100644
--- a/service/java/com/android/server/wifi/WifiMetrics.java
+++ b/service/java/com/android/server/wifi/WifiMetrics.java
@@ -385,6 +385,8 @@ public class WifiMetrics {
private Map<Pair<Integer, Integer>, NetworkSelectionExperimentResults>
mNetworkSelectionExperimentPairNumChoicesCounts = new ArrayMap<>();
+ private int mNetworkSelectorExperimentId;
+
private final CellularLinkLayerStatsCollector mCellularLinkLayerStatsCollector;
/**
@@ -996,7 +998,7 @@ public class WifiMetrics {
mCurrentConnectionEvent.mConfigBssid = targetBSSID;
mCurrentConnectionEvent.mConnectionEvent.roamType = roamType;
mCurrentConnectionEvent.mConnectionEvent.networkSelectorExperimentId =
- mScoringParams.getExperimentIdentifier();
+ mNetworkSelectorExperimentId;
mCurrentConnectionEvent.mRouterFingerPrint.updateFromWifiConfiguration(config);
mCurrentConnectionEvent.mConfigBssid = "any";
mCurrentConnectionEvent.mRealStartTime = mClock.getElapsedSinceBootMillis();
@@ -4766,6 +4768,15 @@ public class WifiMetrics {
}
}
+ /**
+ * Sets the numeric CandidateScorer id.
+ */
+ public void setNetworkSelectorExperimentId(int expId) {
+ synchronized (mLock) {
+ mNetworkSelectorExperimentId = expId;
+ }
+ }
+
/** Add a WifiLock acqusition session */
public void addWifiLockAcqSession(int lockType, long duration) {
switch (lockType) {
diff --git a/service/java/com/android/server/wifi/WifiNetworkSelector.java b/service/java/com/android/server/wifi/WifiNetworkSelector.java
index b9ea717f3..f084e3151 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSelector.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSelector.java
@@ -834,6 +834,9 @@ public class WifiNetworkSelector {
if (ans == null && PRESET_CANDIDATE_SCORER_NAME != null) {
Log.wtf(TAG, PRESET_CANDIDATE_SCORER_NAME + " is not registered!");
}
+ mWifiMetrics.setNetworkSelectorExperimentId(ans == null
+ ? LEGACY_CANDIDATE_SCORER_EXP_ID
+ : experimentIdFromIdentifier(ans.getIdentifier()));
return ans;
}
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
index 33da96690..5d94c1193 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
@@ -2159,13 +2159,12 @@ public class WifiMetricsTest {
}
/**
- * Check ScoringParams
+ * Check network selector id
*/
@Test
- public void testExperimentId() throws Exception {
- final int id = 42;
- final String expectId = "x" + id;
- when(mScoringParams.getExperimentIdentifier()).thenReturn(id);
+ public void testNetworkSelectorExperimentId() throws Exception {
+ final int id = 42888888;
+ mWifiMetrics.setNetworkSelectorExperimentId(id);
mWifiMetrics.startConnectionEvent(mTestWifiConfig, "TestNetwork",
WifiMetricsProto.ConnectionEvent.ROAM_ENTERPRISE);
mWifiMetrics.endConnectionEvent(
@@ -2173,11 +2172,22 @@ public class WifiMetricsTest {
WifiMetricsProto.ConnectionEvent.HLF_NONE,
WifiMetricsProto.ConnectionEvent.FAILURE_REASON_UNKNOWN);
dumpProtoAndDeserialize();
- assertEquals(expectId, mDecodedProto.scoreExperimentId);
assertEquals(id, mDecodedProto.connectionEvent[0].networkSelectorExperimentId);
}
/**
+ * Check ScoringParams
+ */
+ @Test
+ public void testExperimentId() throws Exception {
+ final int id = 42;
+ final String expectId = "x" + id;
+ when(mScoringParams.getExperimentIdentifier()).thenReturn(id);
+ dumpProtoAndDeserialize();
+ assertEquals(expectId, mDecodedProto.scoreExperimentId);
+ }
+
+ /**
* Check ScoringParams default case
*/
@Test
@@ -2185,16 +2195,8 @@ public class WifiMetricsTest {
final int id = 0;
final String expectId = "";
when(mScoringParams.getExperimentIdentifier()).thenReturn(id);
- mWifiMetrics.startConnectionEvent(mTestWifiConfig, "TestNetwork",
- WifiMetricsProto.ConnectionEvent.ROAM_ENTERPRISE);
- mWifiMetrics.endConnectionEvent(
- WifiMetrics.ConnectionEvent.FAILURE_NONE,
- WifiMetricsProto.ConnectionEvent.HLF_NONE,
- WifiMetricsProto.ConnectionEvent.FAILURE_REASON_UNKNOWN);
dumpProtoAndDeserialize();
assertEquals(expectId, mDecodedProto.scoreExperimentId);
- assertEquals(id, mDecodedProto.connectionEvent[0].networkSelectorExperimentId);
-
}
/** short hand for instantiating an anonymous int array, instead of 'new int[]{a1, a2, ...}' */
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
index ec79e5749..cda5d626b 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
@@ -783,6 +783,7 @@ public class WifiNetworkSelectorTest {
WifiMetricsProto.ConnectionEvent.NOMINATOR_EXTERNAL_SCORED,
WifiMetricsProto.ConnectionEvent.NOMINATOR_SAVED)));
}
+ verify(mWifiMetrics, atLeastOnce()).setNetworkSelectorExperimentId(anyInt());
}
/**
@@ -1627,6 +1628,7 @@ public class WifiNetworkSelectorTest {
verify(mWifiMetrics).logNetworkSelectionDecision(
WifiNetworkSelector.LEGACY_CANDIDATE_SCORER_EXP_ID, nullScorerId, false, 2);
verify(mWifiMetrics, atLeastOnce()).setNominatorForNetwork(anyInt(), anyInt());
+ verify(mWifiMetrics, atLeastOnce()).setNetworkSelectorExperimentId(anyInt());
verifyNoMoreInteractions(mWifiMetrics);
}
@@ -1670,6 +1672,8 @@ public class WifiNetworkSelectorTest {
verify(mWifiMetrics, times(2)).logNetworkSelectionDecision(
WifiNetworkSelector.LEGACY_CANDIDATE_SCORER_EXP_ID, compatibilityExpId, true, 2);
+
+ int expid = CompatibilityScorer.COMPATIBILITY_SCORER_DEFAULT_EXPID;
+ verify(mWifiMetrics, atLeastOnce()).setNetworkSelectorExperimentId(eq(expid));
}
}
-