1446 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
			
		
		
	
	
			1446 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
| /*
 | |
|  * Copyright (C) 2018 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";
 | |
| 
 | |
| // C++ namespace: android::hardware::google::pixel::PixelAtoms
 | |
| package android.hardware.google.pixel.PixelAtoms;
 | |
| 
 | |
| option java_package = "android.hardware.google.pixel";
 | |
| option java_outer_classname = "PixelAtoms";
 | |
| 
 | |
| /*
 | |
|  * Please note that the following features are not currently supported by
 | |
|  * the IStats->reportVendorAtom implementation:
 | |
|  *   - types outside of int, long, float, and string (ex. uint)
 | |
|  *   - submessages within an atom
 | |
|  *   - repeated fields - arrays must be unrolled
 | |
|  *   - field # 1 - this will be occupied by the vendor namespace
 | |
|  */
 | |
| 
 | |
| /* Allocated atom IDs. */
 | |
| message Atom {
 | |
|     oneof pushed {
 | |
|       // AOSP atom ID range starts at 105000
 | |
|       ChargeStats charge_stats = 105000;
 | |
|       VoltageTierStats voltage_tier_stats = 105001;
 | |
|       BatteryCapacity battery_capacity = 105002;
 | |
|       StorageUfsHealth storage_ufs_health = 105003;
 | |
|       F2fsStatsInfo f2fs_stats = 105004;
 | |
|       ZramMmStat zram_mm_stat = 105005;
 | |
|       ZramBdStat zram_bd_stat = 105006;
 | |
|       BootStatsInfo boot_stats = 105007;
 | |
|       WirelessChargingStats wireless_charging_stats = 105008;
 | |
|       DeviceOrientation device_orientation = 105009;
 | |
|       BatteryCapacityFG fg_capacity = 105010;
 | |
|       PdVidPid pd_vid_pid = 105011;
 | |
|       BatteryEEPROM battery_eeprom = 105012;
 | |
|       VendorSpeakerImpedance vendor_speaker_impedance = 105013; // moved from atoms.proto
 | |
|       StorageUfsResetCount ufs_reset_count = 105014;
 | |
|       PixelMmMetricsPerHour pixel_mm_metrics_per_hour = 105015;
 | |
|       PixelMmMetricsPerDay pixel_mm_metrics_per_day = 105016;
 | |
|       F2fsCompressionInfo f2fs_compression_info = 105017;
 | |
|       VendorChargeCycles vendor_charge_cycles = 105018; // moved from atoms.proto
 | |
|       VendorHardwareFailed vendor_hardware_failed = 105019; // moved from atoms.proto
 | |
|       VendorSlowIo vendor_slow_io = 105020; // moved from atoms.proto
 | |
|       VendorSpeechDspStat vendor_speech_dsp_stat = 105021; // moved from atoms.proto
 | |
|       VendorPhysicalDropDetected vendor_physical_drop_detected = 105022; // moved from atoms.proto
 | |
|       VendorUsbPortOverheat vendor_usb_port_overheat = 105023; // moved from atoms.proto
 | |
|       CmaStatus cma_status = 105024;
 | |
|       CmaStatusExt cma_status_ext = 105025;
 | |
|       VendorBatteryHealthSnapshot vendor_battery_health_snapshot = 105026; // moved from atoms.proto
 | |
|       VendorBatteryCausedShutdown vendor_battery_caused_shutdown = 105027; // moved from atoms.proto
 | |
|       F2fsGcSegmentInfo f2fs_gc_segment_info = 105028;
 | |
|       PowerMitigationStats mitigation_stats = 105029; // moved from atoms.proto
 | |
| 
 | |
|       CitadelVersion citadel_version = 100018; // moved from vendor proprietary
 | |
|       CitadelEvent citadel_event = 100019;  // moved from vendor proprietary
 | |
|       VendorSpeakerStatsReported vendor_speaker_stats_reported = 105030;
 | |
| 
 | |
|       ChreHalNanoappLoadFailed chre_hal_nanoapp_load_failed = 105031;
 | |
|       ChrePalOpenFailed chre_pal_open_failed = 105032;
 | |
|       ChreApiErrorCodeDistributionTaken chre_api_error_code_distribution_taken = 105033;
 | |
|       ChreDynamicMemorySnapshotReported chre_dynamic_memory_snapshot_reported = 105034;
 | |
|       ChreEventQueueSnapshotReported chre_event_queue_snapshot_reported = 105035;
 | |
|       ChreApWakeUpOccurred chre_ap_wake_up_occurred = 105036;
 | |
| 
 | |
|       BatteryHealthStatus battery_health_status = 105037;
 | |
|       BatteryHealthUsage battery_health_usage = 105038;
 | |
|       F2fsSmartIdleMaintEnabledStateChanged f2fs_smart_idle_maint_enabled_state_changed = 105039;
 | |
|       BlockStatsReported block_stats_reported = 105040;
 | |
|       VendorAudioHardwareStatsReported vendor_audio_hardware_stats_reported = 105041;
 | |
| 
 | |
|       ThermalDfsStats thermal_dfs_stats = 105042;
 | |
|       VendorLongIRQStatsReported vendor_long_irq_stats_reported = 105043;
 | |
|       VendorResumeLatencyStats vendor_resume_latency_stats = 105044;
 | |
|       VendorTempResidencyStats vendor_temp_residency_stats = 105045;
 | |
| 
 | |
|       PcieLinkStatsReported pcie_link_stats = 105047;
 | |
|     }
 | |
|     // AOSP atom ID range ends at 109999
 | |
| }
 | |
| 
 | |
| /* Supported reverse domain names. */
 | |
| message ReverseDomainNames {
 | |
|     optional string pixel = 1 [default = "com.google.pixel"];
 | |
| }
 | |
| 
 | |
| /* A message containing detailed statistics and debug information about a charge session. */
 | |
| message ChargeStats {
 | |
|     /* Charge Adapter stats. */
 | |
|     enum AdapterType {
 | |
|         ADAPTER_TYPE_UNKNOWN = 0;
 | |
|         ADAPTER_TYPE_USB = 1;
 | |
|         ADAPTER_TYPE_USB_SDP = 2;
 | |
|         ADAPTER_TYPE_USB_DCP = 3;
 | |
|         ADAPTER_TYPE_USB_CDP = 4;
 | |
|         ADAPTER_TYPE_USB_ACA = 5;
 | |
|         ADAPTER_TYPE_USB_C = 6;
 | |
|         ADAPTER_TYPE_USB_PD = 7;
 | |
|         ADAPTER_TYPE_USB_PD_DRP = 8;
 | |
|         ADAPTER_TYPE_USB_PD_PPS = 9;
 | |
|         ADAPTER_TYPE_USB_PD_BRICKID = 10;
 | |
|         ADAPTER_TYPE_HVDCP = 11;
 | |
|         ADAPTER_TYPE_HVDCP3 = 12;
 | |
|         ADAPTER_TYPE_FLOAT = 13;
 | |
|         ADAPTER_TYPE_WLC  = 14;
 | |
|         ADAPTER_TYPE_WLC_EPP = 15;
 | |
|         ADAPTER_TYPE_WLC_SPP = 16;
 | |
|         ADAPTER_TYPE_GPP = 17;
 | |
|         ADAPTER_TYPE_10W = 18;
 | |
|         ADAPTER_TYPE_L7 = 19;
 | |
|         ADAPTER_TYPE_DL = 20;
 | |
|         ADAPTER_TYPE_WPC_EPP = 21;
 | |
|         ADAPTER_TYPE_WPC_GPP = 22;
 | |
|         ADAPTER_TYPE_WPC_10W = 23;
 | |
|         ADAPTER_TYPE_WPC_BPP = 24;
 | |
|         ADAPTER_TYPE_WPC_L7 = 25;
 | |
|         ADAPTER_TYPE_EXT = 26;
 | |
|         ADAPTER_TYPE_EXT1 = 27;
 | |
|         ADAPTER_TYPE_EXT2 = 28;
 | |
|         ADAPTER_TYPE_EXT_UNKNOWN = 29;
 | |
|     }
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Type of charge adapter, enumerated above. */
 | |
|     optional AdapterType adapter_type = 2;
 | |
|     /* Max negotiated voltage by charge adapter, in mV. */
 | |
|     optional int32 adapter_voltage = 3;
 | |
|     /* Max negotiated current by charge adapter current, in mA. */
 | |
|     optional int32 adapter_amperage = 4;
 | |
| 
 | |
|     /* Stats at beginning of charge session. */
 | |
|     /* System State of Charge, in percent. */
 | |
|     optional int32 ssoc_in = 5;
 | |
|     /* Voltage in mV. */
 | |
|     optional int32 voltage_in = 6;
 | |
| 
 | |
|     /* Stats at end of charge session. */
 | |
|     /* System State of Charge, in percent. */
 | |
|     optional int32 ssoc_out = 7;
 | |
|     /* Voltage in mV. */
 | |
|     optional int32 voltage_out = 8;
 | |
| 
 | |
|     /**
 | |
|      * These values are  meant to represent status of the charging device, used
 | |
|      * to validate the charging algorithm and explain charging performances.
 | |
|      * Examples of the content of the register:
 | |
|      * - APDO, PDO (power capabilities of the device, eg. 5V3A, 9V2A, 20V2A) for wired charging
 | |
|      * - Wireless charging MFG code. This is the value of a register of the WLC integrated
 | |
|      *   circuit to identify the vendor and type of WLC pad
 | |
|      * - Receiver operating frequency
 | |
|      * - Register status
 | |
|      */
 | |
|     optional int32 adapter_capabilities0 = 9;
 | |
|     optional int32 adapter_capabilities1 = 10;
 | |
|     optional int32 adapter_capabilities2 = 11;
 | |
|     optional int32 adapter_capabilities3 = 12;
 | |
|     optional int32 adapter_capabilities4 = 13;
 | |
| 
 | |
|     /**
 | |
|      * These are values which reports the state of the wireless receiver, which will help in
 | |
|      * debugging charging issues and alternate configurations.
 | |
|      */
 | |
|     optional int32 receiver_state0 = 14;
 | |
|     optional int32 receiver_state1 = 15;
 | |
| 
 | |
|     /* AACR feature to record capacity */
 | |
|     optional int32 charge_capacity = 16;
 | |
| }
 | |
| 
 | |
| /* A message containing stats from each charge voltage tier. */
 | |
| message VoltageTierStats {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Voltage tier number, custom to implementation, should be <= 3. */
 | |
|     optional int32 voltage_tier = 2;
 | |
| 
 | |
|     /* Stats when entering voltage tier. */
 | |
|     /* State of charge, in percent. */
 | |
|     optional float soc_in = 3;
 | |
|     /* Coulomb count, in mAh. */
 | |
|     optional int32 cc_in = 4;
 | |
|     /* Battery temperature, in deciC. */
 | |
|     optional int32 temp_in = 5;
 | |
| 
 | |
|     /* Time spent at various charge speeds, in seconds. */
 | |
|     optional int32 time_fast_secs = 6;
 | |
|     optional int32 time_taper_secs = 7;
 | |
|     optional int32 time_other_secs = 8;
 | |
| 
 | |
|     /* Battery temperature stats, in deciC. */
 | |
|     optional int32 temp_min = 9;
 | |
|     optional int32 temp_avg = 10;
 | |
|     optional int32 temp_max = 11;
 | |
| 
 | |
|     /* Battery current stats, in mA. */
 | |
|     optional int32 ibatt_min = 12;
 | |
|     optional int32 ibatt_avg = 13;
 | |
|     optional int32 ibatt_max = 14;
 | |
| 
 | |
|     /* Input current limit stats, in mA. */
 | |
|     optional int32 icl_min = 15;
 | |
|     optional int32 icl_avg = 16;
 | |
|     optional int32 icl_max = 17;
 | |
| 
 | |
|     /**
 | |
|      * Efficiency number, receiver operating frequency in kHz for wireless charging
 | |
|      * (alignment)
 | |
|      */
 | |
|     optional int32 charging_operating_point = 18;
 | |
|     /* The minimum power out of the adapter at the given charging tier */
 | |
|     optional int32 min_adapter_power_out = 19;
 | |
|     /* The time-averaged power out of the adapter at the given charging tier */
 | |
|     optional int32 time_avg_adapter_power_out = 20;
 | |
|     /* The maximum power out of the adapter at the given charging tier */
 | |
|     optional int32 max_adapter_power_out = 21;
 | |
| }
 | |
| 
 | |
| /* A message containing an alternate proprietary full battery capacity estimate. */
 | |
| message BatteryCapacity {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Sum of the change in coulomb count. */
 | |
|     optional int32 delta_cc_sum = 2;
 | |
|     /* Sum of the change in state of charge (battery level). */
 | |
|     optional int32 delta_vfsoc_sum = 3;
 | |
| }
 | |
| 
 | |
| /* A message containing health values of UFS */
 | |
| message StorageUfsHealth {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* The value of lifetimeA for UFS health */
 | |
|     optional int32 lifetime_a = 2;
 | |
|     /* The value of lifetimeB for UFS health */
 | |
|     optional int32 lifetime_b = 3;
 | |
|     /* The value of lifetimeC for UFS health */
 | |
|     optional int32 lifetime_c = 4;
 | |
| }
 | |
| 
 | |
| /* A message containing filesystem stats of F2FS */
 | |
| message F2fsStatsInfo {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* The value of dirty segments of f2fs */
 | |
|     optional int32 dirty_segments = 2;
 | |
|     /* The value of free segments of f2fs */
 | |
|     optional int32 free_segments = 3;
 | |
|     /* The times of checkpoint function called in foreground*/
 | |
|     optional int32 cp_calls_fg = 4;
 | |
|     /* The times of checkpoint function called in background */
 | |
|     optional int32 cp_calls_bg = 5;
 | |
|     /* The times of garbage collection function called in foreground */
 | |
|     optional int32 gc_calls_fg = 6;
 | |
|     /* The times of garbage collection function called in background */
 | |
|     optional int32 gc_calls_bg = 7;
 | |
|     /* The amount of blocks been moved by garbage collection in foreground */
 | |
|     optional int32 moved_blocks_fg = 8;
 | |
|     /* The amount of blocks been moved by garbage collection in background */
 | |
|     optional int32 moved_blocks_bg = 9;
 | |
|     /* The average of how many valid blocks is in a segment */
 | |
|     optional int32 valid_blocks = 10;
 | |
| }
 | |
| 
 | |
| message ZramMmStat {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* The value of original memory size */
 | |
|     optional int64 orig_data_size = 2;
 | |
|     /* The value of compressed memory size */
 | |
|     optional int64 compr_data_size = 3;
 | |
|     /* The value of consumed memory size to store compressed memory */
 | |
|     optional int64 mem_used_total = 4;
 | |
|     /* The value of number of page filled with same elements data */
 | |
|     optional int64 same_pages = 5;
 | |
|     /* The value of number of incompressible page */
 | |
|     optional int64 huge_pages = 6;
 | |
|     /* The value of number of incompressible pages since boot */
 | |
|     optional int64 huge_pages_since_boot = 7;
 | |
| }
 | |
| 
 | |
| message ZramBdStat {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* the number of pages in backing device */
 | |
|     optional int64 bd_count = 2;
 | |
|     /* The number of pages readed from backing device */
 | |
|     optional int64 bd_reads = 3;
 | |
|     /* The number of pages written to backing device */
 | |
|     optional int64 bd_writes = 4;
 | |
| }
 | |
| 
 | |
| /* A message containing boot times */
 | |
| message BootStatsInfo {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* The F2FS fsck time in secs */
 | |
|     optional int32 fsck_time_sec = 2;
 | |
|     /* The F2FS mounted time in secs */
 | |
|     optional int32 mounted_time_sec = 3;
 | |
|     /* The F2FS checkpoint=disable time in secs */
 | |
|     optional int32 checkpoint_time_sec = 4;
 | |
| }
 | |
| 
 | |
| /* A message containing wireless charging health info. */
 | |
| message WirelessChargingStats {
 | |
|     /* Captures if a google charger used when start wireless charging */
 | |
|     enum ChargerVendor {
 | |
|         VENDOR_UNKNOWN = 0;
 | |
|         VENDOR_GOOGLE = 1;
 | |
|     }
 | |
| 
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional ChargerVendor charger_vendor = 2;
 | |
| }
 | |
| 
 | |
| /* Current device Orientation */
 | |
| message DeviceOrientation {
 | |
|     enum Orientation {
 | |
|         ORIENTATION_UNKNOWN = 0;
 | |
|         ORIENTATION_0 = 1;
 | |
|         ORIENTATION_90 = 2;
 | |
|         ORIENTATION_180 = 3;
 | |
|         ORIENTATION_270 = 4;
 | |
|     }
 | |
| 
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Device orientation. */
 | |
|     optional Orientation orientation = 2;
 | |
| }
 | |
| 
 | |
| /* Raw battery capacity stats */
 | |
| message BatteryCapacityFG {
 | |
|     enum LogReason {
 | |
|         LOG_REASON_UNKNOWN = 0;
 | |
|         LOG_REASON_CONNECTED = 1;
 | |
|         LOG_REASON_DISCONNECTED = 2;
 | |
|         LOG_REASON_FULL_CHARGE = 3;
 | |
|         LOG_REASON_PERCENT_SKIP = 4;
 | |
|         LOG_REASON_DIVERGING_FG = 5;
 | |
|     }
 | |
| 
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Uevent logging reason, enumerated above. */
 | |
|     optional LogReason capacity_log_reason = 2;
 | |
| 
 | |
|     /* The battery capacity reported from the FG (fuel gauge) hardware  */
 | |
|     optional float capacity_gdf = 3;
 | |
|     /* The filtered system battery capacity reported to the UI */
 | |
|     optional float capacity_ssoc = 4;
 | |
|     /* The fuel gauge capacity curve midpoint FG (fuel gauge) value */
 | |
|     optional float capacity_gdf_curve = 5;
 | |
|     /* The fuel gauge capacity curve midpoint UI value */
 | |
|     optional float capacity_ssoc_curve = 6;
 | |
| }
 | |
| 
 | |
| message  PdVidPid {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Vendor ID of wired charger */
 | |
|     optional int32 vid = 2;
 | |
|     /* Product ID of wired charger */
 | |
|     optional int32 pid = 3;
 | |
| }
 | |
| 
 | |
| message BatteryEEPROM {
 | |
|     optional string reverse_domain_name = 1;
 | |
|    /* The cycle count number; record of charge/discharge times */
 | |
|     optional int32 cycle_cnt = 2;
 | |
|     /* The current full capacity of the battery under nominal conditions */
 | |
|     optional int32 full_cap = 3;
 | |
|     /* The battery equivalent series resistance */
 | |
|     optional int32 esr = 4;
 | |
|     /* Battery resistance related to temperature change */
 | |
|     optional int32 rslow = 5;
 | |
|     /* Battery health indicator reflecting the battery age state */
 | |
|     optional int32 soh = 6;
 | |
|     /* The battery temperature */
 | |
|     optional int32 batt_temp = 7;
 | |
| 
 | |
|     /* Battery state of charge (SOC) shutdown point */
 | |
|     optional int32 cutoff_soc = 8;
 | |
|     /* Raw battery state of charge (SOC), based on battery current (CC = Coulomb Counter) */
 | |
|     optional int32 cc_soc = 9;
 | |
|     /* Estimated battery state of charge (SOC) from batt_soc with endpoint limiting (0% and 100%) */
 | |
|     optional int32 sys_soc = 10;
 | |
|     /* Filtered monotonic SOC, handles situations where the cutoff_soc is increased and
 | |
|      * then decreased from the battery physical properties
 | |
|      */
 | |
|     optional int32 msoc = 11;
 | |
|     /* Estimated SOC derived from cc_soc that provides voltage loop feedback correction using
 | |
|      * battery voltage, current, and status values
 | |
|      */
 | |
|     optional int32 batt_soc = 12;
 | |
| 
 | |
|     /* Field used for data padding in the EEPROM data */
 | |
|     optional int32 reserve = 13;
 | |
| 
 | |
|     /* The maximum battery temperature ever seen */
 | |
|     optional int32 max_temp = 14;
 | |
|     /* The minimum battery temperature ever seen */
 | |
|     optional int32 min_temp = 15;
 | |
|     /* The maximum battery voltage ever seen */
 | |
|     optional int32 max_vbatt = 16;
 | |
|     /* The minimum battery voltage ever seen */
 | |
|     optional int32 min_vbatt = 17;
 | |
|     /* The maximum battery current ever seen */
 | |
|     optional int32 max_ibatt = 18;
 | |
|     /* The minimum battery current ever seen */
 | |
|     optional int32 min_ibatt = 19;
 | |
|     /* Field used to verify the integrity of the EEPROM data */
 | |
|     optional int32 checksum = 20;
 | |
| 
 | |
|     /* Extend data for P21 */
 | |
|     /* Temperature compensation information */
 | |
|     optional int32 tempco = 21;
 | |
|     /* Learned characterization related to the voltage gauge */
 | |
|     optional int32 rcomp0 = 22;
 | |
|     /* For time to monitor the life of cell */
 | |
|     optional int32 timer_h = 23;
 | |
|     /* The full capacity of the battery learning at the end of every charge cycle */
 | |
|     optional int32 full_rep = 24;
 | |
| }
 | |
| 
 | |
| /* A message containing an exceptional event from citadel. */
 | |
| message CitadelEvent {
 | |
|   enum Event {
 | |
|     ALERT = 1;
 | |
|     REBOOTED = 2;
 | |
|     UPGRADED = 3;
 | |
|     ALERT_V2 = 4;
 | |
|     SEC_CH_STATE = 5;
 | |
|   };
 | |
|   optional string reverse_domain_name = 1;
 | |
|   optional Event event = 2;
 | |
|   optional int32 reset_count = 3;
 | |
|   optional int64 uptime_micros = 4;
 | |
|   enum Priority {
 | |
|     LOW = 0;
 | |
|     MEDIUM = 1;
 | |
|     HIGH = 2;
 | |
|   };
 | |
|   optional Priority priority = 5;
 | |
| 
 | |
|   // ALERT-specific fields.  These fields correspond to the interrupt status
 | |
|   // bits for alerts within citadel.  When alerts fire one or more of these
 | |
|   // bits are set to indicate the alert source.
 | |
|   optional int32 intr_sts_0 = 6;
 | |
|   optional int32 intr_sts_1 = 7;
 | |
|   optional int32 intr_sts_2 = 8;
 | |
| 
 | |
|   // REBOOTED-specific fields.  These fields correspond to the details of how
 | |
|   // the hardware reboot occurred.  A reboot is a noteworthy event for citadel,
 | |
|   // as it can be triggered by events like stack overflow or other software
 | |
|   // bugs.
 | |
|   optional int32 rstsrc = 9;
 | |
|   optional int32 exitpd = 10;
 | |
|   optional int32 which0 = 11;
 | |
|   optional int32 which1 = 12;
 | |
| 
 | |
|   // UPGRADED-specific field. This field corresponds to the result of FW
 | |
|   // upgrade for citadel.
 | |
|   optional int32 upgrade_state = 13;
 | |
| 
 | |
|   // ALERT_V2-specific field. This field corresponds to the GLOBALSEC Log
 | |
|   // which contains normal globalsec, camo, temp and buserr.
 | |
|   optional int32 alert_grp_0 = 14;
 | |
|   optional int32 alert_grp_1 = 15;
 | |
|   optional int32 alert_grp_2 = 16;
 | |
|   optional int32 alert_grp_3 = 17;
 | |
|   optional int32 camo_breaches_0 = 18;
 | |
|   optional int32 camo_breaches_1 = 19;
 | |
|   optional int32 temp_min = 20;
 | |
|   optional int32 temp_max = 21;
 | |
|   optional int32 bus_err = 22;
 | |
| 
 | |
|   // SEC_CH_STATE-specific filed. This field corresponds to the state
 | |
|   // of GSA-GSC secure channel.
 | |
|   optional int32 sec_ch_state = 23;
 | |
| }
 | |
| 
 | |
| /* A message containing the citadel firmware version. */
 | |
| message CitadelVersion {
 | |
|    optional string reverse_domain_name = 1;
 | |
|    optional string version = 2;
 | |
| }
 | |
| 
 | |
| /* A message containing the speaker impedance. */
 | |
|  message VendorSpeakerImpedance {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional int32 speaker_location = 2;
 | |
|     optional int32 impedance = 3;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Logs the reported vendor speaker health stats.
 | |
|  * Logged from: hardware/google/pixel/pixelstats/SysfsCollector.cpp
 | |
|  */
 | |
| message VendorSpeakerStatsReported {
 | |
|   /* Vendor reverse domain name (expecting "com.google.pixel") */
 | |
|   optional string reverse_domain_name = 1;
 | |
|   /* The location of speaker; 0 = left , 1 = right */
 | |
|   optional int32 speaker_location = 2;
 | |
|   /* The speaker's impedance value (milliOhm) */
 | |
|   optional int32 impedance = 3;
 | |
|   /* The speaker's maximum temperature (milliDegree C) */
 | |
|   optional int32 max_temperature = 4;
 | |
|   /* The speaker's execursion length (micrometer) */
 | |
|   optional int32 excursion = 5;
 | |
|   /* The speaker's heart beat count */
 | |
|   optional int32 heartbeat = 6;
 | |
| }
 | |
| 
 | |
| /* A message containing how many times of ufs host reset */
 | |
| message StorageUfsResetCount {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* How many UFS error reset are triggered */
 | |
|     optional int32 host_reset_count = 2;
 | |
| }
 | |
| 
 | |
| /* A message containing Pixel memory metrics collected hourly. */
 | |
| message PixelMmMetricsPerHour {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional int64 free_pages = 2;
 | |
|     optional int64 anon_pages = 3;
 | |
|     optional int64 file_pages = 4;
 | |
|     optional int64 slab_reclaimable = 5;
 | |
|     optional int64 zspages = 6;
 | |
|     optional int64 unevictable = 7;
 | |
|     optional int64 ion_total_pools = 8;
 | |
|     optional int64 gpu_memory = 9;
 | |
|     optional int64 slab_unreclaimable = 10;
 | |
|     optional int64 psi_cpu_some_total = 11;
 | |
|     optional int64 psi_io_full_total = 12;
 | |
|     optional int64 psi_io_some_total = 13;
 | |
|     optional int64 psi_mem_full_total = 14;
 | |
|     optional int64 psi_mem_some_total = 15;
 | |
|     optional int32 psi_cpu_some_avg10_min = 16;
 | |
|     optional int32 psi_cpu_some_avg10_max = 17;
 | |
|     optional int32 psi_cpu_some_avg10_avg = 18;
 | |
|     optional int32 psi_cpu_some_avg60_min = 19;
 | |
|     optional int32 psi_cpu_some_avg60_max = 20;
 | |
|     optional int32 psi_cpu_some_avg60_avg = 21;
 | |
|     optional int32 psi_cpu_some_avg300_min = 22;
 | |
|     optional int32 psi_cpu_some_avg300_max = 23;
 | |
|     optional int32 psi_cpu_some_avg300_avg = 24;
 | |
|     optional int32 psi_io_full_avg10_min = 25;
 | |
|     optional int32 psi_io_full_avg10_max = 26;
 | |
|     optional int32 psi_io_full_avg10_avg = 27;
 | |
|     optional int32 psi_io_full_avg60_min = 28;
 | |
|     optional int32 psi_io_full_avg60_max = 29;
 | |
|     optional int32 psi_io_full_avg60_avg = 30;
 | |
|     optional int32 psi_io_full_avg300_min = 31;
 | |
|     optional int32 psi_io_full_avg300_max = 32;
 | |
|     optional int32 psi_io_full_avg300_avg = 33;
 | |
|     optional int32 psi_io_some_avg10_min = 34;
 | |
|     optional int32 psi_io_some_avg10_max = 35;
 | |
|     optional int32 psi_io_some_avg10_avg = 36;
 | |
|     optional int32 psi_io_some_avg60_min = 37;
 | |
|     optional int32 psi_io_some_avg60_max = 38;
 | |
|     optional int32 psi_io_some_avg60_avg = 39;
 | |
|     optional int32 psi_io_some_avg300_min = 40;
 | |
|     optional int32 psi_io_some_avg300_max = 41;
 | |
|     optional int32 psi_io_some_avg300_avg = 42;
 | |
|     optional int32 psi_mem_full_avg10_min = 43;
 | |
|     optional int32 psi_mem_full_avg10_max = 44;
 | |
|     optional int32 psi_mem_full_avg10_avg = 45;
 | |
|     optional int32 psi_mem_full_avg60_min = 46;
 | |
|     optional int32 psi_mem_full_avg60_max = 47;
 | |
|     optional int32 psi_mem_full_avg60_avg = 48;
 | |
|     optional int32 psi_mem_full_avg300_min = 49;
 | |
|     optional int32 psi_mem_full_avg300_max = 50;
 | |
|     optional int32 psi_mem_full_avg300_avg = 51;
 | |
|     optional int32 psi_mem_some_avg10_min = 52;
 | |
|     optional int32 psi_mem_some_avg10_max = 53;
 | |
|     optional int32 psi_mem_some_avg10_avg = 54;
 | |
|     optional int32 psi_mem_some_avg60_min = 55;
 | |
|     optional int32 psi_mem_some_avg60_max = 56;
 | |
|     optional int32 psi_mem_some_avg60_avg = 57;
 | |
|     optional int32 psi_mem_some_avg300_min = 58;
 | |
|     optional int32 psi_mem_some_avg300_max = 59;
 | |
|     optional int32 psi_mem_some_avg300_avg = 60;
 | |
| }
 | |
| 
 | |
| /* A message containing Pixel memory metrics collected daily. */
 | |
| message PixelMmMetricsPerDay {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional int64 workingset_refault = 2;  /* refault_file */
 | |
|     optional int64 pswpin = 3;
 | |
|     optional int64 pswpout = 4;
 | |
|     optional int64 allocstall_dma = 5;
 | |
|     optional int64 allocstall_dma32 = 6;
 | |
|     optional int64 allocstall_normal = 7;
 | |
|     optional int64 allocstall_movable = 8;
 | |
|     optional int64 pgalloc_dma = 9;
 | |
|     optional int64 pgalloc_dma32 = 10;
 | |
|     optional int64 pgalloc_normal = 11;
 | |
|     optional int64 pgalloc_movable = 12;
 | |
|     optional int64 pgsteal_kswapd = 13;
 | |
|     optional int64 pgsteal_direct = 14;
 | |
|     optional int64 pgscan_kswapd = 15;
 | |
|     optional int64 pgscan_direct = 16;
 | |
|     optional int64 oom_kill = 17;
 | |
|     optional int64 pgalloc_high = 18;
 | |
|     optional int64 pgcache_hit = 19;
 | |
|     optional int64 pgcache_miss = 20;
 | |
|     optional int64 kswapd_stime_clks = 21;
 | |
|     optional int64 kcompactd_stime_clks = 22;
 | |
|     optional int64 direct_reclaim_native_latency_total_time = 23;
 | |
|     optional int64 direct_reclaim_native_latency0 = 24;
 | |
|     optional int64 direct_reclaim_native_latency1 = 25;
 | |
|     optional int64 direct_reclaim_native_latency2 = 26;
 | |
|     optional int64 direct_reclaim_native_latency3 = 27;
 | |
|     optional int64 direct_reclaim_visible_latency_total_time = 28;
 | |
|     optional int64 direct_reclaim_visible_latency0 = 29;
 | |
|     optional int64 direct_reclaim_visible_latency1 = 30;
 | |
|     optional int64 direct_reclaim_visible_latency2 = 31;
 | |
|     optional int64 direct_reclaim_visible_latency3 = 32;
 | |
|     optional int64 direct_reclaim_top_latency_total_time = 33;
 | |
|     optional int64 direct_reclaim_top_latency0 = 34;
 | |
|     optional int64 direct_reclaim_top_latency1 = 35;
 | |
|     optional int64 direct_reclaim_top_latency2 = 36;
 | |
|     optional int64 direct_reclaim_top_latency3 = 37;
 | |
|     optional int64 direct_reclaim_other_latency_total_time = 38;
 | |
|     optional int64 direct_reclaim_other_latency0 = 39;
 | |
|     optional int64 direct_reclaim_other_latency1 = 40;
 | |
|     optional int64 direct_reclaim_other_latency2 = 41;
 | |
|     optional int64 direct_reclaim_other_latency3 = 42;
 | |
|     optional int64 compaction_total_time = 43;
 | |
|     optional int64 compaction_ev_count0 = 44;
 | |
|     optional int64 compaction_ev_count1 = 45;
 | |
|     optional int64 compaction_ev_count2 = 46;
 | |
|     optional int64 compaction_ev_count3 = 47;
 | |
|     optional int64 compaction_ev_count4 = 48;
 | |
|     optional int64 workingset_refault_anon = 49;
 | |
|     optional int64 workingset_refault_file = 50;
 | |
|     optional int64 compact_success = 51;
 | |
|     optional int64 compact_fail = 52;
 | |
|     optional int64 kswapd_low_wmark_hq = 53;
 | |
|     optional int64 kswapd_high_wmark_hq = 54;
 | |
|     optional int64 thp_file_alloc = 55;
 | |
|     optional int64 thp_zero_page_alloc = 56;
 | |
|     optional int64 thp_split_page = 57;
 | |
|     optional int64 thp_migration_split = 58;
 | |
|     optional int64 thp_deferred_split_page = 59;
 | |
| }
 | |
| 
 | |
| /* A message containing CMA metrics collected from dogfooding only. */
 | |
| message CmaStatus {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   optional int32 type = 2;
 | |
|   optional int64 cma_alloc_pages_attempts = 3;
 | |
|   optional int64 cma_alloc_pages_soft_attempts = 4;
 | |
|   optional int64 cma_fail_pages = 5;
 | |
|   optional int64 cma_fail_soft_pages = 6;
 | |
|   optional int64 migrated_pages = 7;
 | |
|   optional string cma_heap_name = 8;
 | |
| }
 | |
| 
 | |
| /* A message containing CMA metrics (External). */
 | |
| message CmaStatusExt {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   optional int32 type = 2;
 | |
|   optional int64 cma_alloc_latency_low = 3;
 | |
|   optional int64 cma_alloc_latency_mid = 4;
 | |
|   optional int64 cma_alloc_latency_high = 5;
 | |
|   optional string cma_heap_name = 6;
 | |
| }
 | |
| 
 | |
| message F2fsCompressionInfo {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Show the block count written after compression since mount */
 | |
|     optional int32 compr_written_blocks = 2;
 | |
|     /* Show the saved block count with compression since mount */
 | |
|     optional int32 compr_saved_blocks = 3;
 | |
|     /* Show the count of inode newly enabled for compression since mount */
 | |
|     optional int32 compr_new_inodes = 4;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log bucketed battery charge cycles.
 | |
|  *
 | |
|  * Each bucket represents cycles of the battery past
 | |
|  * a given charge point.  For example, bucket 1 is the
 | |
|  * lowest 1/8th of the battery, and bucket 8 is 100%.
 | |
|  *
 | |
|  * Logged from:
 | |
|  * /sys/class/power_supply/bms/cycle_count, via Vendor.
 | |
|  */
 | |
| message VendorChargeCycles {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional int32 cycle_bucket_1 = 2;
 | |
|     optional int32 cycle_bucket_2 = 3;
 | |
|     optional int32 cycle_bucket_3 = 4;
 | |
|     optional int32 cycle_bucket_4 = 5;
 | |
|     optional int32 cycle_bucket_5 = 6;
 | |
|     optional int32 cycle_bucket_6 = 7;
 | |
|     optional int32 cycle_bucket_7 = 8;
 | |
|     optional int32 cycle_bucket_8 = 9;
 | |
|     optional int32 cycle_bucket_9 = 10;
 | |
|     optional int32 cycle_bucket_10 = 11;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Logs the report of a failed hardware.
 | |
|  *
 | |
|  * Logged from:
 | |
|  *  Vendor HALs.
 | |
|  *
 | |
|  */
 | |
| message VendorHardwareFailed {
 | |
|     enum HardwareType {
 | |
|       HARDWARE_FAILED_UNKNOWN = 0;
 | |
|       HARDWARE_FAILED_MICROPHONE = 1;
 | |
|       HARDWARE_FAILED_CODEC = 2;
 | |
|       HARDWARE_FAILED_SPEAKER = 3;
 | |
|       HARDWARE_FAILED_FINGERPRINT = 4;
 | |
|     }
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional HardwareType hardware_type = 2;
 | |
| 
 | |
|     /**
 | |
|      * hardware_location allows vendors to differentiate between multiple
 | |
|      * instances of the same hardware_type.  The specific locations are vendor
 | |
|      * defined integers, referring to board-specific numbering schemes.
 | |
|      */
 | |
|     optional int32 hardware_location = 3;
 | |
|     /**
 | |
|      * failure_code is specific to the HardwareType of the failed hardware.
 | |
|      * It should use one of the enum values defined below.
 | |
|      */
 | |
|     enum HardwareErrorCode {
 | |
|       UNKNOWN = 0;
 | |
|       COMPLETE = 1;
 | |
|       SPEAKER_HIGH_Z = 2;
 | |
|       SPEAKER_SHORT = 3;
 | |
|       FINGERPRINT_SENSOR_BROKEN = 4;
 | |
|       FINGERPRINT_TOO_MANY_DEAD_PIXELS = 5;
 | |
|       DEGRADE = 6;
 | |
|     }
 | |
|     optional int32 failure_code = 4;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log slow I/O operations on the primary storage.
 | |
|  */
 | |
| message VendorSlowIo {
 | |
|     // Classifications of IO Operations.
 | |
|     enum IoOperation {
 | |
|       UNKNOWN = 0;
 | |
|       READ = 1;
 | |
|       WRITE = 2;
 | |
|       UNMAP = 3;
 | |
|       SYNC = 4;
 | |
|     }
 | |
|     optional string reverse_domain_name = 1;
 | |
|     optional IoOperation operation = 2;
 | |
| 
 | |
|     // The number of slow IO operations of this type over 24 hours.
 | |
|     optional int32 count = 3;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Logs the reported speech DSP status.
 | |
|  * Logged from: Vendor audio implementation.
 | |
|  */
 | |
| message VendorSpeechDspStat {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     // The total Speech DSP uptime in milliseconds.
 | |
|     optional int32 total_uptime_millis = 2;
 | |
|     // The total Speech DSP downtime in milliseconds.
 | |
|     optional int32 total_downtime_millis = 3;
 | |
|     optional int32 total_crash_count = 4;
 | |
|     optional int32 total_recover_count = 5;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log an event when the device has been physically dropped.
 | |
|  * Reported from the /vendor partition.
 | |
|  */
 | |
| message VendorPhysicalDropDetected {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   // Confidence that the event was actually a drop, 0 -> 100
 | |
|   optional int32 confidence_pctg = 2;
 | |
|   // Peak acceleration of the drop, in 1/1000s of a g.
 | |
|   optional int32 accel_peak_thousandths_g = 3;
 | |
|   // Duration of freefall in ms
 | |
|   optional int32 freefall_time_millis = 4;
 | |
| }
 | |
| 
 | |
| /** Represents USB port overheat event. */
 | |
| message VendorUsbPortOverheat {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   /* Temperature of USB port at USB plug event, in 1/10ths of degree C. */
 | |
|   optional int32 plug_temperature_deci_c = 2;
 | |
|   /* Maximum temperature of USB port during overheat event, in 1/10ths of degree
 | |
|    * C. */
 | |
|   optional int32 max_temperature_deci_c = 3;
 | |
|   /* Time between USB plug event and overheat threshold trip, in seconds. */
 | |
|   optional int32 time_to_overheat_secs = 4;
 | |
|   /* Time between overheat threshold trip and hysteresis, in seconds. */
 | |
|   optional int32 time_to_hysteresis_secs = 5;
 | |
|   /* Time between hysteresis and active mitigation ending, in seconds. */
 | |
|   optional int32 time_to_inactive_secs = 6;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log battery health snapshot.
 | |
|  *
 | |
|  * Resistance, Voltage, Open Circuit Voltage, Temperature, and Charge Level
 | |
|  * are snapshotted periodically over 24hrs.
 | |
|  */
 | |
| message VendorBatteryHealthSnapshot {
 | |
|   enum BatterySnapshotType {
 | |
|     BATTERY_SNAPSHOT_TYPE_UNKNOWN = 0;
 | |
|     BATTERY_SNAPSHOT_TYPE_MIN_TEMP = 1;         // Snapshot at min batt temp over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MAX_TEMP = 2;         // Snapshot at max batt temp over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MIN_RESISTANCE = 3;   // Snapshot at min batt resistance over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MAX_RESISTANCE = 4;   // Snapshot at max batt resistance over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MIN_VOLTAGE = 5;      // Snapshot at min batt voltage over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MAX_VOLTAGE = 6;      // Snapshot at max batt voltage over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MIN_CURRENT = 7;      // Snapshot at min batt current over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MAX_CURRENT = 8;      // Snapshot at max batt current over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MIN_BATT_LEVEL = 9;   // Snapshot at min battery level (SoC) over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_MAX_BATT_LEVEL = 10;  // Snapshot at max battery level (SoC) over 24hrs.
 | |
|     BATTERY_SNAPSHOT_TYPE_AVG_RESISTANCE = 11;  // Snapshot at average battery resistance over 24hrs.
 | |
|   }
 | |
|   optional string reverse_domain_name = 1;
 | |
|   optional BatterySnapshotType type = 2;
 | |
|   // Temperature, in 1/10ths of degree C.
 | |
|   optional int32 temperature_deci_celsius = 3;
 | |
|   // Voltage Battery Voltage, in microVolts.
 | |
|   optional int32 voltage_micro_volt = 4;
 | |
|   // Current Battery current, in microAmps.
 | |
|   optional int32 current_micro_amps = 5;
 | |
|   // OpenCircuitVoltage Battery Open Circuit Voltage, in microVolts.
 | |
|   optional int32 open_circuit_micro_volt = 6;
 | |
|   // Resistance Battery Resistance, in microOhms.
 | |
|   optional int32 resistance_micro_ohm = 7;
 | |
|   // Level Battery Level, as % of full.
 | |
|   optional int32 level_percent = 8;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log battery caused shutdown with the last recorded voltage.
 | |
|  */
 | |
| message VendorBatteryCausedShutdown {
 | |
|  optional string reverse_domain_name = 1;
 | |
|  // The last recorded battery voltage prior to shutdown.
 | |
|  optional int32 last_recorded_micro_volt = 2;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log mitigation statistics.
 | |
|  */
 | |
| message PowerMitigationStats {
 | |
|  optional string reverse_domain_name = 1;
 | |
|  // The last triggered count: batoilo.
 | |
|  optional int32 batoilo_count = 2;
 | |
|  // The last triggered count: vdroop1.
 | |
|  optional int32 vdroop1_count = 3;
 | |
|  // The last triggered count: vdroop2.
 | |
|  optional int32 vdroop2_count = 4;
 | |
|  // The last triggered count: smpl_warn.
 | |
|  optional int32 smpl_warn_count = 5;
 | |
|  // The last triggered count: ocp_cpu1.
 | |
|  optional int32 ocp_cpu1_count = 6;
 | |
|  // The last triggered count: ocp_cpu2.
 | |
|  optional int32 ocp_cpu2_count = 7;
 | |
|  // The last triggered count: ocp_gpu.
 | |
|  optional int32 ocp_gpu_count = 8;
 | |
|  // The last triggered count: ocp_tpu.
 | |
|  optional int32 ocp_tpu_count = 9;
 | |
|  // The last triggered count: soft_ocp_cpu1.
 | |
|  optional int32 soft_ocp_cpu1_count = 10;
 | |
|  // The last triggered count: soft_ocp_cpu2.
 | |
|  optional int32 soft_ocp_cpu2_count = 11;
 | |
|  // The last triggered count: soft_ocp_gpu.
 | |
|  optional int32 soft_ocp_gpu_count = 12;
 | |
|  // The last triggered count: soft_ocp_tpu.
 | |
|  optional int32 soft_ocp_tpu_count = 13;
 | |
|  // The last triggered capacity: batoilo.
 | |
|  optional int32 batoilo_cap = 14;
 | |
|  // The last triggered capacity: vdroop1.
 | |
|  optional int32 vdroop1_cap = 15;
 | |
|  // The last triggered capacity: vdroop2.
 | |
|  optional int32 vdroop2_cap = 16;
 | |
|  // The last triggered capacity: smpl_warn.
 | |
|  optional int32 smpl_warn_cap = 17;
 | |
|  // The last triggered capacity: ocp_cpu1.
 | |
|  optional int32 ocp_cpu1_cap = 18;
 | |
|  // The last triggered capacity: ocp_cpu2.
 | |
|  optional int32 ocp_cpu2_cap = 19;
 | |
|  // The last triggered capacity: ocp_gpu.
 | |
|  optional int32 ocp_gpu_cap = 20;
 | |
|  // The last triggered capacity: ocp_tpu.
 | |
|  optional int32 ocp_tpu_cap = 21;
 | |
|  // The last triggered capacity: soft_ocp_cpu1.
 | |
|  optional int32 soft_ocp_cpu1_cap = 22;
 | |
|  // The last triggered capacity: soft_ocp_cpu2.
 | |
|  optional int32 soft_ocp_cpu2_cap = 23;
 | |
|  // The last triggered capacity: soft_ocp_gpu.
 | |
|  optional int32 soft_ocp_gpu_cap = 24;
 | |
|  // The last triggered capacity: soft_ocp_tpu.
 | |
|  optional int32 soft_ocp_tpu_cap = 25;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log thermal statistics.
 | |
|  */
 | |
| message ThermalDfsStats {
 | |
|  optional string reverse_domain_name = 1;
 | |
|  // The last count of BIG cluster dfs triggers
 | |
|  optional int32 big_dfs_count = 2;
 | |
|  // The last count of MID cluster dfs triggers
 | |
|  optional int32 mid_dfs_count = 3;
 | |
|  // The last count of LITTLE cluster dfs triggers
 | |
|  optional int32 little_dfs_count = 4;
 | |
|  // The last count of GPU dfs triggers
 | |
|  optional int32 gpu_dfs_count = 5;
 | |
|  // The last count of TPU dfs triggers
 | |
|  optional int32 tpu_dfs_count = 6;
 | |
|  // The last count of DSP dfs triggers
 | |
|  optional int32 aur_dfs_count = 7;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log how many segments have been reclaimed in a specific GC mode.
 | |
|  */
 | |
| message F2fsGcSegmentInfo {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Reclaimed segments in GC normal mode */
 | |
|     optional int32 reclaimed_segments_normal = 2;
 | |
|     /* Reclaimed segments in GC urgent high mode */
 | |
|     optional int32 reclaimed_segments_urgent_high = 3;
 | |
|     /* Reclaimed segments in GC urgent low mode */
 | |
|     optional int32 reclaimed_segments_urgent_low = 4;
 | |
|     /* Reclaimed segments in GC urgent mid mode */
 | |
|     optional int32 reclaimed_segments_urgent_mid = 5;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * 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;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Snapshot of the current battery health of the device.
 | |
|  */
 | |
| message BatteryHealthStatus {
 | |
|   // Vendor reverse domain name (expecting "com.google.pixel").
 | |
|   optional string reverse_domain_name = 1;
 | |
| 
 | |
|   // The algorithm that computes how the health status and health indexes are calculated.
 | |
|   optional int32 health_algorithm = 2;
 | |
| 
 | |
|   enum HealthStatus {
 | |
|     UNKNOWN = -1; // The health status is unknown due to a SW limitation or issue
 | |
|     NOMINAL = 0; // The battery is operating as expected
 | |
|     MARGINAL = 1; // The battery may need replacement soon
 | |
|     NEEDS_REPLACEMENT = 2; // The battery needs replacement
 | |
|     FAILED = 3; // The battery has failed and no longer operates as expected
 | |
|   }
 | |
| 
 | |
|   // HealthStatus calculated using health_index, health_perf_index.
 | |
|   optional HealthStatus health_status = 3;
 | |
| 
 | |
|   // A percentage measure of the health of the battery with 100% being perfectly healthy.
 | |
|   optional int32 health_index = 4;
 | |
| 
 | |
|   // A percentage measure of the battery capacity of the device, affected by cycle life degradation.
 | |
|   optional int32 health_capacity_index = 5;
 | |
| 
 | |
|   // A percentage measure of the max performance of the device, affected by impedance growth with 100% being perfectly healthy.
 | |
|   optional int32 health_impedance_index = 6;
 | |
| 
 | |
|   // An index that expresses the likelihood of swelling given the SOC residency stats.
 | |
|   optional int32 swelling_cumulative = 7;
 | |
| 
 | |
|   // The battery capacity used to determine the health index. This is the reference value from b/223759710.
 | |
|   optional int32 health_full_capacity = 8;
 | |
| 
 | |
|   // This is the Rslow (resistance) value used (in part) to determine the Perf Index. The activation impedance (b/223545817) can be calculated from it using the perf index.
 | |
|   optional int32 current_impedance = 9;
 | |
| 
 | |
|   // The (hours) value of TimeH (0xb3), a register value, multiplied by 3.2 hours.
 | |
|   optional int32 battery_age = 10;
 | |
| 
 | |
|   // The cycle count at the time of the log event.
 | |
|   optional int32 cycle_count = 11;
 | |
| 
 | |
|   enum BattDisconnectStatus {
 | |
|     BPST_BATT_UNKNOWN = 0;
 | |
|     BPST_BATT_CONNECT = 1;
 | |
|     BPST_BATT_DISCONNECT = 2; // Result of single battery disconnect detection
 | |
|     BPST_BATT_CELL_FAULT = 3; // Result of cell fault detection which means actual disconnection
 | |
|   }
 | |
| 
 | |
|   // Battery disconnect detection stats.
 | |
|   optional BattDisconnectStatus battery_disconnect_status = 12;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Log battery SOC/temperature usage data.
 | |
|  *
 | |
|  * Each data represents cumulative time of the battery
 | |
|  * spent over a specific SOC and over a specific temperature
 | |
|  * while charging and while discharging in seconds.
 | |
|  *
 | |
|  * Logged from:
 | |
|  * /sys/class/power_supply/battery/swelling_data, via Vendor.
 | |
|  */
 | |
| message BatteryHealthUsage {
 | |
|   // Vendor reverse domain name (expecting "com.google.pixel").
 | |
|   optional string reverse_domain_name = 1;
 | |
| 
 | |
|   // The temperature limit (deg C) used to accumulate the time above this value.
 | |
|   optional int32 temperature_limit_deci_c = 2;
 | |
| 
 | |
|   // The SOC limit (%) used to accumulate the time above this value.
 | |
|   optional int32 soc_limit = 3;
 | |
| 
 | |
|   // Time (s) accumulated only during charge at the given thresholds.
 | |
|   optional int32 charge_time_secs = 4;
 | |
| 
 | |
|   // Time (s) accumulated only during discharge at the given thresholds.
 | |
|   optional int32 discharge_time_secs = 5;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * A Value of F2FS smart idle maintenance feature enabled
 | |
|  */
 | |
| message F2fsSmartIdleMaintEnabledStateChanged {
 | |
|     optional string reverse_domain_name = 1;
 | |
|     /* Smart idle maint is enabled */
 | |
|     optional bool enabled = 2;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Snapshot of the block layer read write stats
 | |
|  */
 | |
| message BlockStatsReported {
 | |
|     optional string reverse_domain_name = 1;
 | |
|         /* number of read I/Os processed */
 | |
|         optional int64 read_io = 2;
 | |
|         /* number of sectors read */
 | |
|         optional int64 read_sectors = 3;
 | |
|         /* total wait time for read requests */
 | |
|         optional int64 read_ticks = 4;
 | |
|         /* number of write I/Os processed */
 | |
|         optional int64 write_io = 5;
 | |
|         /* number of sectors written */
 | |
|         optional int64 write_sectors = 6;
 | |
|         /* total wait time for write requests */
 | |
|         optional int64 write_ticks = 7;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Logs the reported vendor audio hardware stats.
 | |
|  */
 | |
| message VendorAudioHardwareStatsReported {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   /* The percentage of calls in a day where auto-mic-switch triggered.
 | |
|    * It represented as a fixed-point integer with three decimal place.
 | |
|    * E.g.:12.345% is repsented by 12345.
 | |
|    */
 | |
|   optional int32 milli_rate_of_ams_per_day = 2;
 | |
| 
 | |
|   /* The percentage of calls in a day where CCA is active.
 | |
|   * It represented as a fixed-point and rounded integer.
 | |
|   * E.g.:12.345% is represented by 12.
 | |
|   * CCA can only be applied under some radio bands.
 | |
|   */
 | |
| 
 | |
|   /* cca_active: UI enable & algorithm is active (C1) */
 | |
|   optional int32 rate_of_cca_active_per_day = 3;
 | |
| 
 | |
|   /* cca_enable: UI enable & algorithm is inactive. (C2) */
 | |
|   optional int32 rate_of_cca_enable_per_day = 4;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Logs vendor stats about long IRQs.
 | |
|  *
 | |
|  * IRQ is considered long when it exceeds a threshold (currently 1 ms).
 | |
|  * Stats include top 5 slowest IRQs: their numbers and the worst latency.
 | |
|  * Stats are reset after every report.
 | |
|  */
 | |
| message VendorLongIRQStatsReported {
 | |
|   optional string reverse_domain_name = 1;
 | |
| 
 | |
|   // Count of long soft IRQ since last report.
 | |
|   optional int64 long_softirq_count = 2;
 | |
| 
 | |
|   optional int64 top1_softirq_num = 3;
 | |
|   optional int64 top1_softirq_latency_us = 4;
 | |
|   optional int64 top2_softirq_num = 5;
 | |
|   optional int64 top2_softirq_latency_us = 6;
 | |
|   optional int64 top3_softirq_num = 7;
 | |
|   optional int64 top3_softirq_latency_us = 8;
 | |
|   optional int64 top4_softirq_num = 9;
 | |
|   optional int64 top4_softirq_latency_us = 10;
 | |
|   optional int64 top5_softirq_num = 11;
 | |
|   optional int64 top5_softirq_latency_us = 12;
 | |
| 
 | |
|   // Count of long IRQ since last report.
 | |
|   optional int64 long_irq_count = 13;
 | |
| 
 | |
|   optional int64 top1_irq_num = 14;
 | |
|   optional int64 top1_irq_latency_us = 15;
 | |
|   optional int64 top2_irq_num = 16;
 | |
|   optional int64 top2_irq_latency_us = 17;
 | |
|   optional int64 top3_irq_num = 18;
 | |
|   optional int64 top3_irq_latency_us = 19;
 | |
|   optional int64 top4_irq_num = 20;
 | |
|   optional int64 top4_irq_latency_us = 21;
 | |
|   optional int64 top5_irq_num = 22;
 | |
|   optional int64 top5_irq_latency_us = 23;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Logs the Temperature residency stats per thermal zone.
 | |
|  */
 | |
| message VendorTempResidencyStats {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   // Thermal zone name
 | |
|   optional string sensor_name = 2;
 | |
| 
 | |
|   // Time since last collect of this thermal zone
 | |
|   optional int64 since_last_update_ms = 3;
 | |
| 
 | |
|   // Temperature residency stats is measured by time in ms that a temperature zone's temperature
 | |
|   // lay within some temperature thresholds
 | |
|   // e.g.
 | |
|   // With temperature thresholds predefined as thresholds_i, thresholds_i+1,
 | |
|   // temp_residency_ms_bucket_i measures how much time the sensor lay within this two thresholds
 | |
|   optional int64 temp_residency_ms_bucket_1 = 4;
 | |
|   optional int64 temp_residency_ms_bucket_2 = 5;
 | |
|   optional int64 temp_residency_ms_bucket_3 = 6;
 | |
|   optional int64 temp_residency_ms_bucket_4 = 7;
 | |
|   optional int64 temp_residency_ms_bucket_5 = 8;
 | |
|   optional int64 temp_residency_ms_bucket_6 = 9;
 | |
|   optional int64 temp_residency_ms_bucket_7 = 10;
 | |
|   optional int64 temp_residency_ms_bucket_8 = 11;
 | |
|   optional int64 temp_residency_ms_bucket_9 = 12;
 | |
|   optional int64 temp_residency_ms_bucket_10 = 13;
 | |
|   optional int64 temp_residency_ms_bucket_11 = 14;
 | |
|   optional int64 temp_residency_ms_bucket_12 = 15;
 | |
|   optional int64 temp_residency_ms_bucket_13 = 16;
 | |
|   optional int64 temp_residency_ms_bucket_14 = 17;
 | |
|   optional int64 temp_residency_ms_bucket_15 = 18;
 | |
|   optional int64 temp_residency_ms_bucket_16 = 19;
 | |
|   optional int64 temp_residency_ms_bucket_17 = 20;
 | |
|   optional int64 temp_residency_ms_bucket_18 = 21;
 | |
|   optional int64 temp_residency_ms_bucket_19 = 22;
 | |
|   optional int64 temp_residency_ms_bucket_20 = 23;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Logs the Resume Latency stats.
 | |
|  */
 | |
| message VendorResumeLatencyStats {
 | |
|   optional string reverse_domain_name = 1;
 | |
|   optional int64 max_latency_ms = 2;
 | |
|   optional int64 avg_latency_ms = 3;
 | |
| 
 | |
|   // Resume Latency stats is measured by count of resumes that lay within some latency thresholds
 | |
|   // e.g.
 | |
|   // With resume times thresholds predefined as thresholds_i, thresholds_i+1,
 | |
|   // resume_count_bucket_i measures count of resumes that lay within this two thresholds
 | |
|   optional int64 resume_count_bucket_1 = 4;
 | |
|   optional int64 resume_count_bucket_2 = 5;
 | |
|   optional int64 resume_count_bucket_3 = 6;
 | |
|   optional int64 resume_count_bucket_4 = 7;
 | |
|   optional int64 resume_count_bucket_5 = 8;
 | |
|   optional int64 resume_count_bucket_6 = 9;
 | |
|   optional int64 resume_count_bucket_7 = 10;
 | |
|   optional int64 resume_count_bucket_8 = 11;
 | |
|   optional int64 resume_count_bucket_9 = 12;
 | |
|   optional int64 resume_count_bucket_10 = 13;
 | |
|   optional int64 resume_count_bucket_11 = 14;
 | |
|   optional int64 resume_count_bucket_12 = 15;
 | |
|   optional int64 resume_count_bucket_13 = 16;
 | |
|   optional int64 resume_count_bucket_14 = 17;
 | |
|   optional int64 resume_count_bucket_15 = 18;
 | |
|   optional int64 resume_count_bucket_16 = 19;
 | |
|   optional int64 resume_count_bucket_17 = 20;
 | |
|   optional int64 resume_count_bucket_18 = 21;
 | |
|   optional int64 resume_count_bucket_19 = 22;
 | |
|   optional int64 resume_count_bucket_20 = 23;
 | |
|   optional int64 resume_count_bucket_21 = 24;
 | |
|   optional int64 resume_count_bucket_22 = 25;
 | |
|   optional int64 resume_count_bucket_23 = 26;
 | |
|   optional int64 resume_count_bucket_24 = 27;
 | |
|   optional int64 resume_count_bucket_25 = 28;
 | |
|   optional int64 resume_count_bucket_26 = 29;
 | |
|   optional int64 resume_count_bucket_27 = 30;
 | |
|   optional int64 resume_count_bucket_28 = 31;
 | |
|   optional int64 resume_count_bucket_29 = 32;
 | |
|   optional int64 resume_count_bucket_30 = 33;
 | |
|   optional int64 resume_count_bucket_31 = 34;
 | |
|   optional int64 resume_count_bucket_32 = 35;
 | |
|   optional int64 resume_count_bucket_33 = 36;
 | |
|   optional int64 resume_count_bucket_34 = 37;
 | |
|   optional int64 resume_count_bucket_35 = 38;
 | |
|   optional int64 resume_count_bucket_36 = 39;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * PCIe Link Statistics
 | |
|  */
 | |
| message PcieLinkStatsReported {
 | |
|     /* Vendor reverse domain name (expecting "com.google.pixel"). */
 | |
|     optional string reverse_domain_name = 1;
 | |
| 
 | |
|     /* Count of new PCIe Link Down events on the modem interface */
 | |
|     optional int32 modem_pcie_linkdowns = 2;
 | |
|     /* Count of new PCIe Completion Timeout events on the modem interface */
 | |
|     optional int32 modem_pcie_completion_timeouts = 3;
 | |
|     /* Count of new PCIe Link Up Failure events on the modem interface */
 | |
|     optional int32 modem_pcie_linkup_failures = 4;
 | |
|     /* Average pll lock time (uS) during PCIe Link Up on modem interface */
 | |
|     optional int32 modem_pcie_pll_lock_avg = 5;
 | |
|     /* Average time (uS) for successful PCIe Link Up on modem interface */
 | |
|     optional int32 modem_pcie_link_up_avg = 6;
 | |
| 
 | |
|     /* Count of new PCIe Link Down events on the wifi interface */
 | |
|     optional int32 wifi_pcie_linkdowns = 7;
 | |
|     /* Count of new PCIe Completion Timeout events on the wifi interface */
 | |
|     optional int32 wifi_pcie_completion_timeouts = 8;
 | |
|     /* Count of new PCIe Link Up Failure events on the wifi interface */
 | |
|     optional int32 wifi_pcie_linkup_failures = 9;
 | |
|     /* Average pll lock time (uS) during PCIe Link Up on wifi interface */
 | |
|     optional int32 wifi_pcie_pll_lock_avg = 10;
 | |
|     /* Average time (uS) for successful PCIe Link Up on wifi interface */
 | |
|     optional int32 wifi_pcie_link_up_avg = 11;
 | |
| }
 |