Home | History | Annotate | Download | only in btservice
      1 // Copyright 2014 Google Inc. All Rights Reserved.
      2 // Author: pkanwar (a] google.com (Pankaj Kanwar)
      3 // Protos for uploading bluetooth metrics.
      4 
      5 syntax = "proto2";
      6 
      7 package com.android.bluetooth.btservice;
      8 
      9 option java_package = "com.android.bluetooth.btservice";
     10 option java_outer_classname = "BluetoothProto";
     11 //option (datapol.file_vetting_status) = "latest";
     12 
     13 // import "storage/datapol/annotations/proto/semantic_annotations.proto";
     14 
     15 message BluetoothLog {
     16 
     17   // Session information that gets logged for every BT connection.
     18   repeated BluetoothSession session = 1;
     19 
     20   // Session information that gets logged for every Pair event.
     21   repeated PairEvent pair_event = 2;
     22 
     23   // Information for Wake locks.
     24   repeated WakeEvent wake_event = 3;
     25 
     26   // Scan event information.
     27   repeated ScanEvent scan_event = 4;
     28 }
     29 
     30 // The information about the device.
     31 message DeviceInfo {
     32 
     33   // Device type.
     34   enum DeviceType {
     35 
     36      // Type is unknown.
     37      DEVICE_TYPE_UNKNOWN = 0;
     38 
     39      DEVICE_TYPE_BREDR = 1;
     40 
     41      DEVICE_TYPE_LE = 2;
     42 
     43      DEVICE_TYPE_DUMO = 3;
     44   }
     45 
     46   // Device class
     47   // https://cs.corp.google.com/#android/system/bt/stack/include/btm_api.h&q=major_computer.
     48   optional int32 device_class = 1;
     49 
     50   // Device type.
     51   optional DeviceType device_type = 2;
     52 }
     53 
     54 // Information that gets logged for every Bluetooth connection.
     55 message BluetoothSession {
     56 
     57   // Type of technology used in the connection.
     58   enum ConnectionTechnologyType {
     59 
     60      CONNECTION_TECHNOLOGY_TYPE_UNKNOWN = 0;
     61 
     62      CONNECTION_TECHNOLOGY_TYPE_LE = 1;
     63 
     64      CONNECTION_TECHNOLOGY_TYPE_BREDR = 2;
     65   }
     66 
     67   // Duration of the session.
     68   optional int64 session_duration_sec = 2;
     69 
     70   // Technology type.
     71   optional ConnectionTechnologyType connection_technology_type = 3;
     72 
     73   // Reason for disconnecting.
     74   optional string disconnect_reason = 4;
     75 
     76   // The information about the device which it is connected to.
     77   optional DeviceInfo device_connected_to = 5;
     78 
     79   // The information about the RFComm session.
     80   optional RFCommSession rfcomm_session = 6;
     81 
     82   // The information about the A2DP session.
     83   optional A2DPSession a2dp_session = 7;
     84 }
     85 
     86 message RFCommSession {
     87 
     88   // bytes transmitted.
     89   optional int32 rx_bytes = 1;
     90 
     91   // bytes transmitted.
     92   optional int32 tx_bytes = 2;
     93 }
     94 
     95 // Session information that gets logged for every A2DP session.
     96 message A2DPSession {
     97 
     98   // Media timer in milliseconds.
     99   optional int32 media_timer_min_millis = 1;
    100 
    101   // Media timer in milliseconds.
    102   optional int32 media_timer_max_millis = 2;
    103 
    104   // Media timer in milliseconds.
    105   optional int32 media_timer_avg_millis = 3;
    106 
    107   // Buffer overruns count.
    108   optional int32 buffer_overruns_max_count = 4;
    109 
    110   // Buffer overruns total.
    111   optional int32 buffer_overruns_total = 5;
    112 
    113   // Buffer underruns average.
    114   optional float buffer_underruns_average = 6;
    115 
    116   // Buffer underruns count.
    117   optional int32 buffer_underruns_count = 7;
    118 }
    119 
    120 message PairEvent {
    121 
    122   // The reason for disconnecting
    123   // https://cs.corp.google.com/#android/system/bt/stack/include/hcidefs.h&q=failed_establish.
    124   optional int32 disconnect_reason = 1;
    125 
    126   // Pair event time
    127   optional int64 event_time_millis = 2; // [(datapol.semantic_type) = ST_TIMESTAMP];
    128 
    129   // The information about the device which it is paired to.
    130   optional DeviceInfo device_paired_with = 3;
    131 }
    132 
    133 message WakeEvent {
    134 
    135   // Information about the wake event type.
    136   enum WakeEventType {
    137 
    138      // Type is unknown.
    139      UNKNOWN = 0;
    140 
    141      // WakeLock was acquired.
    142      ACQUIRED = 1;
    143 
    144      // WakeLock was released.
    145      RELEASED = 2;
    146   }
    147 
    148   // Information about the wake event type.
    149   optional WakeEventType wake_event_type = 1;
    150 
    151   // Initiator of the scan. Only the first three names will be stored.
    152   // e.g. com.google.gms.
    153   optional string requestor = 2;
    154 
    155   // Name of the wakelock (e.g. bluedroid_timer).
    156   optional string name = 3;
    157 
    158   // Time of the event.
    159   optional int64 event_time_millis = 4; // [(datapol.semantic_type) = ST_TIMESTAMP];
    160 }
    161 
    162 message ScanEvent {
    163 
    164   // Scan type.
    165   enum ScanTechnologyType {
    166 
    167      // Scan Type is unknown.
    168      SCAN_TYPE_UNKNOWN = 0;
    169 
    170      SCAN_TECH_TYPE_LE = 1;
    171 
    172      SCAN_TECH_TYPE_BREDR = 2;
    173 
    174      SCAN_TECH_TYPE_BOTH = 3;
    175   }
    176 
    177   // Scan event type.
    178   enum ScanEventType {
    179 
    180      // Scan started.
    181      SCAN_EVENT_START = 0;
    182 
    183      // Scan stopped.
    184      SCAN_EVENT_STOP = 1;
    185   }
    186 
    187   // Scan event type.
    188   optional ScanEventType scan_event_type = 1;
    189 
    190   // Initiator of the scan. Only the first three names will be stored.
    191   // e.g. com.google.gms.
    192   optional string initiator = 2;
    193 
    194   // Technology used for scanning.
    195   optional ScanTechnologyType scan_technology_type = 3;
    196 
    197   // Number of results returned.
    198   optional int32 number_results = 4;
    199 
    200   // Time of the event.
    201   optional int64 event_time_millis = 5; // [(datapol.semantic_type) = ST_TIMESTAMP];
    202 }
    203