summaryrefslogtreecommitdiff
path: root/wifi/1.0/IWifiRttController.hal
blob: 2f8117657314eb8d0228910585995df7d178c317 (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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
/*
 * 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;

import IWifiIface;
import IWifiRttControllerEventCallback;

/**
 * Interface used to perform RTT(Round trip time) operations.
 */
interface IWifiRttController {
  /**
   * Get the iface on which the RTT operations must be performed.
   *
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|
   * @return boundIface HIDL interface object representing the iface if bound
   *         to a specific iface, null otherwise
   */
  getBoundIface() generates (WifiStatus status, IWifiIface boundIface);

  /**
   * Requests notifications of significant events on this rtt controller.
   * Multiple calls to this must register multiple callbacks each of which must
   * receive all events.
   *
   * @param callback An instance of the |IWifiRttControllerEventCallback| HIDL
   *        interface object.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|
   */
  registerEventCallback(IWifiRttControllerEventCallback callback)
      generates (WifiStatus status);

  /**
   * API to request RTT measurement.
   *
   * @param cmdId command Id to use for this invocation.
   * @param rttConfigs Vector of |RttConfig| parameters.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_INVALID_ARGS|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   */
  rangeRequest(CommandId cmdId, vec<RttConfig> rttConfigs)
      generates (WifiStatus status);

  /**
   * API to cancel RTT measurements.
   *
   * @param cmdId command Id corresponding to the original request.
   * @param addrs Vector of addresses for which to cancel.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_INVALID_ARGS|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   */
  rangeCancel(CommandId cmdId, vec<MacAddress> addrs)
      generates (WifiStatus status);

  /**
   * RTT capabilities of the device.
   *
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   * @return capabilities Instance of |RttCapabilities|.
   */
  getCapabilities() generates (WifiStatus status, RttCapabilities capabilities);

  /**
   * API to configure the LCI(Location civic information).
   * Used in RTT Responder mode only.
   *
   * @param cmdId command Id to use for this invocation.
   * @param lci Instance of |RttLciInformation|.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_INVALID_ARGS|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   */
  setLci(CommandId cmdId, RttLciInformation lci) generates (WifiStatus status);

  /**
   * API to configure the LCR(Location civic records).
   * Used in RTT Responder mode only.
   *
   * @param cmdId command Id to use for this invocation.
   * @param lcr Instance of |RttLcrInformation|.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_INVALID_ARGS|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   */
  setLcr(CommandId cmdId, RttLcrInformation lcr) generates (WifiStatus status);

  /**
   * Get RTT responder information e.g. WiFi channel to enable responder on.
   *
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   * @return info Instance of |RttResponderInfo|.
   */
  getResponderInfo() generates (WifiStatus status, RttResponder info);

  /**
   * Enable RTT responder mode.
   *
   * @param cmdId command Id to use for this invocation.
   * @parm channelHint Hint of the channel information where RTT responder must
   *       be enabled on.
   * @param maxDurationInSeconds Timeout of responder mode.
   * @param info Instance of |RttResponderInfo|.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_INVALID_ARGS|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   */
  enableResponder(CommandId cmdId,
                  WifiChannelInfo channelHint,
                  uint32_t maxDurationSeconds,
                  RttResponder info)
      generates (WifiStatus status);

  /**
   * Disable RTT responder mode.
   *
   * @param cmdId command Id corresponding to the original request.
   * @return status WifiStatus of the operation.
   *         Possible status codes:
   *         |WifiStatusCode.SUCCESS|,
   *         |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|,
   *         |WifiStatusCode.ERROR_NOT_AVAILABLE|,
   *         |WifiStatusCode.ERROR_UNKNOWN|
   */
  disableResponder(CommandId cmdId) generates (WifiStatus status);
};