240 lines
6.9 KiB
Protocol Buffer
240 lines
6.9 KiB
Protocol Buffer
|
|
/*
|
||
|
|
* 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;
|
||
|
|
}
|