summaryrefslogtreecommitdiffstats
path: root/wifi/1.0/IWifiStaIfaceEventCallback.hal
blob: 129c258104bec39d089eabaa2180554f4cd9006a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
 * Copyright 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.wifi@1.0;

interface IWifiStaIfaceEventCallback {
 /**
  * Information elements contained within the |ScanResult| structure.
  * These elements correspond to the IEEE_802.11 standard.
  */
  struct InformationElement {
    uint8_t id;
    vec<uint8_t> data;
  };

  /**
   * Structure describing all the information about a single access point seen
   * during the scan.
   */
  struct ScanResult {
    int64_t timeStampInUs;
    vec<uint8_t> ssid;
    Bssid bssid;
    int8_t rssi;
    WifiChannelInMhz frequency;
    uint16_t beaconPeriodInMs;
    uint16_t capability;
    vec<InformationElement> informationElements;
  };

  /**
   * Mask of flags set in the |ScanData| instance.
   */
  enum ScanDataFlagMask {
    /**
     * Indicates that a scan was interrupted/did not occur so results may be
     * incomplete.
     */
    WIFI_SCAN_FLAG_INTERRUPTED = 1 << 0,
  };

  /**
   * Structure describing all the information about all the access points seen during
   * the scan.
   */
  struct ScanData {
    /**
     * Bitset containing |ScanDataFlagMask| values.
     */
    uint32_t flags;
    /**
     * Bitset where each bit indicates if the bucket with that index was
     * scanned.
     */
    uint32_t bucketsScanned;
    /**
     * List of scan results.
     */
    vec<ScanResult> results;
  };

  /**
   * Callback indicating that an ongoing background scan request has failed.
   * The background scan needs to be restarted to continue scanning.
   */
  oneway onBackgroundScanFailure(CommandId cmdId);

  /**
   * Called for each received beacon/probe response for a scan with the
   * |REPORT_EVENTS_FULL_RESULTS| flag set in
   * |BackgroundScanBucketParameters.eventReportScheme|.
   *
   * @param cmdId command Id corresponding to the request.
   * @parm result Full scan result for an AP.
   */
  oneway onBackgroundFullScanResult(CommandId cmdId, ScanResult result);

  /**
   * Called when the |BackgroundScanBucketParameters.eventReportScheme| flags
   * for at least one bucket that was just scanned was
   * |REPORT_EVENTS_EACH_SCAN| or one of the configured thresholds was
   * breached.
   *
   * @param cmdId command Id corresponding to the request.
   * @parm scanDatas List of scan result for all AP's seen since last callback.
   */
  oneway onBackgroundScanResults(CommandId cmdId, vec<ScanData> scanDatas);
};