diff options
author | 2024-11-26 00:04:56 +0000 | |
---|---|---|
committer | 2024-11-26 00:29:43 +0000 | |
commit | 51072aeb59d44efde213c583aa49682aae943a87 (patch) | |
tree | ae0ac13a2219524e019c45978528b5b20aad2258 | |
parent | b3200e9e925afaefb0d93071ac8c323c943a6978 (diff) |
Add datastall status in WiFi Scorer stats
Flag: com.android.wifi.flags.wifi_scorer_new_stats_collection
Bug: 380947021
Test: atest and on device test
Change-Id: I38decfc949de594d1b73ca96d82a9ce50e276b2f
9 files changed, 52 insertions, 30 deletions
diff --git a/framework/java/android/net/wifi/WifiUsabilityStatsEntry.java b/framework/java/android/net/wifi/WifiUsabilityStatsEntry.java index ec9f4ad41c..0b86c1d4e3 100644 --- a/framework/java/android/net/wifi/WifiUsabilityStatsEntry.java +++ b/framework/java/android/net/wifi/WifiUsabilityStatsEntry.java @@ -185,6 +185,8 @@ public final class WifiUsabilityStatsEntry implements Parcelable { private final int mVoipMode; /** Thread device role */ private final int mThreadDeviceRole; + /** Data stall status */ + private final int mStatusDataStall; /** {@hide} */ @Retention(RetentionPolicy.SOURCE) @@ -1192,7 +1194,7 @@ public final class WifiUsabilityStatsEntry implements Parcelable { int isThroughputPredictorDownstreamSufficient, int isThroughputPredictorUpstreamSufficient, boolean isBluetoothConnected, int uwbAdapterState, boolean isLowLatencyActivated, int maxSupportedTxLinkSpeed, - int maxSupportedRxLinkSpeed, int voipMode, int threadDeviceRole) { + int maxSupportedRxLinkSpeed, int voipMode, int threadDeviceRole, int statusDataStall) { mTimeStampMillis = timeStampMillis; mRssi = rssi; mLinkSpeedMbps = linkSpeedMbps; @@ -1246,6 +1248,7 @@ public final class WifiUsabilityStatsEntry implements Parcelable { mMaxSupportedRxLinkSpeed = maxSupportedRxLinkSpeed; mVoipMode = voipMode; mThreadDeviceRole = threadDeviceRole; + mStatusDataStall = statusDataStall; } /** Implement the Parcelable interface */ @@ -1308,6 +1311,7 @@ public final class WifiUsabilityStatsEntry implements Parcelable { dest.writeInt(mMaxSupportedRxLinkSpeed); dest.writeInt(mVoipMode); dest.writeInt(mThreadDeviceRole); + dest.writeInt(mStatusDataStall); } /** Implement the Parcelable interface */ @@ -1333,7 +1337,7 @@ public final class WifiUsabilityStatsEntry implements Parcelable { in.readInt(), in.readLong(), in.readLong(), in.readInt(), in.readInt(), in.readInt(), in.readInt(), in.readInt(), in.readInt(), in.readBoolean(), in.readInt(), in.readBoolean(), in.readInt(), in.readInt(), in.readInt(), - in.readInt() + in.readInt(), in.readInt() ); } @@ -2136,4 +2140,9 @@ public final class WifiUsabilityStatsEntry implements Parcelable { public int getThreadDeviceRole() { return mThreadDeviceRole; } + + /** @hide */ + public int getStatusDataStall() { + return mStatusDataStall; + } } diff --git a/framework/tests/src/android/net/wifi/WifiManagerTest.java b/framework/tests/src/android/net/wifi/WifiManagerTest.java index 0a14e014b0..195c093000 100644 --- a/framework/tests/src/android/net/wifi/WifiManagerTest.java +++ b/framework/tests/src/android/net/wifi/WifiManagerTest.java @@ -2582,7 +2582,7 @@ public class WifiManagerTest { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 1, 100, 10, 100, 27, contentionTimeStats, rateStats, radioStats, 101, true, true, true, 0, 10, 10, true, linkStats, 1, 0, 10, 20, 1, 2, 1, 1, 1, 1, false, 0, - false, 100, 100, 1, 3)); + false, 100, 100, 1, 3, 1)); verify(mOnWifiUsabilityStatsListener).onWifiUsabilityStats(anyInt(), anyBoolean(), any(WifiUsabilityStatsEntry.class)); } diff --git a/framework/tests/src/android/net/wifi/WifiUsabilityStatsEntryTest.java b/framework/tests/src/android/net/wifi/WifiUsabilityStatsEntryTest.java index e13efdf1fb..a70dc446c4 100644 --- a/framework/tests/src/android/net/wifi/WifiUsabilityStatsEntryTest.java +++ b/framework/tests/src/android/net/wifi/WifiUsabilityStatsEntryTest.java @@ -116,7 +116,7 @@ public class WifiUsabilityStatsEntryTest { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 32, contentionTimeStats, rateStats, radioStats, 100, true, true, true, 23, 24, 25, true, linkStats, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - false, 36, false, 37, 38, 39, 40); + false, 36, false, 37, 38, 39, 40, 41); assertEquals(32, usabilityStatsEntry.getTimeSliceDutyCycleInPercent()); WifiUsabilityStatsEntry usabilityStatsEntryWithInvalidDutyCycleValue = @@ -124,7 +124,7 @@ public class WifiUsabilityStatsEntryTest { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, contentionTimeStats, rateStats, radioStats, 101, true, true, true, 23, 24, 25, true, linkStats, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - true, 36, true, 37, 38, 39, 40); + true, 36, true, 37, 38, 39, 40, 41); try { usabilityStatsEntryWithInvalidDutyCycleValue.getTimeSliceDutyCycleInPercent(); fail(); @@ -182,7 +182,7 @@ public class WifiUsabilityStatsEntryTest { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 50, contentionTimeStats, rateStats, radioStats, 102, true, true, true, 23, 24, 25, true, linkStats, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - true, 36, false, 37, 38, 39, 40 + true, 36, false, 37, 38, 39, 40, 41 ); } @@ -656,6 +656,7 @@ public class WifiUsabilityStatsEntryTest { assertEquals(expected.isThroughputPredictorUpstreamSufficient(), actual.isThroughputPredictorUpstreamSufficient()); assertEquals(expected.isBluetoothConnected(), actual.isBluetoothConnected()); + assertEquals(expected.getStatusDataStall(), actual.getStatusDataStall()); } /** @@ -673,7 +674,7 @@ public class WifiUsabilityStatsEntryTest { WifiUsabilityStatsEntry usabilityStatsEntry = new WifiUsabilityStatsEntry( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 32, null, null, null, 100, true, true, true, 23, 24, 25, true, linkStats, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, true, 36, true, 37, 38, 39, 40); + 28, 29, 30, 31, 32, 33, 34, 35, true, 36, true, 37, 38, 39, 40, 41); assertThrows("linkId is invalid - " + MloLink.INVALID_MLO_LINK_ID, NoSuchElementException.class, diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java index dd7fca9428..4bc7c04c47 100644 --- a/service/java/com/android/server/wifi/ClientModeImpl.java +++ b/service/java/com/android/server/wifi/ClientModeImpl.java @@ -6939,7 +6939,8 @@ public class ClientModeImpl extends StateMachine implements ClientMode { // mWifiMetrics.logScorerPredictionResult mWifiMetrics.updateWiFiEvaluationAndScorerStats(mWifiScoreReport.getLingering(), mWifiInfo, mLastConnectionCapabilities); - mWifiMetrics.updateWifiUsabilityStatsEntries(mInterfaceName, mWifiInfo, stats, oneshot); + mWifiMetrics.updateWifiUsabilityStatsEntries(mInterfaceName, mWifiInfo, stats, oneshot, + statusDataStall); if (getClientRoleForMetrics(getConnectedWifiConfiguration()) == WIFI_CONNECTION_RESULT_REPORTED__ROLE__ROLE_CLIENT_PRIMARY) { mWifiMetrics.logScorerPredictionResult(mWifiInjector.hasActiveModem(), diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java index 0e191468cf..61de435e94 100644 --- a/service/java/com/android/server/wifi/WifiMetrics.java +++ b/service/java/com/android/server/wifi/WifiMetrics.java @@ -5296,6 +5296,7 @@ public class WifiMetrics { line.append(",thread_device_role=" + entry.threadDeviceRole); line.append(",capture_event_type=" + entry.captureEventType); line.append(",capture_event_type_subcode=" + entry.captureEventTypeSubcode); + line.append(",status_data_stall=" + entry.statusDataStall); pw.println(line.toString()); } @@ -7154,7 +7155,7 @@ public class WifiMetrics { * oneshot is used to indicate that this call came from CMD_ONESHOT_RSSI_POLL. */ public void updateWifiUsabilityStatsEntries(String ifaceName, WifiInfo info, - WifiLinkLayerStats stats, boolean oneshot) { + WifiLinkLayerStats stats, boolean oneshot, int statusDataStall) { // This is only collected for primary STA currently because RSSI polling is disabled for // non-primary STAs. synchronized (mLock) { @@ -7549,6 +7550,7 @@ public class WifiMetrics { mWifiDataStall.getTxTransmittedBytes(); wifiUsabilityStatsEntry.rxTransmittedBytes = mWifiDataStall.getRxTransmittedBytes(); + wifiUsabilityStatsEntry.statusDataStall = statusDataStall; } } if (mWifiSettingsStore != null) { @@ -7932,7 +7934,7 @@ public class WifiMetrics { s.isThroughputPredictorDownstreamSufficient, s.isThroughputPredictorUpstreamSufficient, s.isBluetoothConnected, s.uwbAdapterState, s.isLowLatencyActivated, s.maxSupportedTxLinkspeed, - s.maxSupportedRxLinkspeed, s.voipMode, s.threadDeviceRole + s.maxSupportedRxLinkspeed, s.voipMode, s.threadDeviceRole, s.statusDataStall ); } @@ -8148,6 +8150,7 @@ public class WifiMetrics { out.maxSupportedRxLinkspeed = s.maxSupportedRxLinkspeed; out.voipMode = s.voipMode; out.threadDeviceRole = s.threadDeviceRole; + out.statusDataStall = s.statusDataStall; return out; } diff --git a/service/java/com/android/server/wifi/WifiScoreReport.java b/service/java/com/android/server/wifi/WifiScoreReport.java index 6f0f718c03..a65fe8a862 100644 --- a/service/java/com/android/server/wifi/WifiScoreReport.java +++ b/service/java/com/android/server/wifi/WifiScoreReport.java @@ -257,7 +257,8 @@ public class WifiScoreReport { } // TODO(b/153075963): This should not be plumbed through WifiMetrics - mWifiMetrics.updateWifiUsabilityStatsEntries(mInterfaceName, mWifiInfo, stats, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(mInterfaceName, mWifiInfo, stats, false, + 0); } @Override diff --git a/service/proto/src/metrics.proto b/service/proto/src/metrics.proto index 5f577b9afe..4a53854d81 100644 --- a/service/proto/src/metrics.proto +++ b/service/proto/src/metrics.proto @@ -2813,6 +2813,8 @@ message WifiUsabilityStatsEntry { // Some capture event types (eg. ip reachability lost) have a code associated // with them. This code is stored here. optional int32 capture_event_type_subcode = 64; + + optional int32 status_data_stall = 65; } message ContentionTimeStats { diff --git a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java index 8244607539..0b98979e64 100644 --- a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java +++ b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java @@ -6190,7 +6190,8 @@ public class ClientModeImplTest extends WifiBaseTest { .thenReturn(WifiIsUnusableEvent.TYPE_UNKNOWN); mCmi.sendMessage(ClientModeImpl.CMD_RSSI_POLL, 1); mLooper.dispatchAll(); - verify(mWifiMetrics).updateWifiUsabilityStatsEntries(any(), any(), eq(stats), eq(false)); + verify(mWifiMetrics).updateWifiUsabilityStatsEntries(any(), any(), eq(stats), eq(false), + anyInt()); when(mWifiDataStall.checkDataStallAndThroughputSufficiency(any(), any(), any(), any(), any(), anyLong(), anyLong())) @@ -6199,7 +6200,7 @@ public class ClientModeImplTest extends WifiBaseTest { mCmi.sendMessage(ClientModeImpl.CMD_RSSI_POLL, 1); mLooper.dispatchAll(); verify(mWifiMetrics, times(2)).updateWifiUsabilityStatsEntries(any(), any(), eq(stats), - eq(false)); + eq(false), anyInt()); } /** diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java index 34e2a32379..e317d31dbe 100644 --- a/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java +++ b/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java @@ -4334,7 +4334,7 @@ public class WifiMetricsTest extends WifiBaseTest { when(info.getLinkSpeed()).thenReturn(nextRandInt()); WifiLinkLayerStats stats = start; for (int i = 0; i < WifiMetrics.NUM_WIFI_USABILITY_STATS_ENTRIES_PER_WIFI_GOOD; i++) { - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats, false, 0); stats = nextRandomStats(stats); } return stats; @@ -4347,8 +4347,8 @@ public class WifiMetricsTest extends WifiBaseTest { when(info.getLinkSpeed()).thenReturn(nextRandInt()); WifiLinkLayerStats stats1 = start; WifiLinkLayerStats stats2 = nextRandomStats(stats1); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false, 0); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); mWifiMetrics.addToWifiUsabilityStatsList(TEST_IFACE_NAME, WifiUsabilityStats.LABEL_BAD, WifiUsabilityStats.TYPE_DATA_STALL_BAD_TX, -1); return nextRandomStats(stats2); @@ -4381,14 +4381,14 @@ public class WifiMetricsTest extends WifiBaseTest { mWifiMetrics.incrementWifiUsabilityScoreCount(TEST_IFACE_NAME, 2, 55, 15); mWifiMetrics.logLinkProbeSuccess( TEST_IFACE_NAME, nextRandInt(), nextRandInt(), nextRandInt(), 12); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false, 0); mWifiMetrics.incrementWifiScoreCount(TEST_IFACE_NAME, 58); mWifiMetrics.incrementWifiUsabilityScoreCount(TEST_IFACE_NAME, 3, 56, 15); mWifiMetrics.logLinkProbeFailure(TEST_IFACE_NAME, nextRandInt(), nextRandInt(), nextRandInt(), nextRandInt()); mWifiMetrics.enterDeviceMobilityState(DEVICE_MOBILITY_STATE_HIGH_MVMT); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); assertEquals(stats2.beacon_rx, mWifiMetrics.getTotalBeaconRxCount()); dumpProtoAndDeserialize(); @@ -4688,7 +4688,8 @@ public class WifiMetricsTest extends WifiBaseTest { ActiveModeManager.ROLE_CLIENT_SECONDARY_LONG_LIVED); mModeChangeCallbackArgumentCaptor.getValue() .onActiveModeManagerRoleChanged(concreteClientModeManager); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false, + 0); verify(mOnWifiUsabilityStatsListener, never()).onWifiUsabilityStats(anyInt(), anyBoolean(), any()); @@ -4698,7 +4699,8 @@ public class WifiMetricsTest extends WifiBaseTest { when(concreteClientModeManager.getRole()).thenReturn(ActiveModeManager.ROLE_CLIENT_PRIMARY); mModeChangeCallbackArgumentCaptor.getValue() .onActiveModeManagerRoleChanged(concreteClientModeManager); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false, + 0); // Client should get the stats. verify(mOnWifiUsabilityStatsListener).onWifiUsabilityStats(anyInt(), anyBoolean(), @@ -4834,7 +4836,8 @@ public class WifiMetricsTest extends WifiBaseTest { when(info.getRssi()).thenReturn(nextRandInt()); when(info.getLinkSpeed()).thenReturn(nextRandInt()); WifiLinkLayerStats linkLayerStats = nextRandomStats(new WifiLinkLayerStats()); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false, + 0); verify(mOnWifiUsabilityStatsListener, never()).onWifiUsabilityStats(anyInt(), anyBoolean(), any()); @@ -4863,7 +4866,8 @@ public class WifiMetricsTest extends WifiBaseTest { when(info.getRssi()).thenReturn(nextRandInt()); when(info.getLinkSpeed()).thenReturn(nextRandInt()); WifiLinkLayerStats linkLayerStats = nextRandomStats(new WifiLinkLayerStats()); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, linkLayerStats, false, + 0); // Client should not get any message listener add failed. verify(mOnWifiUsabilityStatsListener, never()).onWifiUsabilityStats(anyInt(), @@ -4883,7 +4887,7 @@ public class WifiMetricsTest extends WifiBaseTest { long eventTimeMs = nextRandInt(); when(mClock.getElapsedSinceBootMillis()).thenReturn(eventTimeMs); WifiLinkLayerStats stats1 = nextRandomStats(new WifiLinkLayerStats()); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false, 0); // Firmware alert occurs mWifiMetrics.logFirmwareAlert(TEST_IFACE_NAME, 2); @@ -5762,13 +5766,13 @@ public class WifiMetricsTest extends WifiBaseTest { WifiIsUnusableEvent.TYPE_DATA_STALL_BAD_TX, -1); } when(mClock.getElapsedSinceBootMillis()).thenReturn(elapsedTimeAfterBreach); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); } // Simulate adding one LABEL_BAD WifiUsabilityStats private void addOneBadWifiUsabilityStats(WifiInfo info) { WifiLinkLayerStats stats1 = new WifiLinkLayerStats(); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false, 0); mWifiMetrics.addToWifiUsabilityStatsList(TEST_IFACE_NAME, WifiUsabilityStats.LABEL_BAD, WifiUsabilityStats.TYPE_DATA_STALL_BAD_TX, -1); } @@ -5778,13 +5782,13 @@ public class WifiMetricsTest extends WifiBaseTest { int upper = WifiMetrics.LOW_WIFI_SCORE + 7; int lower = WifiMetrics.LOW_WIFI_SCORE - 8; mWifiMetrics.incrementWifiScoreCount(TEST_IFACE_NAME, upper); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); stats2 = nextRandomStats(stats2); long timeMs = 0; when(mClock.getElapsedSinceBootMillis()).thenReturn(timeMs); // Wifi score breaches low mWifiMetrics.incrementWifiScoreCount(TEST_IFACE_NAME, lower); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); stats2 = nextRandomStats(stats2); return stats2; } @@ -5795,13 +5799,13 @@ public class WifiMetricsTest extends WifiBaseTest { int upper = WifiMetrics.LOW_WIFI_USABILITY_SCORE + 7; int lower = WifiMetrics.LOW_WIFI_USABILITY_SCORE - 8; mWifiMetrics.incrementWifiUsabilityScoreCount(TEST_IFACE_NAME, 1, upper, 30); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); stats2 = nextRandomStats(stats2); long timeMs = 0; when(mClock.getElapsedSinceBootMillis()).thenReturn(timeMs); // Wifi usability score breaches low mWifiMetrics.incrementWifiUsabilityScoreCount(TEST_IFACE_NAME, 2, lower, 30); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats2, false, 0); stats2 = nextRandomStats(stats2); return stats2; } @@ -5845,7 +5849,7 @@ public class WifiMetricsTest extends WifiBaseTest { when(info.getRssi()).thenReturn(nextRandInt()); when(info.getLinkSpeed()).thenReturn(nextRandInt()); WifiLinkLayerStats stats1 = nextRandomStats(new WifiLinkLayerStats()); - mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false); + mWifiMetrics.updateWifiUsabilityStatsEntries(TEST_IFACE_NAME, info, stats1, false, 0); // Add 1 LABEL_GOOD WifiLinkLayerStats statsGood = addGoodWifiUsabilityStats(nextRandomStats(stats1)); |