1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package clearcut.connectivity; 20 21option java_package = "com.android.server.wifi"; 22option java_outer_classname = "WifiMetricsProto"; 23 24// The information about the Wifi events. 25message WifiLog { 26 27 // Session information that gets logged for every Wifi connection. 28 repeated ConnectionEvent connection_event = 1; 29 30 // Number of saved networks in the user profile. 31 optional int32 num_saved_networks = 2; 32 33 // Number of open networks in the saved networks. 34 optional int32 num_open_networks = 3; 35 36 // Number of personal networks. 37 optional int32 num_personal_networks = 4; 38 39 // Number of enterprise networks. 40 optional int32 num_enterprise_networks = 5; 41 42 // Does the user have location setting enabled. 43 optional bool is_location_enabled = 6; 44 45 // Does the user have scanning enabled. 46 optional bool is_scanning_always_enabled = 7; 47 48 // Number of times user toggled wifi using the settings menu. 49 optional int32 num_wifi_toggled_via_settings = 8; 50 51 // Number of times user toggled wifi using the airplane menu. 52 optional int32 num_wifi_toggled_via_airplane = 9; 53 54 // Number of networks added by the user. 55 optional int32 num_networks_added_by_user = 10; 56 57 // Number of networks added by applications. 58 optional int32 num_networks_added_by_apps = 11; 59 60 // Number scans that returned empty results. 61 optional int32 num_empty_scan_results = 12; 62 63 // Number scans that returned at least one result. 64 optional int32 num_non_empty_scan_results = 13; 65 66 // Number of single scans requests. 67 optional int32 num_oneshot_scans = 14; 68 69 // Number of repeated background scans that were scheduled to the chip. 70 optional int32 num_background_scans = 15; 71 72 // Error codes that a scan can result in. 73 enum ScanReturnCode { 74 75 // Return Code is unknown. 76 SCAN_UNKNOWN = 0; 77 78 // Scan was successful. 79 SCAN_SUCCESS = 1; 80 81 // Scan was successfully started, but was interrupted. 82 SCAN_FAILURE_INTERRUPTED = 2; 83 84 // Scan failed to start because of invalid configuration 85 // (bad channel, etc). 86 SCAN_FAILURE_INVALID_CONFIGURATION = 3; 87 88 // Could not start a scan because wifi is disabled. 89 FAILURE_WIFI_DISABLED = 4; 90 91 } 92 93 // Mapping of error codes to the number of times that scans resulted 94 // in that error. 95 repeated ScanReturnEntry scan_return_entries = 16; 96 97 message ScanReturnEntry { 98 99 // Return code of the scan. 100 optional ScanReturnCode scan_return_code = 1; 101 102 // Number of entries that were found in the scan. 103 optional int32 scan_results_count = 2; 104 } 105 106 // State of the Wifi. 107 enum WifiState { 108 109 // State is unknown. 110 WIFI_UNKNOWN = 0; 111 112 // Wifi is disabled. 113 WIFI_DISABLED = 1; 114 115 // Wifi is enabled. 116 WIFI_DISCONNECTED = 2; 117 118 // Wifi is enabled and associated with an AP. 119 WIFI_ASSOCIATED = 3; 120 } 121 122 // Mapping of system state to the number of times that scans were requested in 123 // that state 124 repeated WifiSystemStateEntry wifi_system_state_entries = 17; 125 126 message WifiSystemStateEntry { 127 128 // Current WiFi state. 129 optional WifiState wifi_state = 1; 130 131 // Count of scans in state. 132 optional int32 wifi_state_count = 2; 133 134 // Is screen on. 135 optional bool is_screen_on = 3; 136 } 137 138 // Mapping of Error/Success codes to the number of background scans that resulted in it 139 repeated ScanReturnEntry background_scan_return_entries = 18; 140 141 // Mapping of system state to the number of times that Background scans were requested in that 142 // state 143 repeated WifiSystemStateEntry background_scan_request_state = 19; 144 145 // Total number of times the Watchdog of Last Resort triggered, resetting the wifi stack 146 optional int32 num_last_resort_watchdog_triggers = 20; 147 148 // Total number of networks over bad association threshold when watchdog triggered 149 optional int32 num_last_resort_watchdog_bad_association_networks_total = 21; 150 151 // Total number of networks over bad authentication threshold when watchdog triggered 152 optional int32 num_last_resort_watchdog_bad_authentication_networks_total = 22; 153 154 // Total number of networks over bad dhcp threshold when watchdog triggered 155 optional int32 num_last_resort_watchdog_bad_dhcp_networks_total = 23; 156 157 // Total number of networks over bad other threshold when watchdog triggered 158 optional int32 num_last_resort_watchdog_bad_other_networks_total = 24; 159 160 // Total count of networks seen when watchdog triggered 161 optional int32 num_last_resort_watchdog_available_networks_total = 25; 162 163 // Total count of triggers with atleast one bad association network 164 optional int32 num_last_resort_watchdog_triggers_with_bad_association = 26; 165 166 // Total count of triggers with atleast one bad authentication network 167 optional int32 num_last_resort_watchdog_triggers_with_bad_authentication = 27; 168 169 // Total count of triggers with atleast one bad dhcp network 170 optional int32 num_last_resort_watchdog_triggers_with_bad_dhcp = 28; 171 172 // Total count of triggers with atleast one bad other network 173 optional int32 num_last_resort_watchdog_triggers_with_bad_other = 29; 174 175 // Count of times connectivity watchdog confirmed pno is working 176 optional int32 num_connectivity_watchdog_pno_good = 30; 177 178 // Count of times connectivity watchdog found pno not working 179 optional int32 num_connectivity_watchdog_pno_bad = 31; 180 181 // Count of times connectivity watchdog confirmed background scan is working 182 optional int32 num_connectivity_watchdog_background_good = 32; 183 184 // Count of times connectivity watchdog found background scan not working 185 optional int32 num_connectivity_watchdog_background_bad = 33; 186 187 // The time duration represented by this wifi log, from start to end of capture 188 optional int32 record_duration_sec = 34; 189 190 // Counts the occurrences of each individual RSSI poll level 191 repeated RssiPollCount rssi_poll_rssi_count = 35; 192 193 // Total number of times WiFi connected immediately after a Last Resort Watchdog trigger, 194 // without new networks becoming available. 195 optional int32 num_last_resort_watchdog_successes = 36; 196 197 // Total number of saved hidden networks 198 optional int32 num_hidden_networks = 37; 199 200 // Total number of saved passpoint / hotspot 2.0 networks 201 optional int32 num_passpoint_networks = 38; 202 203 // Total number of scan results 204 optional int32 num_total_scan_results = 39; 205 206 // Total number of scan results for open networks 207 optional int32 num_open_network_scan_results = 40; 208 209 // Total number of scan results for personal networks 210 optional int32 num_personal_network_scan_results = 41; 211 212 // Total number of scan results for enterprise networks 213 optional int32 num_enterprise_network_scan_results = 42; 214 215 // Total number of scan results for hidden networks 216 optional int32 num_hidden_network_scan_results = 43; 217 218 // Total number of scan results for hotspot 2.0 r1 networks 219 optional int32 num_hotspot2_r1_network_scan_results = 44; 220 221 // Total number of scan results for hotspot 2.0 r2 networks 222 optional int32 num_hotspot2_r2_network_scan_results = 45; 223 224 // Total number of scans handled by framework (oneshot or otherwise) 225 optional int32 num_scans = 46; 226 227 // Counts the occurrences of each alert reason. 228 repeated AlertReasonCount alert_reason_count = 47; 229 230 // Counts the occurrences of each Wifi score 231 repeated WifiScoreCount wifi_score_count = 48; 232 233 // Histogram of Soft AP Durations 234 repeated SoftApDurationBucket soft_ap_duration = 49; 235 236 // Histogram of Soft AP ReturnCode 237 repeated SoftApReturnCodeCount soft_ap_return_code = 50; 238 239 // Histogram of the delta between scan result RSSI and RSSI polls 240 repeated RssiPollCount rssi_poll_delta_count = 51; 241 242 // List of events 243 repeated StaEvent sta_event_list = 52; 244 245 // Total number of times WiFi HAL crashed. 246 optional int32 num_hal_crashes = 53; 247 248 // Total number of times WiFicond crashed. 249 optional int32 num_wificond_crashes = 54; 250 251 // Indicates the number of times an error was encountered in 252 // Wifi HAL on |WifiNative.setupInterfaceForClientMode|. 253 optional int32 num_setup_client_interface_failure_due_to_hal = 55; 254 255 // Indicates the number of times an error was encountered in 256 // Wificond on |WifiNative.setupInterfaceForClientMode|. 257 optional int32 num_setup_client_interface_failure_due_to_wificond = 56; 258 259 // Wi-Fi Aware metrics 260 optional WifiAwareLog wifi_aware_log = 57; 261 262 // Number of saved Passpoint providers in user profile. 263 optional int32 num_passpoint_providers = 58; 264 265 // Count of times Passpoint provider being installed. 266 optional int32 num_passpoint_provider_installation = 59; 267 268 // Count of times Passpoint provivider is installed successfully. 269 optional int32 num_passpoint_provider_install_success = 60; 270 271 // Count of times Passpoint provider is being uninstalled. 272 optional int32 num_passpoint_provider_uninstallation = 61; 273 274 // Count of times Passpoint provider is uninstalled successfully. 275 optional int32 num_passpoint_provider_uninstall_success = 62; 276 277 // Count of saved Passpoint providers device has ever connected to. 278 optional int32 num_passpoint_providers_successfully_connected = 63; 279 280 // Histogram counting instances of scans with N many ScanResults with unique ssids 281 repeated NumConnectableNetworksBucket total_ssids_in_scan_histogram = 64; 282 283 // Histogram counting instances of scans with N many ScanResults/bssids 284 repeated NumConnectableNetworksBucket total_bssids_in_scan_histogram = 65; 285 286 // Histogram counting instances of scans with N many unique open ssids 287 repeated NumConnectableNetworksBucket available_open_ssids_in_scan_histogram = 66; 288 289 // Histogram counting instances of scans with N many bssids for open networks 290 repeated NumConnectableNetworksBucket available_open_bssids_in_scan_histogram = 67; 291 292 // Histogram counting instances of scans with N many unique ssids for saved networks 293 repeated NumConnectableNetworksBucket available_saved_ssids_in_scan_histogram = 68; 294 295 // Histogram counting instances of scans with N many bssids for saved networks 296 repeated NumConnectableNetworksBucket available_saved_bssids_in_scan_histogram = 69; 297 298 // Histogram counting instances of scans with N many unique SSIDs for open or saved networks 299 repeated NumConnectableNetworksBucket available_open_or_saved_ssids_in_scan_histogram = 70; 300 301 // Histogram counting instances of scans with N many BSSIDs for open or saved networks 302 repeated NumConnectableNetworksBucket available_open_or_saved_bssids_in_scan_histogram = 71; 303 304 // Histogram counting instances of scans with N many ScanResults matching unique saved passpoint providers 305 repeated NumConnectableNetworksBucket available_saved_passpoint_provider_profiles_in_scan_histogram = 72; 306 307 // Histogram counting instances of scans with N many ScanResults BSSIDs matching a saved passpoint provider 308 repeated NumConnectableNetworksBucket available_saved_passpoint_provider_bssids_in_scan_histogram = 73; 309 310 // Counts the number of AllSingleScanLister.onResult calls with a full band scan result 311 optional int32 full_band_all_single_scan_listener_results = 74; 312 313 // Counts the number of AllSingleScanLister.onResult calls with a partial (channels) scan result 314 optional int32 partial_all_single_scan_listener_results = 75; 315 316 // Pno scan metrics 317 optional PnoScanMetrics pno_scan_metrics = 76; 318 319 // Histogram of "Connect to Network" notifications. 320 // The notification Action should be unset. 321 repeated ConnectToNetworkNotificationAndActionCount connect_to_network_notification_count = 77; 322 323 // Histogram of "Connect to Network" notification user actions. 324 repeated ConnectToNetworkNotificationAndActionCount connect_to_network_notification_action_count = 78; 325 326 // The number of SSIDs blacklisted from recommendation by the open network 327 // notification recommender 328 optional int32 open_network_recommender_blacklist_size = 79; 329 330 // Is the available network notification feature turned on 331 optional bool is_wifi_networks_available_notification_on = 80; 332 333 // Count of recommendation updates made by the open network notification 334 // recommender 335 optional int32 num_open_network_recommendation_updates = 81; 336 337 // Count of connection attempts that were initiated unsuccessfully 338 optional int32 num_open_network_connect_message_failed_to_send = 82; 339 340 // Histogram counting instances of scans with N many HotSpot 2.0 R1 APs 341 repeated NumConnectableNetworksBucket observed_hotspot_r1_aps_in_scan_histogram = 83; 342 343 // Histogram counting instances of scans with N many HotSpot 2.0 R2 APs 344 repeated NumConnectableNetworksBucket observed_hotspot_r2_aps_in_scan_histogram = 84; 345 346 // Histogram counting instances of scans with N many unique HotSpot 2.0 R1 ESS. 347 // Where ESS is defined as the (HESSID, ANQP Domain ID), (SSID, ANQP Domain ID) or 348 // (SSID, BSSID) tuple depending on AP configuration (in the above priority 349 // order). 350 repeated NumConnectableNetworksBucket observed_hotspot_r1_ess_in_scan_histogram = 85; 351 352 // Histogram counting instances of scans with N many unique HotSpot 2.0 R2 ESS. 353 // Where ESS is defined as the (HESSID, ANQP Domain ID), (SSID, ANQP Domain ID) or 354 // (SSID, BSSID) tuple depending on AP configuration (in the above priority 355 // order). 356 repeated NumConnectableNetworksBucket observed_hotspot_r2_ess_in_scan_histogram = 86; 357 358 // Histogram counting number of HotSpot 2.0 R1 APs per observed ESS in a scan 359 // (one value added per unique ESS - potentially multiple counts per single 360 // scan!) 361 repeated NumConnectableNetworksBucket observed_hotspot_r1_aps_per_ess_in_scan_histogram = 87; 362 363 // Histogram counting number of HotSpot 2.0 R2 APs per observed ESS in a scan 364 // (one value added per unique ESS - potentially multiple counts per single 365 // scan!) 366 repeated NumConnectableNetworksBucket observed_hotspot_r2_aps_per_ess_in_scan_histogram = 88; 367 368 // SoftAP event list tracking sessions and client counts in tethered mode 369 repeated SoftApConnectedClientsEvent soft_ap_connected_clients_events_tethered = 89; 370 371 // SoftAP event list tracking sessions and client counts in local only mode 372 repeated SoftApConnectedClientsEvent soft_ap_connected_clients_events_local_only = 90; 373 374 // Wps connection metrics 375 optional WpsMetrics wps_metrics = 91; 376 377 // Wifi power statistics 378 optional WifiPowerStats wifi_power_stats = 92; 379 380 // Number of connectivity single scan requests. 381 optional int32 num_connectivity_oneshot_scans = 93; 382 383 // WifiWake statistics 384 optional WifiWakeStats wifi_wake_stats = 94; 385 386 // Histogram counting instances of scans with N many 802.11mc (RTT) supporting APs 387 repeated NumConnectableNetworksBucket observed_80211mc_supporting_aps_in_scan_histogram = 95; 388 389 // Total number of times supplicant crashed. 390 optional int32 num_supplicant_crashes = 96; 391 392 // Total number of times hostapd crashed. 393 optional int32 num_hostapd_crashes = 97; 394 395 // Indicates the number of times an error was encountered in 396 // supplicant on |WifiNative.setupInterfaceForClientMode|. 397 optional int32 num_setup_client_interface_failure_due_to_supplicant = 98; 398 399 // Indicates the number of times an error was encountered in 400 // Wifi HAL on |WifiNative.setupInterfaceForSoftApMode|. 401 optional int32 num_setup_soft_ap_interface_failure_due_to_hal = 99; 402 403 // Indicates the number of times an error was encountered in 404 // Wifi HAL on |WifiNative.setupInterfaceForSoftApMode|. 405 optional int32 num_setup_soft_ap_interface_failure_due_to_wificond = 100; 406 407 // Indicates the number of times an error was encountered in 408 // Wifi HAL on |WifiNative.setupInterfaceForSoftApMode|. 409 optional int32 num_setup_soft_ap_interface_failure_due_to_hostapd = 101; 410 411 // Indicates the number of times we got an interface down in client mode. 412 optional int32 num_client_interface_down = 102; 413 414 // Indicates the number of times we got an interface down in softap mode. 415 optional int32 num_soft_ap_interface_down = 103; 416 417 // Indicates the number of scan requests from external apps. 418 optional int32 num_external_app_oneshot_scan_requests = 104; 419 420 // Indicates the number of times a scan request from an external foreground app was throttled. 421 optional int32 num_external_foreground_app_oneshot_scan_requests_throttled = 105; 422 423 // Indicates the number of times a scan request from an external background app was throttled. 424 optional int32 num_external_background_app_oneshot_scan_requests_throttled = 106; 425 426 // WifiLastResortWatchdog time milliseconds delta between trigger and first connection success 427 optional int64 watchdog_trigger_to_connection_success_duration_ms = 107 [default = -1]; 428 429 // The number of times wifi experienced failures after watchdog has already been triggered and is 430 // waiting for a connection success 431 optional int64 watchdog_total_connection_failure_count_after_trigger = 108; 432 433 // Number of times DFS channel scans are requested in single scan requests. 434 optional int32 num_oneshot_has_dfs_channel_scans = 109; 435 436 // Wi-Fi RTT metrics 437 optional WifiRttLog wifi_rtt_log = 110; 438 439 // Flag which indicates if Connected MAC Randomization is enabled 440 optional bool is_mac_randomization_on = 111 [default = false]; 441 442 // Number of radio mode changes to MCC (Multi channel concurrency). 443 optional int32 num_radio_mode_change_to_mcc = 112; 444 445 // Number of radio mode changes to SCC (Single channel concurrency). 446 optional int32 num_radio_mode_change_to_scc = 113; 447 448 // Number of radio mode changes to SBS (Single band simultaneous). 449 optional int32 num_radio_mode_change_to_sbs = 114; 450 451 // Number of radio mode changes to DBS (Dual band simultaneous). 452 optional int32 num_radio_mode_change_to_dbs = 115; 453 454 // Number of times the firmware picked a SoftAp channel not satisfying user band preference. 455 optional int32 num_soft_ap_user_band_preference_unsatisfied = 116; 456 457 // Identifier for experimental scoring parameter settings. 458 optional string score_experiment_id = 117; 459 460} 461 462// Information that gets logged for every WiFi connection. 463message RouterFingerPrint { 464 465 enum RoamType { 466 467 // Type is unknown. 468 ROAM_TYPE_UNKNOWN = 0; 469 470 // No roaming - usually happens on a single band (2.4 GHz) router. 471 ROAM_TYPE_NONE = 1; 472 473 // Enterprise router. 474 ROAM_TYPE_ENTERPRISE = 2; 475 476 // DBDC => Dual Band Dual Concurrent essentially a router that 477 // supports both 2.4 GHz and 5 GHz bands. 478 ROAM_TYPE_DBDC = 3; 479 } 480 481 enum Auth { 482 483 // Auth is unknown. 484 AUTH_UNKNOWN = 0; 485 486 // No authentication. 487 AUTH_OPEN = 1; 488 489 // If the router uses a personal authentication. 490 AUTH_PERSONAL = 2; 491 492 // If the router is setup for enterprise authentication. 493 AUTH_ENTERPRISE = 3; 494 } 495 496 enum RouterTechnology { 497 498 // Router is unknown. 499 ROUTER_TECH_UNKNOWN = 0; 500 501 // Router Channel A. 502 ROUTER_TECH_A = 1; 503 504 // Router Channel B. 505 ROUTER_TECH_B = 2; 506 507 // Router Channel G. 508 ROUTER_TECH_G = 3; 509 510 // Router Channel N. 511 ROUTER_TECH_N = 4; 512 513 // Router Channel AC. 514 ROUTER_TECH_AC = 5; 515 516 // When the channel is not one of the above. 517 ROUTER_TECH_OTHER = 6; 518 } 519 520 optional RoamType roam_type = 1; 521 522 // Channel on which the connection takes place. 523 optional int32 channel_info = 2; 524 525 // DTIM setting of the router. 526 optional int32 dtim = 3; 527 528 // Authentication scheme of the router. 529 optional Auth authentication = 4; 530 531 // If the router is hidden. 532 optional bool hidden = 5; 533 534 // Channel information. 535 optional RouterTechnology router_technology = 6; 536 537 // whether ipv6 is supported. 538 optional bool supports_ipv6 = 7; 539 540 // If the router is a passpoint / hotspot 2.0 network 541 optional bool passpoint = 8; 542} 543 544message ConnectionEvent { 545 546 // Roam Type. 547 enum RoamType { 548 549 // Type is unknown. 550 ROAM_UNKNOWN = 0; 551 552 // No roaming. 553 ROAM_NONE = 1; 554 555 // DBDC roaming. 556 ROAM_DBDC = 2; 557 558 // Enterprise roaming. 559 ROAM_ENTERPRISE = 3; 560 561 // User selected roaming. 562 ROAM_USER_SELECTED = 4; 563 564 // Unrelated. 565 ROAM_UNRELATED = 5; 566 } 567 568 // Connectivity Level Failure. 569 enum ConnectivityLevelFailure { 570 571 // Failure is unknown. 572 HLF_UNKNOWN = 0; 573 574 // No failure. 575 HLF_NONE = 1; 576 577 // DHCP failure. 578 HLF_DHCP = 2; 579 580 // No internet connection. 581 HLF_NO_INTERNET = 3; 582 583 // No internet connection. 584 HLF_UNWANTED = 4; 585 } 586 587 // Start time of the connection. 588 optional int64 start_time_millis = 1;// [(datapol.semantic_type) = ST_TIMESTAMP]; 589 590 // Duration to connect. 591 optional int32 duration_taken_to_connect_millis = 2; 592 593 // Router information. 594 optional RouterFingerPrint router_fingerprint = 3; 595 596 // RSSI at the start of the connection. 597 optional int32 signal_strength = 4; 598 599 // Roam Type. 600 optional RoamType roam_type = 5; 601 602 // Result of the connection. 603 optional int32 connection_result = 6; 604 605 // Reasons for level 2 failure (needs to be coordinated with wpa-supplicant). 606 optional int32 level_2_failure_code = 7; 607 608 // Failures that happen at the connectivity layer. 609 optional ConnectivityLevelFailure connectivity_level_failure_code = 8; 610 611 // Has bug report been taken. 612 optional bool automatic_bug_report_taken = 9; 613} 614 615// Number of occurrences of a specific RSSI poll rssi value 616message RssiPollCount { 617 // RSSI 618 optional int32 rssi = 1; 619 620 // Number of RSSI polls with 'rssi' 621 optional int32 count = 2; 622 623 // Beacon frequency of the channel in MHz 624 optional int32 frequency = 3; 625} 626 627// Number of occurrences of a specific alert reason value 628message AlertReasonCount { 629 // Alert reason 630 optional int32 reason = 1; 631 632 // Number of alerts with |reason|. 633 optional int32 count = 2; 634} 635 636// Counts the number of instances of a specific Wifi Score calculated by WifiScoreReport 637message WifiScoreCount { 638 // Wifi Score 639 optional int32 score = 1; 640 641 // Number of Wifi score reports with this score 642 optional int32 count = 2; 643} 644 645// Number of occurrences of Soft AP session durations 646message SoftApDurationBucket { 647 // Bucket covers duration : [duration_sec, duration_sec + bucket_size_sec) 648 // The (inclusive) lower bound of Soft AP session duration represented by this bucket 649 optional int32 duration_sec = 1; 650 651 // The size of this bucket 652 optional int32 bucket_size_sec = 2; 653 654 // Number of soft AP session durations that fit into this bucket 655 optional int32 count = 3; 656} 657 658// Number of occurrences of a soft AP session return code 659message SoftApReturnCodeCount { 660 661 enum SoftApStartResult { 662 663 // SoftApManager return code unknown 664 SOFT_AP_RETURN_CODE_UNKNOWN = 0; 665 666 // SoftAp started successfully 667 SOFT_AP_STARTED_SUCCESSFULLY = 1; 668 669 // Catch all for failures with no specific failure reason 670 SOFT_AP_FAILED_GENERAL_ERROR = 2; 671 672 // SoftAp failed to start due to NO_CHANNEL error 673 SOFT_AP_FAILED_NO_CHANNEL = 3; 674 } 675 676 // Historical, no longer used for writing as of 01/2017. 677 optional int32 return_code = 1 [deprecated = true]; 678 679 // Occurrences of this soft AP return code 680 optional int32 count = 2; 681 682 // Result of attempt to start SoftAp 683 optional SoftApStartResult start_result = 3; 684} 685 686message StaEvent { 687 message ConfigInfo { 688 // The set of key management protocols supported by this configuration. 689 optional uint32 allowed_key_management = 1 [default = 0]; 690 691 // The set of security protocols supported by this configuration. 692 optional uint32 allowed_protocols = 2 [default = 0]; 693 694 // The set of authentication protocols supported by this configuration. 695 optional uint32 allowed_auth_algorithms = 3 [default = 0]; 696 697 // The set of pairwise ciphers for WPA supported by this configuration. 698 optional uint32 allowed_pairwise_ciphers = 4 [default = 0]; 699 700 // The set of group ciphers supported by this configuration. 701 optional uint32 allowed_group_ciphers = 5; 702 703 // Is this a 'hidden network' 704 optional bool hidden_ssid = 6; 705 706 // Is this a Hotspot 2.0 / passpoint network 707 optional bool is_passpoint = 7; 708 709 // Is this an 'ephemeral' network (Not in saved network list, recommended externally) 710 optional bool is_ephemeral = 8; 711 712 // Has a successful connection ever been established using this WifiConfiguration 713 optional bool has_ever_connected = 9; 714 715 // RSSI of the scan result candidate associated with this WifiConfiguration 716 optional int32 scan_rssi = 10 [default = -127]; 717 718 // Frequency of the scan result candidate associated with this WifiConfiguration 719 optional int32 scan_freq = 11 [default = -1]; 720 } 721 722 enum EventType { 723 // Default/Invalid event 724 TYPE_UNKNOWN = 0; 725 726 // Supplicant Association Rejection event. Code contains the 802.11 727 TYPE_ASSOCIATION_REJECTION_EVENT = 1; 728 729 // Supplicant L2 event, 730 TYPE_AUTHENTICATION_FAILURE_EVENT = 2; 731 732 // Supplicant L2 event 733 TYPE_NETWORK_CONNECTION_EVENT = 3; 734 735 // Supplicant L2 event 736 TYPE_NETWORK_DISCONNECTION_EVENT = 4; 737 738 // Supplicant L2 event 739 TYPE_SUPPLICANT_STATE_CHANGE_EVENT = 5; 740 741 // Supplicant L2 event 742 TYPE_CMD_ASSOCIATED_BSSID = 6; 743 744 // IP Manager successfully completed IP Provisioning 745 TYPE_CMD_IP_CONFIGURATION_SUCCESSFUL = 7; 746 747 // IP Manager failed to complete IP Provisioning 748 TYPE_CMD_IP_CONFIGURATION_LOST = 8; 749 750 // IP Manager lost reachability to network neighbors 751 TYPE_CMD_IP_REACHABILITY_LOST = 9; 752 753 // Indicator that Supplicant is targeting a BSSID for roam/connection 754 TYPE_CMD_TARGET_BSSID = 10; 755 756 // Wifi framework is initiating a connection attempt 757 TYPE_CMD_START_CONNECT = 11; 758 759 // Wifi framework is initiating a roaming connection attempt 760 TYPE_CMD_START_ROAM = 12; 761 762 // SystemAPI connect() command, Settings App 763 TYPE_CONNECT_NETWORK = 13; 764 765 // Network Agent has validated the internet connection (Captive Portal Check success, or user 766 // validation) 767 TYPE_NETWORK_AGENT_VALID_NETWORK = 14; 768 769 // Framework initiated disconnect. Sometimes generated to give an extra reason for a disconnect 770 // Should typically be followed by a NETWORK_DISCONNECTION_EVENT with a local_gen = true 771 TYPE_FRAMEWORK_DISCONNECT = 15; 772 773 // The NetworkAgent score for wifi has changed in a way that may impact 774 // connectivity 775 TYPE_SCORE_BREACH = 16; 776 777 // Framework changed Sta interface MAC address 778 TYPE_MAC_CHANGE = 17; 779 } 780 781 enum FrameworkDisconnectReason { 782 // default/none/unknown value 783 DISCONNECT_UNKNOWN = 0; 784 785 // API DISCONNECT 786 DISCONNECT_API = 1; 787 788 // Some framework internal reason (generic) 789 DISCONNECT_GENERIC = 2; 790 791 // Network Agent network validation failed, user signaled network unwanted 792 DISCONNECT_UNWANTED = 3; 793 794 // Roaming timed out 795 DISCONNECT_ROAM_WATCHDOG_TIMER = 4; 796 797 // P2P service requested wifi disconnect 798 DISCONNECT_P2P_DISCONNECT_WIFI_REQUEST = 5; 799 800 // SIM was removed while using a SIM config 801 DISCONNECT_RESET_SIM_NETWORKS = 6; 802 } 803 804 // Authentication Failure reasons as reported through the API. 805 enum AuthFailureReason { 806 // Unknown default 807 AUTH_FAILURE_UNKNOWN = 0; 808 809 // The reason code if there is no error during authentication. It could also imply that there no 810 // authentication in progress, 811 AUTH_FAILURE_NONE = 1; 812 813 // The reason code if there was a timeout authenticating. 814 AUTH_FAILURE_TIMEOUT = 2; 815 816 // The reason code if there was a wrong password while authenticating. 817 AUTH_FAILURE_WRONG_PSWD = 3; 818 819 // The reason code if there was EAP failure while authenticating. 820 AUTH_FAILURE_EAP_FAILURE = 4; 821 } 822 823 // What event was this 824 optional EventType type = 1; 825 826 // 80211 death reason code, relevant to NETWORK_DISCONNECTION_EVENTs 827 optional int32 reason = 2 [default = -1]; 828 829 // 80211 Association Status code, relevant to ASSOCIATION_REJECTION_EVENTs 830 optional int32 status = 3 [default = -1]; 831 832 // Designates whether a NETWORK_DISCONNECT_EVENT was by the STA or AP 833 optional bool local_gen = 4 [default = false]; 834 835 // Network information from the WifiConfiguration of a framework initiated connection attempt 836 optional ConfigInfo config_info = 5; 837 838 // RSSI from the last rssi poll (Only valid for active connections) 839 optional int32 last_rssi = 6 [default = -127]; 840 841 // Link speed from the last rssi poll (Only valid for active connections) 842 optional int32 last_link_speed = 7 [default = -1]; 843 844 // Frequency from the last rssi poll (Only valid for active connections) 845 optional int32 last_freq = 8 [default = -1]; 846 847 // Enum used to define bit positions in the supplicant_state_change_bitmask 848 // See {@code frameworks/base/wifi/java/android/net/wifi/SupplicantState.java} for documentation 849 enum SupplicantState { 850 STATE_DISCONNECTED = 0; 851 852 STATE_INTERFACE_DISABLED = 1; 853 854 STATE_INACTIVE = 2; 855 856 STATE_SCANNING = 3; 857 858 STATE_AUTHENTICATING = 4; 859 860 STATE_ASSOCIATING = 5; 861 862 STATE_ASSOCIATED = 6; 863 864 STATE_FOUR_WAY_HANDSHAKE = 7; 865 866 STATE_GROUP_HANDSHAKE = 8; 867 868 STATE_COMPLETED = 9; 869 870 STATE_DORMANT = 10; 871 872 STATE_UNINITIALIZED = 11; 873 874 STATE_INVALID = 12; 875 } 876 877 // Bit mask of all supplicant state changes that occured since the last event 878 optional uint32 supplicant_state_changes_bitmask = 9 [default = 0]; 879 880 // The number of milliseconds that have elapsed since the device booted 881 optional int64 start_time_millis = 10 [default = 0]; 882 883 optional FrameworkDisconnectReason framework_disconnect_reason = 11 [default = DISCONNECT_UNKNOWN]; 884 885 // Flag which indicates if an association rejection event occured due to a timeout 886 optional bool association_timed_out = 12 [default = false]; 887 888 // Authentication failure reason, as reported by WifiManager (calculated from state & deauth code) 889 optional AuthFailureReason auth_failure_reason = 13 [default = AUTH_FAILURE_UNKNOWN]; 890 891 // NetworkAgent score of connected wifi 892 optional int32 last_score = 14 [default = -1]; 893} 894 895// Wi-Fi Aware metrics 896message WifiAwareLog { 897 // total number of unique apps that used Aware (measured on attach) 898 optional int32 num_apps = 1; 899 900 // total number of unique apps that used an identity callback when attaching 901 optional int32 num_apps_using_identity_callback = 2; 902 903 // maximum number of attaches for an app 904 optional int32 max_concurrent_attach_sessions_in_app = 3; 905 906 // histogram of attach request results 907 repeated NanStatusHistogramBucket histogram_attach_session_status = 4; 908 909 // maximum number of concurrent publish sessions in a single app 910 optional int32 max_concurrent_publish_in_app = 5; 911 912 // maximum number of concurrent subscribe sessions in a single app 913 optional int32 max_concurrent_subscribe_in_app = 6; 914 915 // maximum number of concurrent discovery (publish+subscribe) sessions in a single app 916 optional int32 max_concurrent_discovery_sessions_in_app = 7; 917 918 // maximum number of concurrent publish sessions in the system 919 optional int32 max_concurrent_publish_in_system = 8; 920 921 // maximum number of concurrent subscribe sessions in the system 922 optional int32 max_concurrent_subscribe_in_system = 9; 923 924 // maximum number of concurrent discovery (publish+subscribe) sessions in the system 925 optional int32 max_concurrent_discovery_sessions_in_system = 10; 926 927 // histogram of publish request results 928 repeated NanStatusHistogramBucket histogram_publish_status = 11; 929 930 // histogram of subscribe request results 931 repeated NanStatusHistogramBucket histogram_subscribe_status = 12; 932 933 // number of unique apps which experienced a discovery session creation failure due to lack of 934 // resources 935 optional int32 num_apps_with_discovery_session_failure_out_of_resources = 13; 936 937 // histogram of create ndp request results 938 repeated NanStatusHistogramBucket histogram_request_ndp_status = 14; 939 940 // histogram of create ndp out-of-band (OOB) request results 941 repeated NanStatusHistogramBucket histogram_request_ndp_oob_status = 15; 942 943 // maximum number of concurrent active data-interfaces (NDI) in a single app 944 optional int32 max_concurrent_ndi_in_app = 19; 945 946 // maximum number of concurrent active data-interfaces (NDI) in the system 947 optional int32 max_concurrent_ndi_in_system = 20; 948 949 // maximum number of concurrent data-paths (NDP) in a single app 950 optional int32 max_concurrent_ndp_in_app = 21; 951 952 // maximum number of concurrent data-paths (NDP) in the system 953 optional int32 max_concurrent_ndp_in_system = 22; 954 955 // maximum number of concurrent secure data-paths (NDP) in a single app 956 optional int32 max_concurrent_secure_ndp_in_app = 23; 957 958 // maximum number of concurrent secure data-paths (NDP) in the system 959 optional int32 max_concurrent_secure_ndp_in_system = 24; 960 961 // maximum number of concurrent data-paths (NDP) per data-interface (NDI) 962 optional int32 max_concurrent_ndp_per_ndi = 25; 963 964 // histogram of durations of Aware being available 965 repeated HistogramBucket histogram_aware_available_duration_ms = 26; 966 967 // histogram of durations of Aware being enabled 968 repeated HistogramBucket histogram_aware_enabled_duration_ms = 27; 969 970 // histogram of duration (in ms) of attach sessions 971 repeated HistogramBucket histogram_attach_duration_ms = 28; 972 973 // histogram of duration (in ms) of publish sessions 974 repeated HistogramBucket histogram_publish_session_duration_ms = 29; 975 976 // histogram of duration (in ms) of subscribe sessions 977 repeated HistogramBucket histogram_subscribe_session_duration_ms = 30; 978 979 // histogram of duration (in ms) of data-paths (NDP) 980 repeated HistogramBucket histogram_ndp_session_duration_ms = 31; 981 982 // histogram of usage (in MB) of data-paths (NDP) 983 repeated HistogramBucket histogram_ndp_session_data_usage_mb = 32; 984 985 // histogram of usage (in MB) of data-path creation time (in ms) measured as request -> confirm 986 repeated HistogramBucket histogram_ndp_creation_time_ms = 33; 987 988 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: minimum 989 optional int64 ndp_creation_time_ms_min = 34; 990 991 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: maximum 992 optional int64 ndp_creation_time_ms_max = 35; 993 994 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: sum 995 optional int64 ndp_creation_time_ms_sum = 36; 996 997 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: sum of sq 998 optional int64 ndp_creation_time_ms_sum_of_sq = 37; 999 1000 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: number of 1001 // samples 1002 optional int64 ndp_creation_time_ms_num_samples = 38; 1003 1004 // total time within the logging window that aware was available 1005 optional int64 available_time_ms = 39; 1006 1007 // total time within the logging window that aware was enabled 1008 optional int64 enabled_time_ms = 40; 1009 1010 // maximum number of concurrent publish sessions enabling ranging in a single app 1011 optional int32 max_concurrent_publish_with_ranging_in_app = 41; 1012 1013 // maximum number of concurrent subscribe sessions specifying a geofence in a single app 1014 optional int32 max_concurrent_subscribe_with_ranging_in_app = 42; 1015 1016 // maximum number of concurrent publish sessions enabling ranging in the system 1017 optional int32 max_concurrent_publish_with_ranging_in_system = 43; 1018 1019 // maximum number of concurrent subscribe sessions specifying a geofence in the system 1020 optional int32 max_concurrent_subscribe_with_ranging_in_system = 44; 1021 1022 // histogram of subscribe session geofence minimum (only when specified) 1023 repeated HistogramBucket histogram_subscribe_geofence_min = 45; 1024 1025 // histogram of subscribe session geofence maximum (only when specified) 1026 repeated HistogramBucket histogram_subscribe_geofence_max = 46; 1027 1028 // total number of subscribe sessions which enabled ranging 1029 optional int32 num_subscribes_with_ranging = 47; 1030 1031 // total number of matches (service discovery indication) with ranging provided 1032 optional int32 num_matches_with_ranging = 48; 1033 1034 // total number of matches (service discovery indication) for service discovery with ranging 1035 // enabled which did not trigger ranging 1036 optional int32 num_matches_without_ranging_for_ranging_enabled_subscribes = 49; 1037 1038 // Histogram bucket for Wi-Fi Aware logs. Range is [start, end) 1039 message HistogramBucket { 1040 // lower range of the bucket (inclusive) 1041 optional int64 start = 1; 1042 1043 // upper range of the bucket (exclusive) 1044 optional int64 end = 2; 1045 1046 // number of samples in the bucket 1047 optional int32 count = 3; 1048 } 1049 1050 // Status of various NAN operations 1051 enum NanStatusTypeEnum { 1052 // constant to be used by proto 1053 UNKNOWN = 0; 1054 1055 // NAN operation succeeded 1056 SUCCESS = 1; 1057 1058 // NAN Discovery Engine/Host driver failures 1059 INTERNAL_FAILURE = 2; 1060 1061 // NAN OTA failures 1062 PROTOCOL_FAILURE = 3; 1063 1064 // The publish/subscribe discovery session id is invalid 1065 INVALID_SESSION_ID = 4; 1066 1067 // Out of resources to fufill request 1068 NO_RESOURCES_AVAILABLE = 5; 1069 1070 // Invalid arguments passed 1071 INVALID_ARGS = 6; 1072 1073 // Invalid peer id 1074 INVALID_PEER_ID = 7; 1075 1076 // Invalid NAN data-path (ndp) id 1077 INVALID_NDP_ID = 8; 1078 1079 // Attempting to enable NAN when not available, e.g. wifi is disabled 1080 NAN_NOT_ALLOWED = 9; 1081 1082 // Over the air ACK not received 1083 NO_OTA_ACK = 10; 1084 1085 // Attempting to enable NAN when already enabled 1086 ALREADY_ENABLED = 11; 1087 1088 // Can't queue tx followup message foor transmission 1089 FOLLOWUP_TX_QUEUE_FULL = 12; 1090 1091 // Unsupported concurrency of NAN and another feature - NAN disabled 1092 UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 13; 1093 1094 // Unknown NanStatusType 1095 UNKNOWN_HAL_STATUS = 14; 1096 } 1097 1098 // Histogram bucket for Wi-Fi Aware (NAN) status. 1099 message NanStatusHistogramBucket { 1100 // status type defining the bucket 1101 optional NanStatusTypeEnum nan_status_type = 1; 1102 1103 // number of samples in the bucket 1104 optional int32 count = 2; 1105 } 1106} 1107 1108// Data point used to build 'Number of Connectable Network' histograms 1109message NumConnectableNetworksBucket { 1110 // Number of connectable networks seen in a scan result 1111 optional int32 num_connectable_networks = 1 [default = 0]; 1112 1113 // Number of scan results with num_connectable_networks 1114 optional int32 count = 2 [default = 0]; 1115} 1116 1117// Pno scan metrics 1118// Here "Pno Scan" refers to the session of offloaded scans, these metrics count the result of a 1119// single session, and not the individual scans within that session. 1120message PnoScanMetrics { 1121 // Total number of attempts to offload pno scans 1122 optional int32 num_pno_scan_attempts = 1; 1123 1124 // Total number of pno scans failed 1125 optional int32 num_pno_scan_failed = 2; 1126 1127 // Number of pno scans started successfully over offload 1128 optional int32 num_pno_scan_started_over_offload = 3; 1129 1130 // Number of pno scans failed over offload 1131 optional int32 num_pno_scan_failed_over_offload = 4; 1132 1133 // Total number of pno scans that found any network 1134 optional int32 num_pno_found_network_events = 5; 1135} 1136 1137// Number of occurrences for a particular "Connect to Network" Notification or 1138// notification Action. 1139message ConnectToNetworkNotificationAndActionCount { 1140 1141 // "Connect to Network" notifications 1142 enum Notification { 1143 1144 // Default 1145 NOTIFICATION_UNKNOWN = 0; 1146 1147 // Initial notification with a recommended network. 1148 NOTIFICATION_RECOMMEND_NETWORK = 1; 1149 1150 // Notification when connecting to the recommended network. 1151 NOTIFICATION_CONNECTING_TO_NETWORK = 2; 1152 1153 // Notification when successfully connected to the network. 1154 NOTIFICATION_CONNECTED_TO_NETWORK = 3; 1155 1156 // Notification when failed to connect to network. 1157 NOTIFICATION_FAILED_TO_CONNECT = 4; 1158 } 1159 1160 // "Connect to Network" notification actions 1161 enum Action { 1162 1163 // Default 1164 ACTION_UNKNOWN = 0; 1165 1166 // User dismissed the "Connect to Network" notification. 1167 ACTION_USER_DISMISSED_NOTIFICATION = 1; 1168 1169 // User tapped action button to connect to recommended network. 1170 ACTION_CONNECT_TO_NETWORK = 2; 1171 1172 // User tapped action button to open Wi-Fi Settings. 1173 ACTION_PICK_WIFI_NETWORK = 3; 1174 1175 // User tapped "Failed to connect" notification to open Wi-Fi Settings. 1176 ACTION_PICK_WIFI_NETWORK_AFTER_CONNECT_FAILURE = 4; 1177 } 1178 1179 // Recommenders of the "Connect to Network" notification 1180 enum Recommender { 1181 1182 // Default. 1183 RECOMMENDER_UNKNOWN = 0; 1184 1185 // Open Network Available recommender. 1186 RECOMMENDER_OPEN = 1; 1187 } 1188 1189 // Notification Type. 1190 optional Notification notification = 1; 1191 1192 // Action Type. 1193 optional Action action = 2; 1194 1195 // Recommender Type. 1196 optional Recommender recommender = 3; 1197 1198 // Occurrences of this action. 1199 optional int32 count = 4; 1200} 1201 1202// SoftAP event tracking sessions and client counts 1203message SoftApConnectedClientsEvent { 1204 1205 // Soft AP event Types 1206 enum SoftApEventType { 1207 1208 // Soft AP is Up and ready for use 1209 SOFT_AP_UP = 0; 1210 1211 // Soft AP is Down 1212 SOFT_AP_DOWN = 1; 1213 1214 // Number of connected soft AP clients has changed 1215 NUM_CLIENTS_CHANGED = 2; 1216 } 1217 1218 // Soft AP channel bandwidth types 1219 enum ChannelBandwidth { 1220 1221 BANDWIDTH_INVALID = 0; 1222 1223 BANDWIDTH_20_NOHT = 1; 1224 1225 BANDWIDTH_20 = 2; 1226 1227 BANDWIDTH_40 = 3; 1228 1229 BANDWIDTH_80 = 4; 1230 1231 BANDWIDTH_80P80 = 5; 1232 1233 BANDWIDTH_160 = 6; 1234 } 1235 1236 // Type of event being recorded 1237 optional SoftApEventType event_type = 1; 1238 1239 // Time passed since last boot in milliseconds 1240 optional int64 time_stamp_millis = 2; 1241 1242 // Number of connected clients if event_type is NUM_CLIENTS_CHANGED, otherwise zero. 1243 optional int32 num_connected_clients = 3; 1244 1245 // Channel frequency used for Soft AP 1246 optional int32 channel_frequency = 4; 1247 1248 // Channel bandwidth used for Soft AP 1249 optional ChannelBandwidth channel_bandwidth = 5; 1250} 1251 1252// Wps connection metrics 1253// Keeps track of Wi-Fi Protected Setup usage 1254message WpsMetrics { 1255 // Total number of wps connection attempts 1256 optional int32 num_wps_attempts = 1; 1257 1258 // Total number of wps connection successes 1259 optional int32 num_wps_success = 2; 1260 1261 // Total number of wps failures on start 1262 optional int32 num_wps_start_failure = 3; 1263 1264 // Total number of wps overlap failure 1265 optional int32 num_wps_overlap_failure = 4; 1266 1267 // Total number of wps timeout failure 1268 optional int32 num_wps_timeout_failure = 5; 1269 1270 // Total number of other wps failure during connection 1271 optional int32 num_wps_other_connection_failure = 6; 1272 1273 // Total number of supplicant failure after wps 1274 optional int32 num_wps_supplicant_failure = 7; 1275 1276 // Total number of wps cancellation 1277 optional int32 num_wps_cancellation = 8; 1278} 1279 1280// Power stats for Wifi 1281message WifiPowerStats { 1282 1283 // Duration of log (ms) 1284 optional int64 logging_duration_ms = 1; 1285 1286 // Energy consumed by wifi (mAh) 1287 optional double energy_consumed_mah = 2; 1288 1289 // Amount of time wifi is in idle (ms) 1290 optional int64 idle_time_ms = 3; 1291 1292 // Amount of time wifi is in rx (ms) 1293 optional int64 rx_time_ms = 4; 1294 1295 // Amount of time wifi is in tx (ms) 1296 optional int64 tx_time_ms = 5; 1297} 1298 1299// Metrics for Wifi Wake 1300message WifiWakeStats { 1301 // An individual session for Wifi Wake 1302 message Session { 1303 // A Wifi Wake lifecycle event 1304 message Event { 1305 // Elapsed time in milliseconds since start of session. 1306 optional int64 elapsed_time_millis = 1; 1307 1308 // Number of scans that have occurred since start of session. 1309 optional int32 elapsed_scans = 2; 1310 } 1311 1312 // Start time of session in milliseconds. 1313 optional int64 start_time_millis = 1; 1314 1315 // The number of networks the lock was provided with at start. 1316 optional int32 locked_networks_at_start = 2; 1317 1318 // The number of networks in the lock at the time of the initialize event. Only valid if 1319 // initialize_event is recorded. 1320 optional int32 locked_networks_at_initialize = 6; 1321 1322 // Event for fully initializing the WakeupLock (i.e. WakeupLock is "locked"). 1323 optional Event initialize_event = 7; 1324 1325 // Event for unlocking the WakeupLock. Does not occur if lock was initialized with 0 networks. 1326 optional Event unlock_event = 3; 1327 1328 // Event for triggering wakeup. 1329 optional Event wakeup_event = 4; 1330 1331 // Event for WifiWake reset event. This event marks the end of a session. 1332 optional Event reset_event = 5; 1333 } 1334 1335 // Total number of sessions for Wifi Wake. 1336 optional int32 num_sessions = 1; 1337 1338 // Session information for every Wifi Wake session (up to a maximum of 10). 1339 repeated Session sessions = 2; 1340 1341 // Number of ignored calls to start (due to WakeupController already being active). 1342 optional int32 num_ignored_starts = 3; 1343 1344 // Number of Wifi Wake sessions that have recorded wakeup events. 1345 optional int32 num_wakeups = 4; 1346} 1347 1348// Metrics for Wi-Fi RTT 1349message WifiRttLog { 1350 // Number of RTT request API calls 1351 optional int32 num_requests = 1; 1352 1353 // Histogram of RTT operation overall status 1354 repeated RttOverallStatusHistogramBucket histogram_overall_status = 2; 1355 1356 // RTT to Access Points metrics 1357 optional RttToPeerLog rtt_to_ap = 3; 1358 1359 // RTT to Wi-Fi Aware peers metrics 1360 optional RttToPeerLog rtt_to_aware = 4; 1361 1362 // Metrics for a RTT to Peer (peer = AP or Wi-Fi Aware) 1363 message RttToPeerLog { 1364 // Total number of API calls 1365 optional int32 num_requests = 1; 1366 1367 // Total number of individual requests 1368 optional int32 num_individual_requests = 2; 1369 1370 // Total number of apps which requested RTT 1371 optional int32 num_apps = 3; 1372 1373 // Histogram of total number of RTT requests by an app (WifiRttManager#startRanging) 1374 repeated HistogramBucket histogram_num_requests_per_app = 4; 1375 1376 // Histogram of number of peers in a single RTT request (RangingRequest entries) 1377 repeated HistogramBucket histogram_num_peers_per_request = 5; 1378 1379 // Histogram of status of individual RTT operations (RangingResult entries) 1380 repeated RttIndividualStatusHistogramBucket histogram_individual_status = 6; 1381 1382 // Histogram of measured distances (RangingResult entries) 1383 repeated HistogramBucket histogram_distance = 7; 1384 1385 // Histogram of interval of RTT requests by an app (WifiRttManager#startRanging) 1386 repeated HistogramBucket histogram_request_interval_ms = 8; 1387 } 1388 1389 // Histogram bucket for Wi-Fi RTT logs. Range is [start, end) 1390 message HistogramBucket { 1391 // lower range of the bucket (inclusive) 1392 optional int64 start = 1; 1393 1394 // upper range of the bucket (exclusive) 1395 optional int64 end = 2; 1396 1397 // number of samples in the bucket 1398 optional int32 count = 3; 1399 } 1400 1401 // Status codes for overall RTT operation 1402 enum RttOverallStatusTypeEnum { 1403 // constant to be used by proto 1404 OVERALL_UNKNOWN = 0; 1405 1406 // RTT operation succeeded (individual results may still fail) 1407 OVERALL_SUCCESS = 1; 1408 1409 // RTT operation failed (unspecified reason) 1410 OVERALL_FAIL = 2; 1411 1412 // RTT operation failed since RTT was not available (e.g. Airplane mode) 1413 OVERALL_RTT_NOT_AVAILABLE = 3; 1414 1415 // RTT operation timed-out: didn't receive response from HAL in expected time 1416 OVERALL_TIMEOUT = 4; 1417 1418 // RTT operation aborted since the app is spamming the service 1419 OVERALL_THROTTLE = 5; 1420 1421 // RTT request to HAL received immediate failure 1422 OVERALL_HAL_FAILURE = 6; 1423 1424 // RTT to Wi-Fi Aware peer using PeerHandle failed to get a MAC address translation 1425 OVERALL_AWARE_TRANSLATION_FAILURE = 7; 1426 1427 // RTT operation failed due to missing Location permission (post execution) 1428 OVERALL_LOCATION_PERMISSION_MISSING = 8; 1429 } 1430 1431 // Status codes for individual RTT operation 1432 enum RttIndividualStatusTypeEnum { 1433 // constant to be used by proto 1434 UNKNOWN = 0; 1435 1436 // RTT operation succeeded 1437 SUCCESS = 1; 1438 1439 // RTT failure: generic reason (no further information) 1440 FAILURE = 2; 1441 1442 // Target STA does not respond to request 1443 FAIL_NO_RSP = 3; 1444 1445 // Request rejected. Applies to 2-sided RTT only 1446 FAIL_REJECTED = 4; 1447 1448 // Operation not scheduled 1449 FAIL_NOT_SCHEDULED_YET = 5; 1450 1451 // Timing measurement times out 1452 FAIL_TM_TIMEOUT = 6; 1453 1454 // Target on different channel, cannot range 1455 FAIL_AP_ON_DIFF_CHANNEL = 7; 1456 1457 // Ranging not supported 1458 FAIL_NO_CAPABILITY = 8; 1459 1460 // Request aborted for unknown reason 1461 ABORTED = 9; 1462 1463 // Invalid T1-T4 timestamp 1464 FAIL_INVALID_TS = 10; 1465 1466 // 11mc protocol failed 1467 FAIL_PROTOCOL = 11; 1468 1469 // Request could not be scheduled 1470 FAIL_SCHEDULE = 12; 1471 1472 // Responder cannot collaborate at time of request 1473 FAIL_BUSY_TRY_LATER = 13; 1474 1475 // Bad request args 1476 INVALID_REQ = 14; 1477 1478 // WiFi not enabled 1479 NO_WIFI = 15; 1480 1481 // Responder overrides param info, cannot range with new params 1482 FAIL_FTM_PARAM_OVERRIDE = 16; 1483 1484 // HAL did not provide a result to a framework request 1485 MISSING_RESULT = 17; 1486 } 1487 1488 // Histogram bucket for Wi-Fi RTT overall operation status 1489 message RttOverallStatusHistogramBucket { 1490 // status type defining the bucket 1491 optional RttOverallStatusTypeEnum status_type = 1; 1492 1493 // number of samples in the bucket 1494 optional int32 count = 2; 1495 } 1496 1497 // Histogram bucket for Wi-Fi RTT individual operation status 1498 message RttIndividualStatusHistogramBucket { 1499 // status type defining the bucket 1500 optional RttIndividualStatusTypeEnum status_type = 1; 1501 1502 // number of samples in the bucket 1503 optional int32 count = 2; 1504 } 1505} 1506