summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author peroulas <peroulas@google.com> 2024-11-20 21:14:05 -0800
committer peroulas <peroulas@google.com> 2024-11-25 09:28:01 -0800
commit0f64ee12b10dbabb0da085188ce4fd674c7d9048 (patch)
tree6afbaaac5cb5e765c6985f6585cdc8af6618138a
parent05c364cfe06909fd94cd28532b0047a25f7adcb0 (diff)
Logs firmware alert events
Adds these events to the capture buffer. Flag: EXEMPT does not affect functionality. Bug: 369386989 Test: New tests added. Change-Id: Ia98bb173f58028f4ac3f43a8c92f49bce06752e6
-rw-r--r--service/java/com/android/server/wifi/WifiMetrics.java2
-rw-r--r--service/proto/src/metrics.proto3
-rw-r--r--service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java22
3 files changed, 27 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java
index 4e4b13ce3d..0e191468cf 100644
--- a/service/java/com/android/server/wifi/WifiMetrics.java
+++ b/service/java/com/android/server/wifi/WifiMetrics.java
@@ -4424,6 +4424,8 @@ public class WifiMetrics {
public void logFirmwareAlert(String ifaceName, int errorCode) {
incrementAlertReasonCount(errorCode);
logWifiIsUnusableEvent(ifaceName, WifiIsUnusableEvent.TYPE_FIRMWARE_ALERT, errorCode);
+ logAsynchronousEvent(ifaceName,
+ WifiUsabilityStatsEntry.CAPTURE_EVENT_TYPE_FIRMWARE_ALERT, errorCode);
}
public static final String PROTO_DUMP_ARG = "wifiMetricsProto";
diff --git a/service/proto/src/metrics.proto b/service/proto/src/metrics.proto
index 6c76136036..5f577b9afe 100644
--- a/service/proto/src/metrics.proto
+++ b/service/proto/src/metrics.proto
@@ -2599,6 +2599,9 @@ message WifiUsabilityStatsEntry {
// IP reachability failure
CAPTURE_EVENT_TYPE_IP_REACHABILITY_FAILURE = 6;
+
+ // Firmware alert
+ CAPTURE_EVENT_TYPE_FIRMWARE_ALERT = 7;
}
// Absolute milliseconds from device boot when these stats were sampled
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 135ead7c86..34e2a32379 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
@@ -4503,6 +4503,28 @@ public class WifiMetricsTest extends WifiBaseTest {
}
/**
+ * Verify that firmware alerts appear in the ring buffer.
+ */
+ @Test
+ public void testLogFirmwareAlert() throws Exception {
+ when(mClock.getElapsedSinceBootMillis()).thenReturn((long) 123);
+
+ // Buffer starts out empty.
+ assertEquals(0, mWifiMetrics.mWifiUsabilityStatsEntriesRingBuffer.size());
+
+ // Add record
+ mWifiMetrics.logFirmwareAlert(TEST_IFACE_NAME, 789);
+
+ // Confirm that exactly one record is added and with default subcode.
+ assertEquals(1, mWifiMetrics.mWifiUsabilityStatsEntriesRingBuffer.size());
+ WifiUsabilityStatsEntry actual = mWifiMetrics.mWifiUsabilityStatsEntriesRingBuffer.get(0);
+ assertEquals(123, actual.timeStampMs);
+ assertEquals(WifiUsabilityStatsEntry.CAPTURE_EVENT_TYPE_FIRMWARE_ALERT,
+ actual.captureEventType);
+ assertEquals(789, actual.captureEventTypeSubcode);
+ }
+
+ /**
* Tests device mobility state metrics as states are changed.
*/
@Test