| /* |
| * Copyright (C) 2023 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| // !!!!!!!!!!!!!!!!!!!!!!!!!!!!! DISCLAIMER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| // The messages definition here must be in sync with atoms definitions in |
| // hardware/google/pixel/pixelstats/pixelatoms.proto |
| |
| // C++ namespace: android.chre.metrics |
| package android.chre.metrics; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| option java_package = "android.chre"; |
| option java_outer_classname = "Metrics"; |
| |
| /** |
| * Logs an event indicating that a nanoapp loading has failed at the HAL. |
| */ |
| message ChreHalNanoappLoadFailed { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| enum Type { |
| TYPE_UNKNOWN = 0; |
| // Corresponds to preloaded nanoapps on the device. |
| TYPE_PRELOADED = 1; |
| // Dynamic loading of a nanoapp (e.g. code download). |
| TYPE_DYNAMIC = 2; |
| } |
| |
| enum Reason { |
| REASON_UNKNOWN = 0; |
| // A generic error code that does not match any of the others. |
| REASON_ERROR_GENERIC = 1; |
| // Failure at the connection between HAL<->CHRE. |
| REASON_CONNECTION_ERROR = 2; |
| // System ran out of memory. |
| REASON_OOM = 3; |
| // Nanoapp did not have the right signing for loading. |
| REASON_SIGNATURE_MISMATCH = 4; |
| } |
| |
| // The 64-bit unique nanoapp identifier of the nanoapp that failed. |
| optional int64 nanoapp_id = 2; |
| |
| // The type of the load event. |
| optional Type type = 3; |
| |
| // The reason for the failure. |
| optional Reason reason = 4; |
| } |
| |
| /** |
| * An enum describing a module within CHRE. |
| */ |
| enum ChreModuleType { |
| CHRE_MODULE_TYPE_UNKNOWN = 0; |
| CHRE_MODULE_TYPE_CHRE = 1; // Core CHRE framework |
| CHRE_MODULE_TYPE_PAL = 2; // PAL module (could be CHPP) |
| CHRE_MODULE_TYPE_NANOAPP = 3; |
| } |
| |
| /** |
| * An enum describing the CHRE PAL type. |
| */ |
| enum ChrePalType { |
| CHRE_PAL_TYPE_UNKNOWN = 0; |
| CHRE_PAL_TYPE_SENSOR = 1; |
| CHRE_PAL_TYPE_WIFI = 2; |
| CHRE_PAL_TYPE_GNSS = 3; |
| CHRE_PAL_TYPE_WWAN = 4; |
| CHRE_PAL_TYPE_AUDIO = 5; |
| CHRE_PAL_TYPE_BLE = 6; |
| } |
| |
| /** |
| * Logs an event indicating that a CHRE PAL open has failed. |
| */ |
| message ChrePalOpenFailed { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| enum Type { |
| TYPE_UNKNOWN = 0; |
| // Initial open when CHRE starts. |
| INITIAL_OPEN = 1; |
| // Any form of "reopen" event internally in the PAL. |
| REOPEN = 2; |
| } |
| |
| // The PAL this failure event is for. |
| optional ChrePalType pal = 2; |
| |
| // The type of failure observed. |
| optional Type type = 3; |
| } |
| |
| /** |
| * The type of CHRE API request. |
| */ |
| enum ChreApiType { |
| CHRE_API_TYPE_UNKNOWN = 0; |
| CHRE_API_TYPE_WIFI_SCAN_MONITOR = 1; |
| CHRE_API_TYPE_WIFI_ACTIVE_SCAN = 2; |
| CHRE_API_TYPE_WIFI_RTT_RANGING = 3; |
| } |
| |
| /** |
| * The type of CHRE API error. |
| */ |
| enum ChreError { |
| CHRE_ERROR_UNKNOWN = 0; |
| |
| // No error occurred. |
| CHRE_ERROR_NONE = 1; |
| |
| // An unspecified failure occurred. |
| CHRE_ERROR = 2; |
| |
| // One or more supplied arguments are invalid. |
| CHRE_ERROR_INVALID_ARGUMENT = 3; |
| |
| // Unable to satisfy request because the system is busy. |
| CHRE_ERROR_BUSY = 4; |
| |
| // Unable to allocate memory. |
| CHRE_ERROR_NO_MEMORY = 5; |
| |
| // The requested feature is not supported. |
| CHRE_ERROR_NOT_SUPPORTED = 6; |
| |
| // A timeout occurred while processing the request. |
| CHRE_ERROR_TIMEOUT = 7; |
| |
| // The relevant capability is disabled, for example due to a user |
| // configuration that takes precedence over this request. |
| CHRE_ERROR_FUNCTION_DISABLED = 8; |
| } |
| |
| /** |
| * Distribution of CHRE API error codes. |
| */ |
| message ChreApiErrorCodeDistributionTaken { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The chreGetTime() value when this snapshot was taken, in milliseconds. |
| optional int32 snapshot_chre_get_time_ms = 2; |
| |
| // The CHRE API type. |
| optional ChreApiType api_type = 3; |
| |
| // Corresponds to the CHRE error code that occurred, as defined in the |
| // "enum chreError" field in chre_api/chre/common.h. |
| optional ChreError error_code = 4; |
| optional int32 num_errors = 5; |
| } |
| |
| /** |
| * Snapshot of the dynamic memory allocated in CHRE. |
| */ |
| message ChreDynamicMemorySnapshotReported { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The chreGetTime() value when this snapshot was taken, in milliseconds. |
| optional int32 snapshot_chre_get_time_ms = 2; |
| |
| // The type of the module. |
| optional ChreModuleType module_type = 3; |
| |
| // The unique 64-bit ID for a nanoapp, only used if the module_type is |
| // NANOAPP. If module_type is PAL, then it represents the ChrePalType enum. If |
| // the module_type is CHRE, then a zero value should be used. |
| optional int64 pal_type_or_nanoapp_id = 4; |
| |
| // The max allocation amount of this module in bytes. |
| optional int32 max_allocation_bytes = 5; |
| |
| // The current allocation amount of this module in bytes. |
| optional int32 current_allocation_bytes = 6; |
| } |
| |
| /** |
| * Snapshot of the event queue stats in CHRE. |
| */ |
| message ChreEventQueueSnapshotReported { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The chreGetTime() value when this snapshot was taken, in milliseconds. |
| optional int32 snapshot_chre_get_time_ms = 2; |
| |
| // The maximum size the event queue got to (i.e. num pending events). |
| optional int32 max_event_queue_size = 3; |
| |
| // The average size the event queue got to (i.e. num pending events). |
| optional int32 mean_event_queue_size = 4; |
| |
| // The number of events that were dropped due to capacity limits. |
| optional int32 num_dropped_events = 5; |
| |
| // The maximum amount of time it took for an event, from when it was received, |
| // to when it was delivered to all interested modules. This value represents |
| // the total delay within the CHRE subsystem. |
| optional int64 max_queue_delay_us = 6; |
| |
| // The mean value of the delay in microseconds. |
| optional int64 mean_queue_delay_us = 7; |
| } |
| |
| /** |
| * Indicates that a nanoapp has woken up the AP. |
| */ |
| message ChreApWakeUpOccurred { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The 64-bit unique nanoapp identifier that describes the entity that has |
| // caused an AP wake-up from CHRE. Whenever this event occurs, this means that |
| // the nanoapp sent a message to the AP causing a transition between |
| // suspend/wake-up. |
| optional int64 nanoapp_id = 2; |
| } |