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 legacy personal networks. 37 optional int32 num_legacy_personal_networks = 4; 38 39 // Number of legacy enterprise networks. 40 optional int32 num_legacy_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 legacy personal networks 210 optional int32 num_legacy_personal_network_scan_results = 41; 211 212 // Total number of scan results for legacy enterprise networks 213 optional int32 num_legacy_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 // Data on wifi radio usage 461 optional WifiRadioUsage wifi_radio_usage = 118; 462 463 // Stores settings values used for metrics testing. 464 optional ExperimentValues experiment_values = 119; 465 466 // List of WifiIsUnusableEvents which get logged when we notice that WiFi is unusable. 467 // Collected only when WIFI_IS_UNUSABLE_EVENT_METRICS_ENABLED Settings is enabled. 468 repeated WifiIsUnusableEvent wifi_is_unusable_event_list = 120; 469 470 // Counts the occurrences of each link speed (Mbps) level 471 // with rssi (dBm) and rssi^2 sums (dBm^2) 472 repeated LinkSpeedCount link_speed_counts = 121; 473 474 // Number of times the SarManager failed to register SAR sensor listener 475 optional int32 num_sar_sensor_registration_failures = 122; 476 477 // Hardware revision (EVT, DVT, PVT etc.) 478 optional string hardware_revision = 124; 479 480 // Total wifi link layer usage data over the logging duration in ms. 481 optional WifiLinkLayerUsageStats wifi_link_layer_usage_stats = 125; 482 483 // Multiple lists of timestamped link layer stats with labels to represent whether wifi is usable 484 repeated WifiUsabilityStats wifi_usability_stats_list = 126; 485 486 // Counts the occurrences of each Wifi usability score provided by external app 487 repeated WifiUsabilityScoreCount wifi_usability_score_count = 127; 488 489 // List of PNO scan stats, one element for each mobility state 490 repeated DeviceMobilityStatePnoScanStats mobility_state_pno_stats_list = 128; 491 492 // Wifi p2p statistics 493 optional WifiP2pStats wifi_p2p_stats = 129; 494 495 // Easy Connect (DPP) metrics 496 optional WifiDppLog wifi_dpp_log = 130; 497 498 // Number of Enhanced Open (OWE) networks in the saved networks. 499 optional int32 num_enhanced_open_networks = 131; 500 501 // Number of WPA3-Personal networks. 502 optional int32 num_wpa3_personal_networks = 132; 503 504 // Number of WPA3-Enterprise networks. 505 optional int32 num_wpa3_enterprise_networks = 133; 506 507 // Total number of scan results for Enhanced open networks 508 optional int32 num_enhanced_open_network_scan_results = 134; 509 510 // Total number of scan results for WPA3-Personal networks 511 optional int32 num_wpa3_personal_network_scan_results = 135; 512 513 // Total number of scan results for WPA3-Enterprise networks 514 optional int32 num_wpa3_enterprise_network_scan_results = 136; 515 516 // WifiConfigStore read/write metrics. 517 optional WifiConfigStoreIO wifi_config_store_io = 137; 518 519 // Total number of saved networks with mac randomization enabled. 520 optional int32 num_saved_networks_with_mac_randomization = 138; 521 522 // Link Probe metrics 523 optional LinkProbeStats link_probe_stats = 139; 524 525 // List of NetworkSelectionExperimentDecisions stats for each experiment 526 repeated NetworkSelectionExperimentDecisions network_selection_experiment_decisions_list = 140; 527 528 // Network Request API surface metrics. 529 optional WifiNetworkRequestApiLog wifi_network_request_api_log = 141; 530 531 // Network Suggestion API surface metrics. 532 optional WifiNetworkSuggestionApiLog wifi_network_suggestion_api_log = 142; 533 534 // WifiLock statistics 535 optional WifiLockStats wifi_lock_stats = 143; 536 537 // Stats on number of times Wi-Fi is turned on/off though the WifiManager#setWifiEnabled API 538 optional WifiToggleStats wifi_toggle_stats = 144; 539 540 // Number of times WifiManager#addOrUpdateNetwork is called. 541 optional int32 num_add_or_update_network_calls = 145; 542 543 // Number of times WifiManager#enableNetwork is called. 544 optional int32 num_enable_network_calls = 146; 545 546 // Passpoint provison metrics 547 optional PasspointProvisionStats passpoint_provision_stats = 147; 548 549 // Histogram of the EAP method type of all installed Passpoint profiles for R1 550 repeated PasspointProfileTypeCount installed_passpoint_profile_type_for_r1 = 123; 551 552 // Histogram of the EAP method type of all installed Passpoint profiles for R2 553 repeated PasspointProfileTypeCount installed_passpoint_profile_type_for_r2 = 148; 554} 555 556// Information that gets logged for every WiFi connection. 557message RouterFingerPrint { 558 559 enum RoamType { 560 561 // Type is unknown. 562 ROAM_TYPE_UNKNOWN = 0; 563 564 // No roaming - usually happens on a single band (2.4 GHz) router. 565 ROAM_TYPE_NONE = 1; 566 567 // Enterprise router. 568 ROAM_TYPE_ENTERPRISE = 2; 569 570 // DBDC => Dual Band Dual Concurrent essentially a router that 571 // supports both 2.4 GHz and 5 GHz bands. 572 ROAM_TYPE_DBDC = 3; 573 } 574 575 enum Auth { 576 577 // Auth is unknown. 578 AUTH_UNKNOWN = 0; 579 580 // No authentication. 581 AUTH_OPEN = 1; 582 583 // If the router uses a personal authentication. 584 AUTH_PERSONAL = 2; 585 586 // If the router is setup for enterprise authentication. 587 AUTH_ENTERPRISE = 3; 588 } 589 590 enum RouterTechnology { 591 592 // Router is unknown. 593 ROUTER_TECH_UNKNOWN = 0; 594 595 // Router Channel A. 596 ROUTER_TECH_A = 1; 597 598 // Router Channel B. 599 ROUTER_TECH_B = 2; 600 601 // Router Channel G. 602 ROUTER_TECH_G = 3; 603 604 // Router Channel N. 605 ROUTER_TECH_N = 4; 606 607 // Router Channel AC. 608 ROUTER_TECH_AC = 5; 609 610 // When the channel is not one of the above. 611 ROUTER_TECH_OTHER = 6; 612 } 613 614 optional RoamType roam_type = 1; 615 616 // Channel on which the connection takes place. 617 optional int32 channel_info = 2; 618 619 // DTIM setting of the router. 620 optional int32 dtim = 3; 621 622 // Authentication scheme of the router. 623 optional Auth authentication = 4; 624 625 // If the router is hidden. 626 optional bool hidden = 5; 627 628 // Channel information. 629 optional RouterTechnology router_technology = 6; 630 631 // whether ipv6 is supported. 632 optional bool supports_ipv6 = 7; 633 634 // If the router is a passpoint / hotspot 2.0 network 635 optional bool passpoint = 8; 636} 637 638message ConnectionEvent { 639 640 // Roam Type. 641 enum RoamType { 642 643 // Type is unknown. 644 ROAM_UNKNOWN = 0; 645 646 // No roaming. 647 ROAM_NONE = 1; 648 649 // DBDC roaming. 650 ROAM_DBDC = 2; 651 652 // Enterprise roaming. 653 ROAM_ENTERPRISE = 3; 654 655 // User selected roaming. 656 ROAM_USER_SELECTED = 4; 657 658 // Unrelated. 659 ROAM_UNRELATED = 5; 660 } 661 662 // Connectivity Level Failure. 663 enum ConnectivityLevelFailure { 664 665 // Failure is unknown. 666 HLF_UNKNOWN = 0; 667 668 // No failure. 669 HLF_NONE = 1; 670 671 // DHCP failure. 672 HLF_DHCP = 2; 673 674 // No internet connection. 675 HLF_NO_INTERNET = 3; 676 677 // No internet connection. 678 HLF_UNWANTED = 4; 679 } 680 681 // Level 2 failure reason. 682 enum Level2FailureReason { 683 684 // Unknown default 685 FAILURE_REASON_UNKNOWN = 0; 686 687 // The reason code if there is no error during authentication. It could 688 // also imply that there no authentication in progress. 689 AUTH_FAILURE_NONE = 1; 690 691 // The reason code if there was a timeout authenticating. 692 AUTH_FAILURE_TIMEOUT = 2; 693 694 // The reason code if there was a wrong password while authenticating. 695 AUTH_FAILURE_WRONG_PSWD = 3; 696 697 // The reason code if there was EAP failure while authenticating. 698 AUTH_FAILURE_EAP_FAILURE = 4; 699 } 700 701 // Entity that recommended connecting to this network. 702 enum ConnectionNominator { 703 // Unknown nominator 704 NOMINATOR_UNKNOWN = 0; 705 706 // User selected network manually 707 NOMINATOR_MANUAL = 1; 708 709 // Saved network 710 NOMINATOR_SAVED = 2; 711 712 // Suggestion API 713 NOMINATOR_SUGGESTION = 3; 714 715 // Passpoint 716 NOMINATOR_PASSPOINT = 4; 717 718 // Carrier suggestion 719 NOMINATOR_CARRIER = 5; 720 721 // External scorer 722 NOMINATOR_EXTERNAL_SCORED = 6; 723 724 // Network Specifier 725 NOMINATOR_SPECIFIER = 7; 726 727 // User connected choice override 728 NOMINATOR_SAVED_USER_CONNECT_CHOICE = 8; 729 730 // Open Network Available Pop-up 731 NOMINATOR_OPEN_NETWORK_AVAILABLE = 9; 732 } 733 734 // Start time of the connection. 735 optional int64 start_time_millis = 1;// [(datapol.semantic_type) = ST_TIMESTAMP]; 736 737 // Duration to connect. 738 optional int32 duration_taken_to_connect_millis = 2; 739 740 // Router information. 741 optional RouterFingerPrint router_fingerprint = 3; 742 743 // RSSI at the start of the connection. 744 optional int32 signal_strength = 4; 745 746 // Roam Type. 747 optional RoamType roam_type = 5; 748 749 // Result of the connection. 750 optional int32 connection_result = 6; 751 752 // Reasons for level 2 failure (needs to be coordinated with wpa-supplicant). 753 optional int32 level_2_failure_code = 7; 754 755 // Failures that happen at the connectivity layer. 756 optional ConnectivityLevelFailure connectivity_level_failure_code = 8; 757 758 // Has bug report been taken. 759 optional bool automatic_bug_report_taken = 9; 760 761 // Connection is using locally generated random MAC address. 762 optional bool use_randomized_mac = 10 [default = false]; 763 764 // Who chose to connect. 765 optional ConnectionNominator connection_nominator = 11; 766 767 // The currently running network selector when this connection event occurred. 768 optional int32 network_selector_experiment_id = 12; 769 770 // Breakdown of level_2_failure_code with more detailed reason. 771 optional Level2FailureReason level_2_failure_reason = 13 772 [default = FAILURE_REASON_UNKNOWN]; 773} 774 775// Number of occurrences of a specific RSSI poll rssi value 776message RssiPollCount { 777 // RSSI 778 optional int32 rssi = 1; 779 780 // Number of RSSI polls with 'rssi' 781 optional int32 count = 2; 782 783 // Beacon frequency of the channel in MHz 784 optional int32 frequency = 3; 785} 786 787// Number of occurrences of a specific alert reason value 788message AlertReasonCount { 789 // Alert reason 790 optional int32 reason = 1; 791 792 // Number of alerts with |reason|. 793 optional int32 count = 2; 794} 795 796// Counts the number of instances of a specific Wifi Score calculated by WifiScoreReport 797message WifiScoreCount { 798 // Wifi Score 799 optional int32 score = 1; 800 801 // Number of Wifi score reports with this score 802 optional int32 count = 2; 803} 804 805// Counts the number of instances of a specific Wifi Usability Score 806message WifiUsabilityScoreCount { 807 // Wifi Usability Score 808 optional int32 score = 1; 809 810 // Number of Wifi score reports with this score 811 optional int32 count = 2; 812} 813 814// Number of occurrences of a specific link speed (Mbps) 815// and sum of rssi (dBm) and rssi^2 (dBm^2) 816message LinkSpeedCount { 817 // Link speed (Mbps) 818 optional int32 link_speed_mbps = 1; 819 820 // Number of RSSI polls with link_speed 821 optional int32 count = 2; 822 823 // Sum of absolute values of rssi values (dBm) 824 optional int32 rssi_sum_dbm = 3; 825 826 // Sum of squares of rssi values (dBm^2) 827 optional int64 rssi_sum_of_squares_dbm_sq = 4; 828} 829 830// Number of occurrences of Soft AP session durations 831message SoftApDurationBucket { 832 // Bucket covers duration : [duration_sec, duration_sec + bucket_size_sec) 833 // The (inclusive) lower bound of Soft AP session duration represented by this bucket 834 optional int32 duration_sec = 1; 835 836 // The size of this bucket 837 optional int32 bucket_size_sec = 2; 838 839 // Number of soft AP session durations that fit into this bucket 840 optional int32 count = 3; 841} 842 843// Number of occurrences of a soft AP session return code 844message SoftApReturnCodeCount { 845 846 enum SoftApStartResult { 847 848 // SoftApManager return code unknown 849 SOFT_AP_RETURN_CODE_UNKNOWN = 0; 850 851 // SoftAp started successfully 852 SOFT_AP_STARTED_SUCCESSFULLY = 1; 853 854 // Catch all for failures with no specific failure reason 855 SOFT_AP_FAILED_GENERAL_ERROR = 2; 856 857 // SoftAp failed to start due to NO_CHANNEL error 858 SOFT_AP_FAILED_NO_CHANNEL = 3; 859 } 860 861 // Historical, no longer used for writing as of 01/2017. 862 optional int32 return_code = 1 [deprecated = true]; 863 864 // Occurrences of this soft AP return code 865 optional int32 count = 2; 866 867 // Result of attempt to start SoftAp 868 optional SoftApStartResult start_result = 3; 869} 870 871message StaEvent { 872 message ConfigInfo { 873 // The set of key management protocols supported by this configuration. 874 optional uint32 allowed_key_management = 1 [default = 0]; 875 876 // The set of security protocols supported by this configuration. 877 optional uint32 allowed_protocols = 2 [default = 0]; 878 879 // The set of authentication protocols supported by this configuration. 880 optional uint32 allowed_auth_algorithms = 3 [default = 0]; 881 882 // The set of pairwise ciphers for WPA supported by this configuration. 883 optional uint32 allowed_pairwise_ciphers = 4 [default = 0]; 884 885 // The set of group ciphers supported by this configuration. 886 optional uint32 allowed_group_ciphers = 5; 887 888 // Is this a 'hidden network' 889 optional bool hidden_ssid = 6; 890 891 // Is this a Hotspot 2.0 / passpoint network 892 optional bool is_passpoint = 7; 893 894 // Is this an 'ephemeral' network (Not in saved network list, recommended externally) 895 optional bool is_ephemeral = 8; 896 897 // Has a successful connection ever been established using this WifiConfiguration 898 optional bool has_ever_connected = 9; 899 900 // RSSI of the scan result candidate associated with this WifiConfiguration 901 optional int32 scan_rssi = 10 [default = -127]; 902 903 // Frequency of the scan result candidate associated with this WifiConfiguration 904 optional int32 scan_freq = 11 [default = -1]; 905 } 906 907 enum EventType { 908 // Default/Invalid event 909 TYPE_UNKNOWN = 0; 910 911 // Supplicant Association Rejection event. Code contains the 802.11 912 TYPE_ASSOCIATION_REJECTION_EVENT = 1; 913 914 // Supplicant L2 event, 915 TYPE_AUTHENTICATION_FAILURE_EVENT = 2; 916 917 // Supplicant L2 event 918 TYPE_NETWORK_CONNECTION_EVENT = 3; 919 920 // Supplicant L2 event 921 TYPE_NETWORK_DISCONNECTION_EVENT = 4; 922 923 // Supplicant L2 event 924 TYPE_SUPPLICANT_STATE_CHANGE_EVENT = 5; 925 926 // Supplicant L2 event 927 TYPE_CMD_ASSOCIATED_BSSID = 6; 928 929 // IP Manager successfully completed IP Provisioning 930 TYPE_CMD_IP_CONFIGURATION_SUCCESSFUL = 7; 931 932 // IP Manager failed to complete IP Provisioning 933 TYPE_CMD_IP_CONFIGURATION_LOST = 8; 934 935 // IP Manager lost reachability to network neighbors 936 TYPE_CMD_IP_REACHABILITY_LOST = 9; 937 938 // Indicator that Supplicant is targeting a BSSID for roam/connection 939 TYPE_CMD_TARGET_BSSID = 10; 940 941 // Wifi framework is initiating a connection attempt 942 TYPE_CMD_START_CONNECT = 11; 943 944 // Wifi framework is initiating a roaming connection attempt 945 TYPE_CMD_START_ROAM = 12; 946 947 // SystemAPI connect() command, Settings App 948 TYPE_CONNECT_NETWORK = 13; 949 950 // Network Agent has validated the internet connection (Captive Portal Check success, or user 951 // validation) 952 TYPE_NETWORK_AGENT_VALID_NETWORK = 14; 953 954 // Framework initiated disconnect. Sometimes generated to give an extra reason for a disconnect 955 // Should typically be followed by a NETWORK_DISCONNECTION_EVENT with a local_gen = true 956 TYPE_FRAMEWORK_DISCONNECT = 15; 957 958 // The NetworkAgent score for wifi has changed in a way that may impact 959 // connectivity 960 TYPE_SCORE_BREACH = 16; 961 962 // Framework changed Sta interface MAC address 963 TYPE_MAC_CHANGE = 17; 964 965 // Wifi is turned on 966 TYPE_WIFI_ENABLED = 18; 967 968 // Wifi is turned off 969 TYPE_WIFI_DISABLED = 19; 970 971 // The NetworkAgent Wifi usability score has changed in a way that may 972 // impact connectivity 973 TYPE_WIFI_USABILITY_SCORE_BREACH = 20; 974 975 // Link probe was performed 976 TYPE_LINK_PROBE = 21; 977 } 978 979 enum FrameworkDisconnectReason { 980 // default/none/unknown value 981 DISCONNECT_UNKNOWN = 0; 982 983 // API DISCONNECT 984 DISCONNECT_API = 1; 985 986 // Some framework internal reason (generic) 987 DISCONNECT_GENERIC = 2; 988 989 // Network Agent network validation failed, user signaled network unwanted 990 DISCONNECT_UNWANTED = 3; 991 992 // Roaming timed out 993 DISCONNECT_ROAM_WATCHDOG_TIMER = 4; 994 995 // P2P service requested wifi disconnect 996 DISCONNECT_P2P_DISCONNECT_WIFI_REQUEST = 5; 997 998 // SIM was removed while using a SIM config 999 DISCONNECT_RESET_SIM_NETWORKS = 6; 1000 } 1001 1002 // Authentication Failure reasons as reported through the API. 1003 enum AuthFailureReason { 1004 // Unknown default 1005 AUTH_FAILURE_UNKNOWN = 0; 1006 1007 // The reason code if there is no error during authentication. It could also imply that there no 1008 // authentication in progress, 1009 AUTH_FAILURE_NONE = 1; 1010 1011 // The reason code if there was a timeout authenticating. 1012 AUTH_FAILURE_TIMEOUT = 2; 1013 1014 // The reason code if there was a wrong password while authenticating. 1015 AUTH_FAILURE_WRONG_PSWD = 3; 1016 1017 // The reason code if there was EAP failure while authenticating. 1018 AUTH_FAILURE_EAP_FAILURE = 4; 1019 } 1020 1021 // What event was this 1022 optional EventType type = 1; 1023 1024 // 80211 death reason code, relevant to NETWORK_DISCONNECTION_EVENTs 1025 optional int32 reason = 2 [default = -1]; 1026 1027 // 80211 Association Status code, relevant to ASSOCIATION_REJECTION_EVENTs 1028 optional int32 status = 3 [default = -1]; 1029 1030 // Designates whether a NETWORK_DISCONNECT_EVENT was by the STA or AP 1031 optional bool local_gen = 4 [default = false]; 1032 1033 // Network information from the WifiConfiguration of a framework initiated connection attempt 1034 optional ConfigInfo config_info = 5; 1035 1036 // RSSI from the last rssi poll (Only valid for active connections) 1037 optional int32 last_rssi = 6 [default = -127]; 1038 1039 // Link speed from the last rssi poll (Only valid for active connections) 1040 optional int32 last_link_speed = 7 [default = -1]; 1041 1042 // Frequency from the last rssi poll (Only valid for active connections) 1043 optional int32 last_freq = 8 [default = -1]; 1044 1045 // Enum used to define bit positions in the supplicant_state_change_bitmask 1046 // See {@code frameworks/base/wifi/java/android/net/wifi/SupplicantState.java} for documentation 1047 enum SupplicantState { 1048 STATE_DISCONNECTED = 0; 1049 1050 STATE_INTERFACE_DISABLED = 1; 1051 1052 STATE_INACTIVE = 2; 1053 1054 STATE_SCANNING = 3; 1055 1056 STATE_AUTHENTICATING = 4; 1057 1058 STATE_ASSOCIATING = 5; 1059 1060 STATE_ASSOCIATED = 6; 1061 1062 STATE_FOUR_WAY_HANDSHAKE = 7; 1063 1064 STATE_GROUP_HANDSHAKE = 8; 1065 1066 STATE_COMPLETED = 9; 1067 1068 STATE_DORMANT = 10; 1069 1070 STATE_UNINITIALIZED = 11; 1071 1072 STATE_INVALID = 12; 1073 } 1074 1075 // Bit mask of all supplicant state changes that occurred since the last event 1076 optional uint32 supplicant_state_changes_bitmask = 9 [default = 0]; 1077 1078 // The number of milliseconds that have elapsed since the device booted 1079 optional int64 start_time_millis = 10 [default = 0]; 1080 1081 optional FrameworkDisconnectReason framework_disconnect_reason = 11 [default = DISCONNECT_UNKNOWN]; 1082 1083 // Flag which indicates if an association rejection event occurred due to a timeout 1084 optional bool association_timed_out = 12 [default = false]; 1085 1086 // Authentication failure reason, as reported by WifiManager (calculated from state & deauth code) 1087 optional AuthFailureReason auth_failure_reason = 13 [default = AUTH_FAILURE_UNKNOWN]; 1088 1089 // NetworkAgent score of connected wifi 1090 optional int32 last_score = 14 [default = -1]; 1091 1092 // NetworkAgent Wifi usability score of connected wifi 1093 optional int32 last_wifi_usability_score = 15 [default = -1]; 1094 1095 // Prediction horizon (in second) of Wifi usability score provided by external 1096 // system app 1097 optional int32 last_prediction_horizon_sec = 16 [default = -1]; 1098 1099 // Only valid if event type == TYPE_LINK_PROBE. 1100 // true if link probe succeeded, false otherwise. 1101 optional bool link_probe_was_success = 17; 1102 1103 // Only valid if event type == TYPE_LINK_PROBE and link_probe_was_success == true. 1104 // Elapsed time, in milliseconds, of a successful link probe. 1105 optional int32 link_probe_success_elapsed_time_ms = 18; 1106 1107 // Only valid if event type == TYPE_LINK_PROBE and link_probe_was_success == false. 1108 // Failure reason for an unsuccessful link probe. 1109 optional LinkProbeStats.LinkProbeFailureReason link_probe_failure_reason = 19; 1110} 1111 1112// Wi-Fi Aware metrics 1113message WifiAwareLog { 1114 // total number of unique apps that used Aware (measured on attach) 1115 optional int32 num_apps = 1; 1116 1117 // total number of unique apps that used an identity callback when attaching 1118 optional int32 num_apps_using_identity_callback = 2; 1119 1120 // maximum number of attaches for an app 1121 optional int32 max_concurrent_attach_sessions_in_app = 3; 1122 1123 // histogram of attach request results 1124 repeated NanStatusHistogramBucket histogram_attach_session_status = 4; 1125 1126 // maximum number of concurrent publish sessions in a single app 1127 optional int32 max_concurrent_publish_in_app = 5; 1128 1129 // maximum number of concurrent subscribe sessions in a single app 1130 optional int32 max_concurrent_subscribe_in_app = 6; 1131 1132 // maximum number of concurrent discovery (publish+subscribe) sessions in a single app 1133 optional int32 max_concurrent_discovery_sessions_in_app = 7; 1134 1135 // maximum number of concurrent publish sessions in the system 1136 optional int32 max_concurrent_publish_in_system = 8; 1137 1138 // maximum number of concurrent subscribe sessions in the system 1139 optional int32 max_concurrent_subscribe_in_system = 9; 1140 1141 // maximum number of concurrent discovery (publish+subscribe) sessions in the system 1142 optional int32 max_concurrent_discovery_sessions_in_system = 10; 1143 1144 // histogram of publish request results 1145 repeated NanStatusHistogramBucket histogram_publish_status = 11; 1146 1147 // histogram of subscribe request results 1148 repeated NanStatusHistogramBucket histogram_subscribe_status = 12; 1149 1150 // number of unique apps which experienced a discovery session creation failure due to lack of 1151 // resources 1152 optional int32 num_apps_with_discovery_session_failure_out_of_resources = 13; 1153 1154 // histogram of create ndp request results 1155 repeated NanStatusHistogramBucket histogram_request_ndp_status = 14; 1156 1157 // histogram of create ndp out-of-band (OOB) request results 1158 repeated NanStatusHistogramBucket histogram_request_ndp_oob_status = 15; 1159 1160 // maximum number of concurrent active data-interfaces (NDI) in a single app 1161 optional int32 max_concurrent_ndi_in_app = 19; 1162 1163 // maximum number of concurrent active data-interfaces (NDI) in the system 1164 optional int32 max_concurrent_ndi_in_system = 20; 1165 1166 // maximum number of concurrent data-paths (NDP) in a single app 1167 optional int32 max_concurrent_ndp_in_app = 21; 1168 1169 // maximum number of concurrent data-paths (NDP) in the system 1170 optional int32 max_concurrent_ndp_in_system = 22; 1171 1172 // maximum number of concurrent secure data-paths (NDP) in a single app 1173 optional int32 max_concurrent_secure_ndp_in_app = 23; 1174 1175 // maximum number of concurrent secure data-paths (NDP) in the system 1176 optional int32 max_concurrent_secure_ndp_in_system = 24; 1177 1178 // maximum number of concurrent data-paths (NDP) per data-interface (NDI) 1179 optional int32 max_concurrent_ndp_per_ndi = 25; 1180 1181 // histogram of durations of Aware being available 1182 repeated HistogramBucket histogram_aware_available_duration_ms = 26; 1183 1184 // histogram of durations of Aware being enabled 1185 repeated HistogramBucket histogram_aware_enabled_duration_ms = 27; 1186 1187 // histogram of duration (in ms) of attach sessions 1188 repeated HistogramBucket histogram_attach_duration_ms = 28; 1189 1190 // histogram of duration (in ms) of publish sessions 1191 repeated HistogramBucket histogram_publish_session_duration_ms = 29; 1192 1193 // histogram of duration (in ms) of subscribe sessions 1194 repeated HistogramBucket histogram_subscribe_session_duration_ms = 30; 1195 1196 // histogram of duration (in ms) of data-paths (NDP) 1197 repeated HistogramBucket histogram_ndp_session_duration_ms = 31; 1198 1199 // histogram of usage (in MB) of data-paths (NDP) 1200 repeated HistogramBucket histogram_ndp_session_data_usage_mb = 32; 1201 1202 // histogram of usage (in MB) of data-path creation time (in ms) measured as request -> confirm 1203 repeated HistogramBucket histogram_ndp_creation_time_ms = 33; 1204 1205 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: minimum 1206 optional int64 ndp_creation_time_ms_min = 34; 1207 1208 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: maximum 1209 optional int64 ndp_creation_time_ms_max = 35; 1210 1211 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: sum 1212 optional int64 ndp_creation_time_ms_sum = 36; 1213 1214 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: sum of sq 1215 optional int64 ndp_creation_time_ms_sum_of_sq = 37; 1216 1217 // statistics for data-path (NDP) creation time (in ms) measured as request -> confirm: number of 1218 // samples 1219 optional int64 ndp_creation_time_ms_num_samples = 38; 1220 1221 // total time within the logging window that aware was available 1222 optional int64 available_time_ms = 39; 1223 1224 // total time within the logging window that aware was enabled 1225 optional int64 enabled_time_ms = 40; 1226 1227 // maximum number of concurrent publish sessions enabling ranging in a single app 1228 optional int32 max_concurrent_publish_with_ranging_in_app = 41; 1229 1230 // maximum number of concurrent subscribe sessions specifying a geofence in a single app 1231 optional int32 max_concurrent_subscribe_with_ranging_in_app = 42; 1232 1233 // maximum number of concurrent publish sessions enabling ranging in the system 1234 optional int32 max_concurrent_publish_with_ranging_in_system = 43; 1235 1236 // maximum number of concurrent subscribe sessions specifying a geofence in the system 1237 optional int32 max_concurrent_subscribe_with_ranging_in_system = 44; 1238 1239 // histogram of subscribe session geofence minimum (only when specified) 1240 repeated HistogramBucket histogram_subscribe_geofence_min = 45; 1241 1242 // histogram of subscribe session geofence maximum (only when specified) 1243 repeated HistogramBucket histogram_subscribe_geofence_max = 46; 1244 1245 // total number of subscribe sessions which enabled ranging 1246 optional int32 num_subscribes_with_ranging = 47; 1247 1248 // total number of matches (service discovery indication) with ranging provided 1249 optional int32 num_matches_with_ranging = 48; 1250 1251 // total number of matches (service discovery indication) for service discovery with ranging 1252 // enabled which did not trigger ranging 1253 optional int32 num_matches_without_ranging_for_ranging_enabled_subscribes = 49; 1254 1255 // Histogram bucket for Wi-Fi Aware logs. Range is [start, end) 1256 message HistogramBucket { 1257 // lower range of the bucket (inclusive) 1258 optional int64 start = 1; 1259 1260 // upper range of the bucket (exclusive) 1261 optional int64 end = 2; 1262 1263 // number of samples in the bucket 1264 optional int32 count = 3; 1265 } 1266 1267 // Status of various NAN operations 1268 enum NanStatusTypeEnum { 1269 // constant to be used by proto 1270 UNKNOWN = 0; 1271 1272 // NAN operation succeeded 1273 SUCCESS = 1; 1274 1275 // NAN Discovery Engine/Host driver failures 1276 INTERNAL_FAILURE = 2; 1277 1278 // NAN OTA failures 1279 PROTOCOL_FAILURE = 3; 1280 1281 // The publish/subscribe discovery session id is invalid 1282 INVALID_SESSION_ID = 4; 1283 1284 // Out of resources to fufill request 1285 NO_RESOURCES_AVAILABLE = 5; 1286 1287 // Invalid arguments passed 1288 INVALID_ARGS = 6; 1289 1290 // Invalid peer id 1291 INVALID_PEER_ID = 7; 1292 1293 // Invalid NAN data-path (ndp) id 1294 INVALID_NDP_ID = 8; 1295 1296 // Attempting to enable NAN when not available, e.g. wifi is disabled 1297 NAN_NOT_ALLOWED = 9; 1298 1299 // Over the air ACK not received 1300 NO_OTA_ACK = 10; 1301 1302 // Attempting to enable NAN when already enabled 1303 ALREADY_ENABLED = 11; 1304 1305 // Can't queue tx followup message foor transmission 1306 FOLLOWUP_TX_QUEUE_FULL = 12; 1307 1308 // Unsupported concurrency of NAN and another feature - NAN disabled 1309 UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 13; 1310 1311 // Unknown NanStatusType 1312 UNKNOWN_HAL_STATUS = 14; 1313 } 1314 1315 // Histogram bucket for Wi-Fi Aware (NAN) status. 1316 message NanStatusHistogramBucket { 1317 // status type defining the bucket 1318 optional NanStatusTypeEnum nan_status_type = 1; 1319 1320 // number of samples in the bucket 1321 optional int32 count = 2; 1322 } 1323} 1324 1325// Data point used to build 'Number of Connectable Network' histograms 1326message NumConnectableNetworksBucket { 1327 // Number of connectable networks seen in a scan result 1328 optional int32 num_connectable_networks = 1 [default = 0]; 1329 1330 // Number of scan results with num_connectable_networks 1331 optional int32 count = 2 [default = 0]; 1332} 1333 1334// Pno scan metrics 1335// Here "Pno Scan" refers to the session of offloaded scans, these metrics count the result of a 1336// single session, and not the individual scans within that session. 1337message PnoScanMetrics { 1338 // Total number of attempts to offload pno scans 1339 optional int32 num_pno_scan_attempts = 1; 1340 1341 // Total number of pno scans failed 1342 optional int32 num_pno_scan_failed = 2; 1343 1344 // Number of pno scans started successfully over offload 1345 optional int32 num_pno_scan_started_over_offload = 3; 1346 1347 // Number of pno scans failed over offload 1348 optional int32 num_pno_scan_failed_over_offload = 4; 1349 1350 // Total number of pno scans that found any network 1351 optional int32 num_pno_found_network_events = 5; 1352} 1353 1354// Number of occurrences for a particular "Connect to Network" Notification or 1355// notification Action. 1356message ConnectToNetworkNotificationAndActionCount { 1357 1358 // "Connect to Network" notifications 1359 enum Notification { 1360 1361 // Default 1362 NOTIFICATION_UNKNOWN = 0; 1363 1364 // Initial notification with a recommended network. 1365 NOTIFICATION_RECOMMEND_NETWORK = 1; 1366 1367 // Notification when connecting to the recommended network. 1368 NOTIFICATION_CONNECTING_TO_NETWORK = 2; 1369 1370 // Notification when successfully connected to the network. 1371 NOTIFICATION_CONNECTED_TO_NETWORK = 3; 1372 1373 // Notification when failed to connect to network. 1374 NOTIFICATION_FAILED_TO_CONNECT = 4; 1375 } 1376 1377 // "Connect to Network" notification actions 1378 enum Action { 1379 1380 // Default 1381 ACTION_UNKNOWN = 0; 1382 1383 // User dismissed the "Connect to Network" notification. 1384 ACTION_USER_DISMISSED_NOTIFICATION = 1; 1385 1386 // User tapped action button to connect to recommended network. 1387 ACTION_CONNECT_TO_NETWORK = 2; 1388 1389 // User tapped action button to open Wi-Fi Settings. 1390 ACTION_PICK_WIFI_NETWORK = 3; 1391 1392 // User tapped "Failed to connect" notification to open Wi-Fi Settings. 1393 ACTION_PICK_WIFI_NETWORK_AFTER_CONNECT_FAILURE = 4; 1394 } 1395 1396 // Recommenders of the "Connect to Network" notification 1397 enum Recommender { 1398 1399 // Default. 1400 RECOMMENDER_UNKNOWN = 0; 1401 1402 // Open Network Available recommender. 1403 RECOMMENDER_OPEN = 1; 1404 } 1405 1406 // Notification Type. 1407 optional Notification notification = 1; 1408 1409 // Action Type. 1410 optional Action action = 2; 1411 1412 // Recommender Type. 1413 optional Recommender recommender = 3; 1414 1415 // Occurrences of this action. 1416 optional int32 count = 4; 1417} 1418 1419// SoftAP event tracking sessions and client counts 1420message SoftApConnectedClientsEvent { 1421 1422 // Soft AP event Types 1423 enum SoftApEventType { 1424 1425 // Soft AP is Up and ready for use 1426 SOFT_AP_UP = 0; 1427 1428 // Soft AP is Down 1429 SOFT_AP_DOWN = 1; 1430 1431 // Number of connected soft AP clients has changed 1432 NUM_CLIENTS_CHANGED = 2; 1433 } 1434 1435 // Soft AP channel bandwidth types 1436 enum ChannelBandwidth { 1437 1438 BANDWIDTH_INVALID = 0; 1439 1440 BANDWIDTH_20_NOHT = 1; 1441 1442 BANDWIDTH_20 = 2; 1443 1444 BANDWIDTH_40 = 3; 1445 1446 BANDWIDTH_80 = 4; 1447 1448 BANDWIDTH_80P80 = 5; 1449 1450 BANDWIDTH_160 = 6; 1451 } 1452 1453 // Type of event being recorded 1454 optional SoftApEventType event_type = 1; 1455 1456 // Time passed since last boot in milliseconds 1457 optional int64 time_stamp_millis = 2; 1458 1459 // Number of connected clients if event_type is NUM_CLIENTS_CHANGED, otherwise zero. 1460 optional int32 num_connected_clients = 3; 1461 1462 // Channel frequency used for Soft AP 1463 optional int32 channel_frequency = 4; 1464 1465 // Channel bandwidth used for Soft AP 1466 optional ChannelBandwidth channel_bandwidth = 5; 1467} 1468 1469// Wps connection metrics 1470// Keeps track of Wi-Fi Protected Setup usage 1471message WpsMetrics { 1472 // Total number of wps connection attempts 1473 optional int32 num_wps_attempts = 1; 1474 1475 // Total number of wps connection successes 1476 optional int32 num_wps_success = 2; 1477 1478 // Total number of wps failures on start 1479 optional int32 num_wps_start_failure = 3; 1480 1481 // Total number of wps overlap failure 1482 optional int32 num_wps_overlap_failure = 4; 1483 1484 // Total number of wps timeout failure 1485 optional int32 num_wps_timeout_failure = 5; 1486 1487 // Total number of other wps failure during connection 1488 optional int32 num_wps_other_connection_failure = 6; 1489 1490 // Total number of supplicant failure after wps 1491 optional int32 num_wps_supplicant_failure = 7; 1492 1493 // Total number of wps cancellation 1494 optional int32 num_wps_cancellation = 8; 1495} 1496 1497// Power stats for Wifi 1498message WifiPowerStats { 1499 1500 // Duration of log (ms) 1501 optional int64 logging_duration_ms = 1; 1502 1503 // Energy consumed by wifi (mAh) 1504 optional double energy_consumed_mah = 2; 1505 1506 // Amount of time wifi is in idle (ms) 1507 optional int64 idle_time_ms = 3; 1508 1509 // Amount of time wifi is in rx (ms) 1510 optional int64 rx_time_ms = 4; 1511 1512 // Amount of time wifi is in tx (ms) 1513 optional int64 tx_time_ms = 5; 1514 1515 // Amount of time kernel is active because of wifi data (ms) 1516 optional int64 wifi_kernel_active_time_ms = 6; 1517 1518 // Number of packets sent (tx) 1519 optional int64 num_packets_tx = 7; 1520 1521 // Number of bytes sent (tx) 1522 optional int64 num_bytes_tx = 8; 1523 1524 // Number of packets received (rx) 1525 optional int64 num_packets_rx = 9; 1526 1527 // Number of bytes sent (rx) 1528 optional int64 num_bytes_rx = 10; 1529 1530 // Amount of time wifi is in sleep (ms) 1531 optional int64 sleep_time_ms = 11; 1532 1533 // Amount of time wifi is scanning (ms) 1534 optional int64 scan_time_ms = 12; 1535 1536 // Actual monitored rail energy consumed by wifi (mAh) 1537 optional double monitored_rail_energy_consumed_mah = 13; 1538} 1539 1540// Metrics for Wifi Wake 1541message WifiWakeStats { 1542 // An individual session for Wifi Wake 1543 message Session { 1544 // A Wifi Wake lifecycle event 1545 message Event { 1546 // Elapsed time in milliseconds since start of session. 1547 optional int64 elapsed_time_millis = 1; 1548 1549 // Number of scans that have occurred since start of session. 1550 optional int32 elapsed_scans = 2; 1551 } 1552 1553 // Start time of session in milliseconds. 1554 optional int64 start_time_millis = 1; 1555 1556 // The number of networks the lock was provided with at start. 1557 optional int32 locked_networks_at_start = 2; 1558 1559 // The number of networks in the lock at the time of the initialize event. Only valid if 1560 // initialize_event is recorded. 1561 optional int32 locked_networks_at_initialize = 6; 1562 1563 // Event for fully initializing the WakeupLock (i.e. WakeupLock is "locked"). 1564 optional Event initialize_event = 7; 1565 1566 // Event for unlocking the WakeupLock. Does not occur if lock was initialized with 0 networks. 1567 optional Event unlock_event = 3; 1568 1569 // Event for triggering wakeup. 1570 optional Event wakeup_event = 4; 1571 1572 // Event for WifiWake reset event. This event marks the end of a session. 1573 optional Event reset_event = 5; 1574 } 1575 1576 // Total number of sessions for Wifi Wake. 1577 optional int32 num_sessions = 1; 1578 1579 // Session information for every Wifi Wake session (up to a maximum of 10). 1580 repeated Session sessions = 2; 1581 1582 // Number of ignored calls to start (due to WakeupController already being active). 1583 optional int32 num_ignored_starts = 3; 1584 1585 // Number of Wifi Wake sessions that have recorded wakeup events. 1586 optional int32 num_wakeups = 4; 1587} 1588 1589// Metrics for Wi-Fi RTT 1590message WifiRttLog { 1591 // Number of RTT request API calls 1592 optional int32 num_requests = 1; 1593 1594 // Histogram of RTT operation overall status 1595 repeated RttOverallStatusHistogramBucket histogram_overall_status = 2; 1596 1597 // RTT to Access Points metrics 1598 optional RttToPeerLog rtt_to_ap = 3; 1599 1600 // RTT to Wi-Fi Aware peers metrics 1601 optional RttToPeerLog rtt_to_aware = 4; 1602 1603 // Metrics for a RTT to Peer (peer = AP or Wi-Fi Aware) 1604 message RttToPeerLog { 1605 // Total number of API calls 1606 optional int32 num_requests = 1; 1607 1608 // Total number of individual requests 1609 optional int32 num_individual_requests = 2; 1610 1611 // Total number of apps which requested RTT 1612 optional int32 num_apps = 3; 1613 1614 // Histogram of total number of RTT requests by an app (WifiRttManager#startRanging) 1615 repeated HistogramBucket histogram_num_requests_per_app = 4; 1616 1617 // Histogram of number of peers in a single RTT request (RangingRequest entries) 1618 repeated HistogramBucket histogram_num_peers_per_request = 5; 1619 1620 // Histogram of status of individual RTT operations (RangingResult entries) 1621 repeated RttIndividualStatusHistogramBucket histogram_individual_status = 6; 1622 1623 // Histogram of measured distances (RangingResult entries) 1624 repeated HistogramBucket histogram_distance = 7; 1625 1626 // Histogram of interval of RTT requests by an app (WifiRttManager#startRanging) 1627 repeated HistogramBucket histogram_request_interval_ms = 8; 1628 } 1629 1630 // Histogram bucket for Wi-Fi RTT logs. Range is [start, end) 1631 message HistogramBucket { 1632 // lower range of the bucket (inclusive) 1633 optional int64 start = 1; 1634 1635 // upper range of the bucket (exclusive) 1636 optional int64 end = 2; 1637 1638 // number of samples in the bucket 1639 optional int32 count = 3; 1640 } 1641 1642 // Status codes for overall RTT operation 1643 enum RttOverallStatusTypeEnum { 1644 // constant to be used by proto 1645 OVERALL_UNKNOWN = 0; 1646 1647 // RTT operation succeeded (individual results may still fail) 1648 OVERALL_SUCCESS = 1; 1649 1650 // RTT operation failed (unspecified reason) 1651 OVERALL_FAIL = 2; 1652 1653 // RTT operation failed since RTT was not available (e.g. Airplane mode) 1654 OVERALL_RTT_NOT_AVAILABLE = 3; 1655 1656 // RTT operation timed-out: didn't receive response from HAL in expected time 1657 OVERALL_TIMEOUT = 4; 1658 1659 // RTT operation aborted since the app is spamming the service 1660 OVERALL_THROTTLE = 5; 1661 1662 // RTT request to HAL received immediate failure 1663 OVERALL_HAL_FAILURE = 6; 1664 1665 // RTT to Wi-Fi Aware peer using PeerHandle failed to get a MAC address translation 1666 OVERALL_AWARE_TRANSLATION_FAILURE = 7; 1667 1668 // RTT operation failed due to missing Location permission (post execution) 1669 OVERALL_LOCATION_PERMISSION_MISSING = 8; 1670 } 1671 1672 // Status codes for individual RTT operation 1673 enum RttIndividualStatusTypeEnum { 1674 // constant to be used by proto 1675 UNKNOWN = 0; 1676 1677 // RTT operation succeeded 1678 SUCCESS = 1; 1679 1680 // RTT failure: generic reason (no further information) 1681 FAILURE = 2; 1682 1683 // Target STA does not respond to request 1684 FAIL_NO_RSP = 3; 1685 1686 // Request rejected. Applies to 2-sided RTT only 1687 FAIL_REJECTED = 4; 1688 1689 // Operation not scheduled 1690 FAIL_NOT_SCHEDULED_YET = 5; 1691 1692 // Timing measurement times out 1693 FAIL_TM_TIMEOUT = 6; 1694 1695 // Target on different channel, cannot range 1696 FAIL_AP_ON_DIFF_CHANNEL = 7; 1697 1698 // Ranging not supported 1699 FAIL_NO_CAPABILITY = 8; 1700 1701 // Request aborted for unknown reason 1702 ABORTED = 9; 1703 1704 // Invalid T1-T4 timestamp 1705 FAIL_INVALID_TS = 10; 1706 1707 // 11mc protocol failed 1708 FAIL_PROTOCOL = 11; 1709 1710 // Request could not be scheduled 1711 FAIL_SCHEDULE = 12; 1712 1713 // Responder cannot collaborate at time of request 1714 FAIL_BUSY_TRY_LATER = 13; 1715 1716 // Bad request args 1717 INVALID_REQ = 14; 1718 1719 // WiFi not enabled 1720 NO_WIFI = 15; 1721 1722 // Responder overrides param info, cannot range with new params 1723 FAIL_FTM_PARAM_OVERRIDE = 16; 1724 1725 // HAL did not provide a result to a framework request 1726 MISSING_RESULT = 17; 1727 } 1728 1729 // Histogram bucket for Wi-Fi RTT overall operation status 1730 message RttOverallStatusHistogramBucket { 1731 // status type defining the bucket 1732 optional RttOverallStatusTypeEnum status_type = 1; 1733 1734 // number of samples in the bucket 1735 optional int32 count = 2; 1736 } 1737 1738 // Histogram bucket for Wi-Fi RTT individual operation status 1739 message RttIndividualStatusHistogramBucket { 1740 // status type defining the bucket 1741 optional RttIndividualStatusTypeEnum status_type = 1; 1742 1743 // number of samples in the bucket 1744 optional int32 count = 2; 1745 } 1746} 1747 1748// Usage data for the wifi radio while device is running on battery. 1749message WifiRadioUsage { 1750 // Duration of log (ms) 1751 optional int64 logging_duration_ms = 1; 1752 1753 // Total time for which the radio is awake due to scan. 1754 optional int64 scan_time_ms = 2; 1755} 1756 1757message ExperimentValues { 1758 // Indicates if we are logging WifiIsUnusableEvent in metrics 1759 optional bool wifi_is_unusable_logging_enabled = 1; 1760 1761 // Minimum number of txBad to trigger a data stall 1762 optional int32 wifi_data_stall_min_tx_bad = 2; 1763 1764 // Minimum number of txSuccess to trigger a data stall 1765 // when rxSuccess is 0 1766 optional int32 wifi_data_stall_min_tx_success_without_rx = 3; 1767 1768 // Indicates if we are logging LinkSpeedCount in metrics 1769 optional bool link_speed_counts_logging_enabled = 4; 1770} 1771 1772message WifiIsUnusableEvent { 1773 enum TriggerType { 1774 // Default/Invalid event 1775 TYPE_UNKNOWN = 0; 1776 1777 // There is a data stall from tx failures 1778 TYPE_DATA_STALL_BAD_TX = 1; 1779 1780 // There is a data stall from rx failures 1781 TYPE_DATA_STALL_TX_WITHOUT_RX = 2; 1782 1783 // There is a data stall from both tx and rx failures 1784 TYPE_DATA_STALL_BOTH = 3; 1785 1786 // Firmware generated an alert 1787 TYPE_FIRMWARE_ALERT = 4; 1788 1789 // IP Manager lost reachability to network neighbors 1790 TYPE_IP_REACHABILITY_LOST = 5; 1791 } 1792 1793 // What event triggered WifiIsUnusableEvent. 1794 optional TriggerType type = 1; 1795 1796 // The timestamp at which this event occurred. 1797 // Measured in milliseconds that have elapsed since the device booted. 1798 optional int64 start_time_millis = 2; 1799 1800 // NetworkAgent score of connected wifi. 1801 // Defaults to -1 if the score was never set. 1802 optional int32 last_score = 3 [default = -1]; 1803 1804 // Delta of successfully transmitted (ACKed) unicast data packets 1805 // between the last two WifiLinkLayerStats. 1806 optional int64 tx_success_delta = 4; 1807 1808 // Delta of transmitted unicast data retry packets 1809 // between the last two WifiLinkLayerStats. 1810 optional int64 tx_retries_delta = 5; 1811 1812 // Delta of lost (not ACKed) transmitted unicast data packets 1813 // between the last two WifiLinkLayerStats. 1814 optional int64 tx_bad_delta = 6; 1815 1816 // Delta of received unicast data packets 1817 // between the last two WifiLinkLayerStats. 1818 optional int64 rx_success_delta = 7; 1819 1820 // Time in millisecond between the last two WifiLinkLayerStats. 1821 optional int64 packet_update_time_delta = 8; 1822 1823 // The timestamp at which the last WifiLinkLayerStats was updated. 1824 // Measured in milliseconds that have elapsed since the device booted. 1825 optional int64 last_link_layer_stats_update_time = 9; 1826 1827 // Firmware alert code. Only valid when the event was triggered by a firmware alert, otherwise -1. 1828 optional int32 firmware_alert_code = 10 [default = -1]; 1829 1830 // NetworkAgent wifi usability score of connected wifi. 1831 // Defaults to -1 if the score was never set. 1832 optional int32 last_wifi_usability_score = 11 [default = -1]; 1833 1834 // Prediction horizon (in second) of Wifi usability score provided by external 1835 // system app 1836 optional int32 last_prediction_horizon_sec = 12 [default = -1]; 1837 1838 // Whether screen status is on when WifiIsUnusableEvent happens. 1839 optional bool screen_on = 13 [default = false]; 1840} 1841 1842message PasspointProfileTypeCount { 1843 enum EapMethod { 1844 // Unknown Type 1845 TYPE_UNKNOWN = 0; 1846 1847 // EAP_TLS (13) 1848 TYPE_EAP_TLS = 1; 1849 1850 // EAP_TTLS (21) 1851 TYPE_EAP_TTLS = 2; 1852 1853 // EAP_SIM (18) 1854 TYPE_EAP_SIM = 3; 1855 1856 // EAP_AKA (23) 1857 TYPE_EAP_AKA = 4; 1858 1859 // EAP_AKA_PRIME (50) 1860 TYPE_EAP_AKA_PRIME = 5; 1861 } 1862 1863 // Eap method type set in Passpoint profile 1864 optional EapMethod eap_method_type = 1; 1865 1866 // Num of installed Passpoint profile with same eap method 1867 optional int32 count = 2; 1868} 1869 1870message WifiLinkLayerUsageStats { 1871 // Total logging duration in ms. 1872 optional int64 logging_duration_ms = 1; 1873 1874 // Total time the wifi radio is on in ms over the logging duration. 1875 optional int64 radio_on_time_ms = 2; 1876 1877 // Total time the wifi radio is doing tx in ms over the logging duration. 1878 optional int64 radio_tx_time_ms = 3; 1879 1880 // Total time the wifi radio is doing rx in ms over the logging duration. 1881 optional int64 radio_rx_time_ms = 4; 1882 1883 // Total time the wifi radio is scanning in ms over the logging duration. 1884 optional int64 radio_scan_time_ms = 5; 1885 1886 // Total time the wifi radio spent doing nan scans in ms over the logging duration. 1887 optional int64 radio_nan_scan_time_ms = 6; 1888 1889 // Total time the wifi radio spent doing background scans in ms over the logging duration. 1890 optional int64 radio_background_scan_time_ms = 7; 1891 1892 // Total time the wifi radio spent doing roam scans in ms over the logging duration. 1893 optional int64 radio_roam_scan_time_ms = 8; 1894 1895 // Total time the wifi radio spent doing pno scans in ms over the logging duration. 1896 optional int64 radio_pno_scan_time_ms = 9; 1897 1898 // Total time the wifi radio spent doing hotspot 2.0 scans and GAS exchange 1899 // in ms over the logging duration. 1900 optional int64 radio_hs20_scan_time_ms = 10; 1901} 1902 1903message WifiUsabilityStatsEntry { 1904 // Status codes for link probe status 1905 enum LinkProbeStatus { 1906 // Link probe status is unknown 1907 PROBE_STATUS_UNKNOWN = 0; 1908 1909 // Link probe is not triggered 1910 PROBE_STATUS_NO_PROBE = 1; 1911 1912 // Link probe is triggered and the result is success 1913 PROBE_STATUS_SUCCESS = 2; 1914 1915 // Link probe is triggered and the result is failure 1916 PROBE_STATUS_FAILURE = 3; 1917 } 1918 1919 // Codes for cellular data network type 1920 enum CellularDataNetworkType { 1921 // Unknown network 1922 NETWORK_TYPE_UNKNOWN = 0; 1923 1924 // GSM network 1925 NETWORK_TYPE_GSM = 1; 1926 1927 // CDMA network 1928 NETWORK_TYPE_CDMA = 2; 1929 1930 // CDMA EVDO network 1931 NETWORK_TYPE_EVDO_0 = 3; 1932 1933 // WCDMA network 1934 NETWORK_TYPE_UMTS = 4; 1935 1936 // TDSCDMA network 1937 NETWORK_TYPE_TD_SCDMA = 5; 1938 1939 // LTE network 1940 NETWORK_TYPE_LTE = 6; 1941 1942 // NR network 1943 NETWORK_TYPE_NR = 7; 1944 } 1945 1946 // Absolute milliseconds from device boot when these stats were sampled 1947 optional int64 time_stamp_ms = 1; 1948 1949 // The RSSI at the sample time 1950 optional int32 rssi = 2; 1951 1952 // Link speed at the sample time in Mbps 1953 optional int32 link_speed_mbps = 3; 1954 1955 // The total number of tx success counted from the last radio chip reset 1956 optional int64 total_tx_success = 4; 1957 1958 // The total number of MPDU data packet retries counted from the last radio chip reset 1959 optional int64 total_tx_retries = 5; 1960 1961 // The total number of tx bad counted from the last radio chip reset 1962 optional int64 total_tx_bad = 6; 1963 1964 // The total number of rx success counted from the last radio chip reset 1965 optional int64 total_rx_success = 7; 1966 1967 // The total time the wifi radio is on in ms counted from the last radio chip reset 1968 optional int64 total_radio_on_time_ms = 8; 1969 1970 // The total time the wifi radio is doing tx in ms counted from the last radio chip reset 1971 optional int64 total_radio_tx_time_ms = 9; 1972 1973 // The total time the wifi radio is doing rx in ms counted from the last radio chip reset 1974 optional int64 total_radio_rx_time_ms = 10; 1975 1976 // The total time spent on all types of scans in ms counted from the last radio chip reset 1977 optional int64 total_scan_time_ms = 11; 1978 1979 // The total time spent on nan scans in ms counted from the last radio chip reset 1980 optional int64 total_nan_scan_time_ms = 12; 1981 1982 // The total time spent on background scans in ms counted from the last radio chip reset 1983 optional int64 total_background_scan_time_ms = 13; 1984 1985 // The total time spent on roam scans in ms counted from the last radio chip reset 1986 optional int64 total_roam_scan_time_ms = 14; 1987 1988 // The total time spent on pno scans in ms counted from the last radio chip reset 1989 optional int64 total_pno_scan_time_ms = 15; 1990 1991 // The total time spent on hotspot2.0 scans and GAS exchange in ms counted from the last radio 1992 // chip reset 1993 optional int64 total_hotspot_2_scan_time_ms = 16; 1994 1995 // Internal framework Wifi score 1996 optional int32 wifi_score = 17; 1997 1998 // Wifi usability score provided by external system app 1999 optional int32 wifi_usability_score = 18; 2000 2001 // Sequence number from external system app to framework 2002 optional int32 seq_num_to_framework = 19; 2003 2004 // The total time CCA is on busy status on the current frequency in ms 2005 // counted from the last radio chip reset 2006 optional int64 total_cca_busy_freq_time_ms = 20; 2007 2008 // The total radio on time of the current frequency from the last radio 2009 // chip reset 2010 optional int64 total_radio_on_freq_time_ms = 21; 2011 2012 // The total number of beacons received from the last radio chip reset 2013 optional int64 total_beacon_rx = 22; 2014 2015 // Prediction horizon (in second) of Wifi usability score provided by external 2016 // system app 2017 optional int32 prediction_horizon_sec = 23; 2018 2019 // The link probe status since last stats update 2020 optional LinkProbeStatus probe_status_since_last_update = 24; 2021 2022 // The elapsed time of the most recent link probe since last stats update; 2023 optional int32 probe_elapsed_time_since_last_update_ms = 25; 2024 2025 // The MCS rate of the most recent link probe since last stats update 2026 optional int32 probe_mcs_rate_since_last_update = 26; 2027 2028 // Rx link speed at the sample time in Mbps 2029 optional int32 rx_link_speed_mbps = 27; 2030 2031 // Sequence number generated by framework 2032 optional int32 seq_num_inside_framework = 28; 2033 2034 // Whether current entry is for the same BSSID on the same frequency compared 2035 // to last entry 2036 optional bool is_same_bssid_and_freq = 29; 2037 2038 // Cellular data network type currently in use on the device for data transmission 2039 optional CellularDataNetworkType cellular_data_network_type = 30; 2040 2041 // Cellular signal strength in dBm, NR: CsiRsrp, LTE: Rsrp, WCDMA/TDSCDMA: Rscp, 2042 // CDMA: Rssi, EVDO: Rssi, GSM: Rssi 2043 optional int32 cellular_signal_strength_dbm = 31; 2044 2045 // Cellular signal strength in dB, NR: CsiSinr, LTE: Rsrq, WCDMA: EcNo, TDSCDMA: invalid, 2046 // CDMA: Ecio, EVDO: SNR, GSM: invalid */ 2047 optional int32 cellular_signal_strength_db = 32; 2048 2049 // Whether the primary registered cell of current entry is same as that of previous entry 2050 optional bool is_same_registered_cell = 33; 2051 2052 // The device mobility state 2053 optional DeviceMobilityStatePnoScanStats.DeviceMobilityState 2054 device_mobility_state = 34; 2055} 2056 2057message WifiUsabilityStats { 2058 enum Label { 2059 // Default label 2060 LABEL_UNKNOWN = 0; 2061 2062 // Wifi is usable 2063 LABEL_GOOD = 1; 2064 2065 // Wifi is unusable 2066 LABEL_BAD = 2; 2067 } 2068 2069 enum UsabilityStatsTriggerType { 2070 // Default/Invalid event 2071 TYPE_UNKNOWN = 0; 2072 2073 // There is a data stall from tx failures 2074 TYPE_DATA_STALL_BAD_TX = 1; 2075 2076 // There is a data stall from rx failures 2077 TYPE_DATA_STALL_TX_WITHOUT_RX = 2; 2078 2079 // There is a data stall from both tx and rx failures 2080 TYPE_DATA_STALL_BOTH = 3; 2081 2082 // Firmware generated an alert 2083 TYPE_FIRMWARE_ALERT = 4; 2084 2085 // IP Manager lost reachability to network neighbors 2086 TYPE_IP_REACHABILITY_LOST = 5; 2087 } 2088 2089 // The current wifi usability state 2090 optional Label label = 1; 2091 2092 // The list of timestamped wifi usability stats 2093 repeated WifiUsabilityStatsEntry stats = 2; 2094 2095 // What event triggered WifiUsabilityStats. 2096 optional UsabilityStatsTriggerType trigger_type = 3; 2097 2098 // Firmware alert code. Only valid when the stats was triggered by a firmware 2099 // alert, otherwise -1. 2100 optional int32 firmware_alert_code = 4 [default = -1]; 2101 2102 // Absolute milliseconds from device boot when these stats were sampled 2103 optional int64 time_stamp_ms = 5; 2104} 2105 2106message DeviceMobilityStatePnoScanStats { 2107 // see WifiManager.DEVICE_MOBILITY_STATE_* constants 2108 enum DeviceMobilityState { 2109 // Unknown mobility 2110 UNKNOWN = 0; 2111 2112 // High movement 2113 HIGH_MVMT = 1; 2114 2115 // Low movement 2116 LOW_MVMT = 2; 2117 2118 // Stationary 2119 STATIONARY = 3; 2120 } 2121 2122 // The device mobility state 2123 optional DeviceMobilityState device_mobility_state = 1; 2124 2125 // The number of times that this state was entered 2126 optional int32 num_times_entered_state = 2; 2127 2128 // The total duration elapsed while in this mobility state, in ms 2129 optional int64 total_duration_ms = 3; 2130 2131 // the total duration elapsed while in this mobility state with PNO scans running, in ms 2132 optional int64 pno_duration_ms = 4; 2133} 2134 2135// The information about the Wifi P2p events. 2136message WifiP2pStats { 2137 2138 // Group event list tracking sessions and client counts in tethered mode. 2139 repeated GroupEvent group_event = 1; 2140 2141 // Session information that gets logged for every Wifi P2p connection. 2142 repeated P2pConnectionEvent connection_event = 2; 2143 2144 // Number of persistent group in the user profile. 2145 optional int32 num_persistent_group = 3; 2146 2147 // Number of peer scan. 2148 optional int32 num_total_peer_scans = 4; 2149 2150 // Number of service scan. 2151 optional int32 num_total_service_scans = 5; 2152} 2153 2154message P2pConnectionEvent { 2155 2156 enum ConnectionType { 2157 2158 // fresh new connection. 2159 CONNECTION_FRESH = 0; 2160 2161 // reinvoke a group. 2162 CONNECTION_REINVOKE = 1; 2163 2164 // create a group with the current device as the group owner locally. 2165 CONNECTION_LOCAL = 2; 2166 2167 // create a group or join a group with config. 2168 CONNECTION_FAST = 3; 2169 } 2170 2171 enum ConnectivityLevelFailure { 2172 2173 // Failure is unknown. 2174 CLF_UNKNOWN = 0; 2175 2176 // No failure. 2177 CLF_NONE = 1; 2178 2179 // Timeout for current connecting request. 2180 CLF_TIMEOUT = 2; 2181 2182 // The connecting request is canceled by the user. 2183 CLF_CANCEL = 3; 2184 2185 // Provision discovery failure, e.g. no pin code, timeout, rejected by the peer. 2186 CLF_PROV_DISC_FAIL = 4; 2187 2188 // Invitation failure, e.g. rejected by the peer. 2189 CLF_INVITATION_FAIL = 5; 2190 2191 // Incoming request is rejected by the user. 2192 CLF_USER_REJECT = 6; 2193 2194 // New connection request is issued before ending previous connecting request. 2195 CLF_NEW_CONNECTION_ATTEMPT = 7; 2196 } 2197 2198 // WPS method. 2199 enum WpsMethod { 2200 // WPS is skipped for Group Reinvoke. 2201 WPS_NA = -1; 2202 2203 // Push button configuration. 2204 WPS_PBC = 0; 2205 2206 // Display pin method configuration - pin is generated and displayed on device. 2207 WPS_DISPLAY = 1; 2208 2209 // Keypad pin method configuration - pin is entered on device. 2210 WPS_KEYPAD = 2; 2211 2212 // Label pin method configuration - pin is labelled on device. 2213 WPS_LABEL = 3; 2214 } 2215 2216 // Start time of the connection. 2217 optional int64 start_time_millis = 1; 2218 2219 // Type of the connection. 2220 optional ConnectionType connection_type = 2; 2221 2222 // WPS method. 2223 optional WpsMethod wps_method = 3 [default = WPS_NA]; 2224 2225 // Duration to connect. 2226 optional int32 duration_taken_to_connect_millis = 4; 2227 2228 // Failures that happen at the connectivity layer. 2229 optional ConnectivityLevelFailure connectivity_level_failure_code = 5; 2230} 2231 2232// GroupEvent tracking group information from GroupStarted to GroupRemoved. 2233message GroupEvent { 2234 2235 enum GroupRole { 2236 2237 GROUP_OWNER = 0; 2238 2239 GROUP_CLIENT = 1; 2240 } 2241 2242 // The ID of network in supplicant for this group. 2243 optional int32 net_id = 1; 2244 2245 // Start time of the group. 2246 optional int64 start_time_millis = 2; 2247 2248 // Channel frequency used for Group. 2249 optional int32 channel_frequency = 3; 2250 2251 // Is group owner or group client. 2252 optional GroupRole group_role = 5; 2253 2254 // Number of connected clients. 2255 optional int32 num_connected_clients = 6; 2256 2257 // Cumulative number of connected clients. 2258 optional int32 num_cumulative_clients = 7; 2259 2260 // The session duration. 2261 optional int32 session_duration_millis = 8; 2262 2263 // The idle duration. A group without any client is in idle. 2264 optional int32 idle_duration_millis = 9; 2265} 2266 2267// Easy Connect (DPP) 2268message WifiDppLog { 2269 reserved 6; 2270 2271 // Number of Configurator-Initiator requests 2272 optional int32 num_dpp_configurator_initiator_requests = 1; 2273 2274 // Number of Enrollee-Initiator requests 2275 optional int32 num_dpp_enrollee_initiator_requests = 2; 2276 2277 // Easy Connect (DPP) Enrollee success 2278 optional int32 num_dpp_enrollee_success = 3; 2279 2280 // Easy Connect (DPP) Configurator success code bucket 2281 repeated DppConfiguratorSuccessStatusHistogramBucket dpp_configurator_success_code = 4; 2282 2283 // Easy Connect (DPP) failure code bucket 2284 repeated DppFailureStatusHistogramBucket dpp_failure_code = 5; 2285 2286 // Easy Connect (DPP) operation time bucket 2287 repeated HistogramBucketInt32 dpp_operation_time = 7; 2288 2289 // Histogram bucket for Wi-Fi DPP configurator success 2290 message DppConfiguratorSuccessStatusHistogramBucket { 2291 // status type defining the bucket 2292 optional DppConfiguratorSuccessCode dpp_status_type = 1; 2293 2294 // number of samples in the bucket 2295 optional int32 count = 2; 2296 } 2297 2298 // Histogram bucket for Wi-Fi DPP failures 2299 message DppFailureStatusHistogramBucket { 2300 // status type defining the bucket 2301 optional DppFailureCode dpp_status_type = 1; 2302 2303 // number of samples in the bucket 2304 optional int32 count = 2; 2305 } 2306 2307 enum DppConfiguratorSuccessCode { 2308 // Unknown success code 2309 EASY_CONNECT_EVENT_SUCCESS_UNKNOWN = 0; 2310 2311 // Easy Connect Configurator success event: Configuration sent to enrollee 2312 EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT = 1; 2313 } 2314 2315 enum DppFailureCode { 2316 // Unknown failure 2317 EASY_CONNECT_EVENT_FAILURE_UNKNOWN = 0; 2318 2319 // Easy Connect Failure event: Scanned QR code is either not a Easy Connect URI, or the Easy 2320 // Connect URI has errors. 2321 EASY_CONNECT_EVENT_FAILURE_INVALID_URI = 1; 2322 2323 // Easy Connect Failure event: Bootstrapping/Authentication initialization process failure. 2324 EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION = 2; 2325 2326 // Easy Connect Failure event: Both devices are implementing the same role and are 2327 // incompatible. 2328 EASY_CONNECT_EVENT_FAILURE_NOT_COMPATIBLE = 3; 2329 2330 // Easy Connect Failure event: Configuration process has failed due to malformed message. 2331 EASY_CONNECT_EVENT_FAILURE_CONFIGURATION = 4; 2332 2333 // Easy Connect Failure event: Easy Connect request while in another Easy Connect exchange. 2334 EASY_CONNECT_EVENT_FAILURE_BUSY = 5; 2335 2336 // Easy Connect Failure event: No response from the peer. 2337 EASY_CONNECT_EVENT_FAILURE_TIMEOUT = 6; 2338 2339 // Easy Connect Failure event: General protocol failure. 2340 EASY_CONNECT_EVENT_FAILURE_GENERIC = 7; 2341 2342 // Easy Connect Failure event: Feature or option is not supported. 2343 EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED = 8; 2344 2345 // Easy Connect Failure event: Invalid network provided to Easy Connect configurator. 2346 // Network must either be WPA3-Personal (SAE) or WPA2-Personal (PSK). 2347 EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK = 9; 2348 } 2349} 2350 2351// WifiConfigStore read/write metrics. 2352message WifiConfigStoreIO { 2353 // Histogram of config store read durations. 2354 repeated DurationBucket read_durations = 1; 2355 2356 // Histogram of config store write durations. 2357 repeated DurationBucket write_durations = 2; 2358 2359 // Total Number of instances of write/read duration in this duration bucket. 2360 message DurationBucket { 2361 // Bucket covers duration : [range_start_ms, range_end_ms) 2362 // The (inclusive) lower bound of read/write duration represented by this bucket 2363 optional int32 range_start_ms = 1; 2364 2365 // The (exclusive) upper bound of read/write duration represented by this bucket 2366 optional int32 range_end_ms = 2; 2367 2368 // Number of read/write durations that fit into this bucket 2369 optional int32 count = 3; 2370 } 2371} 2372 2373// Histogram bucket counting with int32. Range is [start, end) 2374message HistogramBucketInt32 { 2375 // lower range of the bucket (inclusive) 2376 optional int32 start = 1; 2377 2378 // upper range of the bucket (exclusive) 2379 optional int32 end = 2; 2380 2381 // number of samples in the bucket 2382 optional int32 count = 3; 2383} 2384 2385// Counts occurrences of a int32 key 2386message Int32Count { 2387 // the key 2388 optional int32 key = 1; 2389 2390 // the count 2391 optional int32 count = 2; 2392} 2393 2394message LinkProbeStats { 2395 enum LinkProbeFailureReason { 2396 // unknown reason 2397 LINK_PROBE_FAILURE_REASON_UNKNOWN = 0; 2398 2399 // Specified MCS rate when it is unsupported by the driver. 2400 LINK_PROBE_FAILURE_REASON_MCS_UNSUPPORTED = 1; 2401 2402 // Driver reported that no ACK was received for the transmitted probe. 2403 LINK_PROBE_FAILURE_REASON_NO_ACK = 2; 2404 2405 // Driver failed to report on the status of the transmitted probe within the timeout. 2406 LINK_PROBE_FAILURE_REASON_TIMEOUT = 3; 2407 2408 // An existing link probe is in progress. 2409 LINK_PROBE_FAILURE_REASON_ALREADY_STARTED = 4; 2410 } 2411 2412 // Counts the number of failures for each failure reason. 2413 message LinkProbeFailureReasonCount { 2414 // The failure reason. 2415 optional LinkProbeFailureReason failure_reason = 1; 2416 2417 // The number of occurrences for this failure reason. 2418 optional int32 count = 2; 2419 } 2420 2421 // Counts the number of link probes for each experiment. 2422 message ExperimentProbeCounts { 2423 // The experiment ID. 2424 optional string experiment_id = 1; 2425 2426 // The number of link probes triggered for this experiment. 2427 optional int32 probe_count = 2; 2428 } 2429 2430 // Counts the occurrences of RSSI values when a link probe succeeds. 2431 repeated Int32Count success_rssi_counts = 1; 2432 2433 // Counts the occurrences of RSSI values when a link probe fails. 2434 repeated Int32Count failure_rssi_counts = 2; 2435 2436 // Counts the occurrences of Link Speed values when a link probe succeeds. 2437 repeated Int32Count success_link_speed_counts = 3; 2438 2439 // Counts the occurrences of Link Speed values when a link probe fails. 2440 repeated Int32Count failure_link_speed_counts = 4; 2441 2442 // Histogram for the number of seconds since the last TX success when a link probe succeeds. 2443 repeated HistogramBucketInt32 success_seconds_since_last_tx_success_histogram = 5; 2444 2445 // Histogram for the number of seconds since the last TX success when a link probe fails. 2446 repeated HistogramBucketInt32 failure_seconds_since_last_tx_success_histogram = 6; 2447 2448 // Histogram for the elapsed time of successful link probes, in ms. 2449 repeated HistogramBucketInt32 success_elapsed_time_ms_histogram = 7; 2450 2451 // Counts the occurrences of error codes for failed link probes. 2452 repeated LinkProbeFailureReasonCount failure_reason_counts = 8; 2453 2454 // Counts the number of link probes for each experiment. 2455 repeated ExperimentProbeCounts experiment_probe_counts = 9; 2456} 2457 2458// Stores the decisions that were made by a experiment when compared against another experiment 2459message NetworkSelectionExperimentDecisions { 2460 // the id of one experiment 2461 optional int32 experiment1_id = 1; 2462 2463 // the id of the other experiment 2464 optional int32 experiment2_id = 2; 2465 2466 // Counts occurrences of the number of network choices there were when experiment1 makes the 2467 // same network selection as experiment2. 2468 // The keys are the number of network choices, and the values are the number of occurrences of 2469 // this number of network choices when exp1 and exp2 make the same network selection. 2470 repeated Int32Count same_selection_num_choices_counter = 3; 2471 2472 // Counts occurrences of the number of network choices there were when experiment1 makes the 2473 // same network selection as experiment2. 2474 // The keys are the number of network choices, and the values are the number of occurrences of 2475 // this number of network choices when exp1 and exp2 make different network selections. 2476 // Note that it is possible for the network selection to be different even when there only exists 2477 // a single network choice, since choosing not to connect to that network is a valid choice. 2478 repeated Int32Count different_selection_num_choices_counter = 4; 2479} 2480 2481// NetworkRequest API metrics. 2482message WifiNetworkRequestApiLog { 2483 // Number of requests via this API surface. 2484 optional int32 num_request = 1; 2485 2486 // Histogram of requests via this API surface to number of networks matched in scan results. 2487 repeated HistogramBucketInt32 network_match_size_histogram = 2; 2488 2489 // Number of successful network connection from this API. 2490 optional int32 num_connect_success = 3; 2491 2492 // Number of requests via this API surface that bypassed user approval. 2493 optional int32 num_user_approval_bypass = 4; 2494 2495 // Number of requests via this API surface that was rejected by the user. 2496 optional int32 num_user_reject = 5; 2497 2498 // Number of unique apps using this API surface. 2499 optional int32 num_apps = 6; 2500} 2501 2502// NetworkSuggestion API metrics. 2503message WifiNetworkSuggestionApiLog { 2504 // Number of modifications to their suggestions by apps. 2505 optional int32 num_modification = 1; 2506 2507 // Number of successful network connection from app suggestions. 2508 optional int32 num_connect_success = 2; 2509 2510 // Number of network connection failures from app suggestions. 2511 optional int32 num_connect_failure = 3; 2512 2513 // Histogram for size of the network lists provided by various apps on the device. 2514 repeated HistogramBucketInt32 network_list_size_histogram = 4; 2515} 2516 2517// WifiLock metrics 2518message WifiLockStats { 2519 // Amount of time wifi is actively in HIGH_PERF mode (ms) 2520 // This means the lock takes effect and the device takes the actions required for this mode 2521 optional int64 high_perf_active_time_ms = 1; 2522 2523 // Amount of time wifi is actively in LOW_LATENCY mode (ms) 2524 // This means the lock takes effect and the device takes the actions required for this mode 2525 optional int64 low_latency_active_time_ms = 2; 2526 2527 // Histogram of HIGH_PERF lock acquisition duration (seconds) 2528 // Note that acquiring the lock does not necessarily mean that device is actively in that mode 2529 repeated HistogramBucketInt32 high_perf_lock_acq_duration_sec_histogram = 3; 2530 2531 // Histogram of LOW_LATENCY lock acquisition duration (seconds) 2532 // Note that acquiring the lock does not necessarily mean that device is actively in that mode 2533 repeated HistogramBucketInt32 low_latency_lock_acq_duration_sec_histogram = 4; 2534 2535 // Histogram of HIGH_PERF active session duration (seconds) 2536 // This means the lock takes effect and the device takes the actions required for this mode 2537 repeated HistogramBucketInt32 high_perf_active_session_duration_sec_histogram = 5; 2538 2539 // Histogram of LOW_LATENCY active session duration (seconds) 2540 // This means the lock takes effect and the device takes the actions required for this mode 2541 repeated HistogramBucketInt32 low_latency_active_session_duration_sec_histogram = 6; 2542} 2543 2544// Stats on number of times Wi-Fi is turned on/off though the WifiManager#setWifiEnabled API 2545message WifiToggleStats { 2546 // Number of time Wi-Fi is turned on by privileged apps 2547 optional int32 num_toggle_on_privileged = 1; 2548 2549 // Number of time Wi-Fi is turned off by privileged apps 2550 optional int32 num_toggle_off_privileged = 2; 2551 2552 // Number of time Wi-Fi is turned on by normal apps 2553 optional int32 num_toggle_on_normal = 3; 2554 2555 // Number of time Wi-Fi is turned off by normal apps 2556 optional int32 num_toggle_off_normal = 4; 2557} 2558 2559// Information about the Passpoint provision metrics. 2560message PasspointProvisionStats { 2561 enum ProvisionFailureCode { 2562 // provisioning failure for unknown reason. 2563 OSU_FAILURE_UNKNOWN = 0; 2564 2565 // The reason code for Provisioning Failure due to connection failure to OSU AP. 2566 OSU_FAILURE_AP_CONNECTION = 1; 2567 2568 // The reason code for invalid server URL address. 2569 OSU_FAILURE_SERVER_URL_INVALID = 2; 2570 2571 // The reason code for provisioning failure due to connection failure to the server. 2572 OSU_FAILURE_SERVER_CONNECTION = 3; 2573 2574 // The reason code for provisioning failure due to invalid server certificate. 2575 OSU_FAILURE_SERVER_VALIDATION = 4; 2576 2577 // The reason code for provisioning failure due to invalid service provider. 2578 OSU_FAILURE_SERVICE_PROVIDER_VERIFICATION = 5; 2579 2580 // The reason code for provisioning failure when a provisioning flow is aborted. 2581 OSU_FAILURE_PROVISIONING_ABORTED = 6; 2582 2583 // The reason code for provisioning failure when a provisioning flow is not possible. 2584 OSU_FAILURE_PROVISIONING_NOT_AVAILABLE = 7; 2585 2586 // The reason code for provisioning failure due to invalid web url format for an OSU web page. 2587 OSU_FAILURE_INVALID_URL_FORMAT_FOR_OSU = 8; 2588 2589 // The reason code for provisioning failure when a command received is not the expected command 2590 // type. 2591 OSU_FAILURE_UNEXPECTED_COMMAND_TYPE = 9; 2592 2593 // The reason code for provisioning failure when a SOAP message is not the expected message 2594 // type. 2595 OSU_FAILURE_UNEXPECTED_SOAP_MESSAGE_TYPE = 10; 2596 2597 // The reason code for provisioning failure when a SOAP message exchange fails. 2598 OSU_FAILURE_SOAP_MESSAGE_EXCHANGE = 11; 2599 2600 // The reason code for provisioning failure when a redirect listener fails to start. 2601 OSU_FAILURE_START_REDIRECT_LISTENER = 12; 2602 2603 // The reason code for provisioning failure when a redirect listener timed out to receive a HTTP 2604 // redirect response. 2605 OSU_FAILURE_TIMED_OUT_REDIRECT_LISTENER = 13; 2606 2607 // The reason code for provisioning failure when there is no OSU activity to listen to intent. 2608 OSU_FAILURE_NO_OSU_ACTIVITY_FOUND = 14; 2609 2610 // The reason code for provisioning failure when the status of a SOAP message is not the 2611 // expected message status. 2612 OSU_FAILURE_UNEXPECTED_SOAP_MESSAGE_STATUS = 15; 2613 2614 // The reason code for provisioning failure when there is no PPS MO. 2615 OSU_FAILURE_NO_PPS_MO = 16; 2616 2617 // The reason code for provisioning failure when there is no AAAServerTrustRoot node in a PPS 2618 // MO. 2619 OSU_FAILURE_NO_AAA_SERVER_TRUST_ROOT_NODE = 17; 2620 2621 // The reason code for provisioning failure when there is no TrustRoot node for remediation 2622 // server in a PPS MO. 2623 OSU_FAILURE_NO_REMEDIATION_SERVER_TRUST_ROOT_NODE = 18; 2624 2625 // The reason code for provisioning failure when there is no TrustRoot node for policy server in 2626 // a PPS MO. 2627 OSU_FAILURE_NO_POLICY_SERVER_TRUST_ROOT_NODE = 19; 2628 2629 // The reason code for provisioning failure when failing to retrieve trust root certificates 2630 // used for validating server certificate for AAA, Remediation and Policy server. 2631 OSU_FAILURE_RETRIEVE_TRUST_ROOT_CERTIFICATES = 20; 2632 2633 // The reason code for provisioning failure when there is no trust root certificate for AAA 2634 // server. 2635 OSU_FAILURE_NO_AAA_TRUST_ROOT_CERTIFICATE = 21; 2636 2637 // The reason code for provisioning failure when a {@link PasspointConfiguration} is failed to 2638 // install. 2639 OSU_FAILURE_ADD_PASSPOINT_CONFIGURATION = 22; 2640 2641 // The reason code for provisioning failure when an {@link OsuProvider} is not found for 2642 // provisioning. 2643 OSU_FAILURE_OSU_PROVIDER_NOT_FOUND = 23; 2644 } 2645 2646 // Number of passpoint provisioning success 2647 optional int32 num_provision_success = 1; 2648 2649 // Count for passpoint provisioning failure 2650 repeated ProvisionFailureCount provision_failure_count = 2; 2651 2652 // Number of occurrences of a specific passpoint provision failure code 2653 message ProvisionFailureCount { 2654 // Failure code 2655 optional ProvisionFailureCode failure_code = 1; 2656 2657 // Number of failure for the failure_code. 2658 optional int32 count = 2; 2659 } 2660} 2661