diff options
author | Hai Shalom <haishalom@google.com> | 2020-06-26 20:50:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-06-26 20:50:15 +0000 |
commit | 90723104f67badbfd95ca374fea2b514d3a314f3 (patch) | |
tree | c8833b533738ef8eb94f212a039f2e61bfc423c9 | |
parent | 66dd60a462f7f8e230d84ce1cca456ec4b0ed1ac (diff) | |
parent | f42caa9a7b9c6961af5b6bc75ab88c074ee6e4cc (diff) |
Merge "[Passpoint] Add metrics to indicate OSU provisioned profile" into rvc-dev
-rw-r--r-- | service/java/com/android/server/wifi/WifiMetrics.java | 7 | ||||
-rw-r--r-- | service/proto/src/metrics.proto | 3 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java | 26 |
3 files changed, 34 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java index 72c52bdd2..a7544e031 100644 --- a/service/java/com/android/server/wifi/WifiMetrics.java +++ b/service/java/com/android/server/wifi/WifiMetrics.java @@ -44,6 +44,7 @@ import android.os.Message; import android.os.RemoteException; import android.os.SystemProperties; import android.telephony.TelephonyManager; +import android.text.TextUtils; import android.util.ArrayMap; import android.util.Base64; import android.util.Log; @@ -1111,6 +1112,7 @@ public class WifiMetrics { } sb.append(", numConsecutiveConnectionFailure=" + mConnectionEvent.numConsecutiveConnectionFailure); + sb.append(", isOsuProvisioned=" + mConnectionEvent.isOsuProvisioned); } return sb.toString(); } @@ -1460,9 +1462,12 @@ public class WifiMetrics { mBssidBlocklistMonitor.getNumBlockedBssidsForSsid(config.SSID); mCurrentConnectionEvent.mConnectionEvent.networkType = WifiMetricsProto.ConnectionEvent.TYPE_UNKNOWN; + mCurrentConnectionEvent.mConnectionEvent.isOsuProvisioned = false; if (config.isPasspoint()) { mCurrentConnectionEvent.mConnectionEvent.networkType = WifiMetricsProto.ConnectionEvent.TYPE_PASSPOINT; + mCurrentConnectionEvent.mConnectionEvent.isOsuProvisioned = + !TextUtils.isEmpty(config.updateIdentifier); } else if (WifiConfigurationUtil.isConfigForSaeNetwork(config)) { mCurrentConnectionEvent.mConnectionEvent.networkType = WifiMetricsProto.ConnectionEvent.TYPE_WPA3; @@ -3097,7 +3102,7 @@ public class WifiMetrics { for (ConnectionEvent event : mConnectionEventList) { String eventLine = event.toString(); if (event == mCurrentConnectionEvent) { - eventLine += "CURRENTLY OPEN EVENT"; + eventLine += " CURRENTLY OPEN EVENT"; } pw.println(eventLine); } diff --git a/service/proto/src/metrics.proto b/service/proto/src/metrics.proto index 481ff0f14..30b1690cc 100644 --- a/service/proto/src/metrics.proto +++ b/service/proto/src/metrics.proto @@ -1109,6 +1109,9 @@ message ConnectionEvent { // middle won't break the streak count. The count is cleared after // a network disconnection event. optional int32 num_consecutive_connection_failure = 19 [default = -1]; + + // Indicates if the profile used for the connection was provisioned by Passpoint OSU server + optional bool is_osu_provisioned = 20; } // Number of occurrences of a specific RSSI poll rssi value diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java index 198eb079f..4e895e488 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java @@ -1762,10 +1762,11 @@ public class WifiMetricsTest extends WifiBaseTest { assertEquals(1, mDecodedProto.connectionEvent.length); assertEquals(WifiMetricsProto.ConnectionEvent.TYPE_OPEN, mDecodedProto.connectionEvent[0].networkType); + assertFalse(mDecodedProto.connectionEvent[0].isOsuProvisioned); } /** - * Verify the ConnectionEvent is labeled with networkType passpoint correctly. + * Verify the ConnectionEvent is labeled with networkType Passpoint correctly. */ @Test public void testConnectionNetworkTypePasspoint() throws Exception { @@ -1781,6 +1782,7 @@ public class WifiMetricsTest extends WifiBaseTest { assertEquals(1, mDecodedProto.connectionEvent.length); assertEquals(WifiMetricsProto.ConnectionEvent.TYPE_PASSPOINT, mDecodedProto.connectionEvent[0].networkType); + assertFalse(mDecodedProto.connectionEvent[0].isOsuProvisioned); } /** @@ -4995,4 +4997,26 @@ public class WifiMetricsTest extends WifiBaseTest { assertEquals(2, mDecodedProto.carrierWifiMetrics.numConnectionAuthFailure); assertEquals(3, mDecodedProto.carrierWifiMetrics.numConnectionNonAuthFailure); } + + /** + * Verify the ConnectionEvent is labeled with networkType Passpoint correctly and that the OSU + * provisioned flag is set to true. + */ + @Test + public void testConnectionNetworkTypePasspointFromOsu() throws Exception { + WifiConfiguration config = WifiConfigurationTestUtil.createPasspointNetwork(); + config.updateIdentifier = "7"; + mWifiMetrics.startConnectionEvent(config, "RED", + WifiMetricsProto.ConnectionEvent.ROAM_NONE); + mWifiMetrics.endConnectionEvent( + WifiMetrics.ConnectionEvent.FAILURE_ASSOCIATION_TIMED_OUT, + WifiMetricsProto.ConnectionEvent.HLF_NONE, + WifiMetricsProto.ConnectionEvent.FAILURE_REASON_UNKNOWN); + dumpProtoAndDeserialize(); + + assertEquals(1, mDecodedProto.connectionEvent.length); + assertEquals(WifiMetricsProto.ConnectionEvent.TYPE_PASSPOINT, + mDecodedProto.connectionEvent[0].networkType); + assertTrue(mDecodedProto.connectionEvent[0].isOsuProvisioned); + } } |