xref: /aosp_15_r20/hardware/interfaces/wifi/supplicant/1.0/ISupplicantStaIface.hal (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker/*
2*4d7e907cSAndroid Build Coastguard Worker * Copyright 2016 The Android Open Source Project
3*4d7e907cSAndroid Build Coastguard Worker *
4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*4d7e907cSAndroid Build Coastguard Worker *
8*4d7e907cSAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*4d7e907cSAndroid Build Coastguard Worker *
10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License.
15*4d7e907cSAndroid Build Coastguard Worker */
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected];
18*4d7e907cSAndroid Build Coastguard Worker
19*4d7e907cSAndroid Build Coastguard Workerimport ISupplicantIface;
20*4d7e907cSAndroid Build Coastguard Workerimport ISupplicantStaIfaceCallback;
21*4d7e907cSAndroid Build Coastguard Worker
22*4d7e907cSAndroid Build Coastguard Worker/**
23*4d7e907cSAndroid Build Coastguard Worker * Interface exposed by the supplicant for each station mode network
24*4d7e907cSAndroid Build Coastguard Worker * interface (e.g wlan0) it controls.
25*4d7e907cSAndroid Build Coastguard Worker */
26*4d7e907cSAndroid Build Coastguard Workerinterface ISupplicantStaIface extends ISupplicantIface {
27*4d7e907cSAndroid Build Coastguard Worker  /**
28*4d7e907cSAndroid Build Coastguard Worker   * Access Network Query Protocol info ID elements
29*4d7e907cSAndroid Build Coastguard Worker   * for IEEE Std 802.11u-2011.
30*4d7e907cSAndroid Build Coastguard Worker   */
31*4d7e907cSAndroid Build Coastguard Worker  enum AnqpInfoId : uint16_t {
32*4d7e907cSAndroid Build Coastguard Worker    VENUE_NAME = 258,
33*4d7e907cSAndroid Build Coastguard Worker    ROAMING_CONSORTIUM = 261,
34*4d7e907cSAndroid Build Coastguard Worker    IP_ADDR_TYPE_AVAILABILITY = 262,
35*4d7e907cSAndroid Build Coastguard Worker    NAI_REALM = 263,
36*4d7e907cSAndroid Build Coastguard Worker    ANQP_3GPP_CELLULAR_NETWORK = 264,
37*4d7e907cSAndroid Build Coastguard Worker    DOMAIN_NAME = 268
38*4d7e907cSAndroid Build Coastguard Worker  };
39*4d7e907cSAndroid Build Coastguard Worker
40*4d7e907cSAndroid Build Coastguard Worker  /**
41*4d7e907cSAndroid Build Coastguard Worker   * Access Network Query Protocol subtype elements
42*4d7e907cSAndroid Build Coastguard Worker   * for Hotspot 2.0.
43*4d7e907cSAndroid Build Coastguard Worker   */
44*4d7e907cSAndroid Build Coastguard Worker  enum Hs20AnqpSubtypes : uint32_t {
45*4d7e907cSAndroid Build Coastguard Worker    OPERATOR_FRIENDLY_NAME = 3,
46*4d7e907cSAndroid Build Coastguard Worker    WAN_METRICS = 4,
47*4d7e907cSAndroid Build Coastguard Worker    CONNECTION_CAPABILITY = 5,
48*4d7e907cSAndroid Build Coastguard Worker    OSU_PROVIDERS_LIST = 8,
49*4d7e907cSAndroid Build Coastguard Worker  };
50*4d7e907cSAndroid Build Coastguard Worker
51*4d7e907cSAndroid Build Coastguard Worker  /**
52*4d7e907cSAndroid Build Coastguard Worker   * Enum describing the types of RX filter supported
53*4d7e907cSAndroid Build Coastguard Worker   * via driver commands.
54*4d7e907cSAndroid Build Coastguard Worker   */
55*4d7e907cSAndroid Build Coastguard Worker  enum RxFilterType : uint8_t {
56*4d7e907cSAndroid Build Coastguard Worker    V4_MULTICAST = 0,
57*4d7e907cSAndroid Build Coastguard Worker    V6_MULTICAST = 1
58*4d7e907cSAndroid Build Coastguard Worker  };
59*4d7e907cSAndroid Build Coastguard Worker
60*4d7e907cSAndroid Build Coastguard Worker  /**
61*4d7e907cSAndroid Build Coastguard Worker   * Enum describing the modes of BT coexistence supported
62*4d7e907cSAndroid Build Coastguard Worker   * via driver commands.
63*4d7e907cSAndroid Build Coastguard Worker   */
64*4d7e907cSAndroid Build Coastguard Worker  enum BtCoexistenceMode : uint8_t {
65*4d7e907cSAndroid Build Coastguard Worker    ENABLED = 0,
66*4d7e907cSAndroid Build Coastguard Worker    DISABLED = 1,
67*4d7e907cSAndroid Build Coastguard Worker    SENSE = 2
68*4d7e907cSAndroid Build Coastguard Worker  };
69*4d7e907cSAndroid Build Coastguard Worker
70*4d7e907cSAndroid Build Coastguard Worker  enum ExtRadioWorkDefaults : uint32_t {
71*4d7e907cSAndroid Build Coastguard Worker    TIMEOUT_IN_SECS = 10
72*4d7e907cSAndroid Build Coastguard Worker  };
73*4d7e907cSAndroid Build Coastguard Worker
74*4d7e907cSAndroid Build Coastguard Worker  /**
75*4d7e907cSAndroid Build Coastguard Worker   * Register for callbacks from this interface.
76*4d7e907cSAndroid Build Coastguard Worker   *
77*4d7e907cSAndroid Build Coastguard Worker   * These callbacks are invoked for events that are specific to this interface.
78*4d7e907cSAndroid Build Coastguard Worker   * Registration of multiple callback objects is supported. These objects must
79*4d7e907cSAndroid Build Coastguard Worker   * be automatically deleted when the corresponding client process is dead or
80*4d7e907cSAndroid Build Coastguard Worker   * if this interface is removed.
81*4d7e907cSAndroid Build Coastguard Worker   *
82*4d7e907cSAndroid Build Coastguard Worker   * @param callback An instance of the |ISupplicantStaIfaceCallback| HIDL
83*4d7e907cSAndroid Build Coastguard Worker   *        interface object.
84*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
85*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
86*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
87*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
88*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
89*4d7e907cSAndroid Build Coastguard Worker   */
90*4d7e907cSAndroid Build Coastguard Worker  registerCallback(ISupplicantStaIfaceCallback callback)
91*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
92*4d7e907cSAndroid Build Coastguard Worker
93*4d7e907cSAndroid Build Coastguard Worker  /**
94*4d7e907cSAndroid Build Coastguard Worker   * Reconnect to the currently active network, even if we are already
95*4d7e907cSAndroid Build Coastguard Worker   * connected.
96*4d7e907cSAndroid Build Coastguard Worker   *
97*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
98*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
99*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
100*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
101*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
102*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
103*4d7e907cSAndroid Build Coastguard Worker   */
104*4d7e907cSAndroid Build Coastguard Worker  reassociate() generates (SupplicantStatus status);
105*4d7e907cSAndroid Build Coastguard Worker
106*4d7e907cSAndroid Build Coastguard Worker  /**
107*4d7e907cSAndroid Build Coastguard Worker   * Reconnect to the currently active network, if we are currently
108*4d7e907cSAndroid Build Coastguard Worker   * disconnected.
109*4d7e907cSAndroid Build Coastguard Worker   *
110*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
111*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
112*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
113*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
114*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
115*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_DISABLED|,
116*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_NOT_DISCONNECTED|
117*4d7e907cSAndroid Build Coastguard Worker   */
118*4d7e907cSAndroid Build Coastguard Worker  reconnect() generates (SupplicantStatus status);
119*4d7e907cSAndroid Build Coastguard Worker
120*4d7e907cSAndroid Build Coastguard Worker  /**
121*4d7e907cSAndroid Build Coastguard Worker   * Disconnect from the current active network.
122*4d7e907cSAndroid Build Coastguard Worker   *
123*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
124*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
125*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
126*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
127*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
128*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
129*4d7e907cSAndroid Build Coastguard Worker   */
130*4d7e907cSAndroid Build Coastguard Worker  disconnect() generates (SupplicantStatus status);
131*4d7e907cSAndroid Build Coastguard Worker
132*4d7e907cSAndroid Build Coastguard Worker  /**
133*4d7e907cSAndroid Build Coastguard Worker   * Turn on/off power save mode for the interface.
134*4d7e907cSAndroid Build Coastguard Worker   *
135*4d7e907cSAndroid Build Coastguard Worker   * @param enable Indicate if power save is to be turned on/off.
136*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
137*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
138*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
139*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
140*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
141*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
142*4d7e907cSAndroid Build Coastguard Worker   */
143*4d7e907cSAndroid Build Coastguard Worker  setPowerSave(bool enable) generates (SupplicantStatus status);
144*4d7e907cSAndroid Build Coastguard Worker
145*4d7e907cSAndroid Build Coastguard Worker  /**
146*4d7e907cSAndroid Build Coastguard Worker   * Initiate TDLS discover with the provided peer MAC address.
147*4d7e907cSAndroid Build Coastguard Worker   *
148*4d7e907cSAndroid Build Coastguard Worker   * @param macAddress MAC address of the peer.
149*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
150*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
151*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
152*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
153*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
154*4d7e907cSAndroid Build Coastguard Worker   */
155*4d7e907cSAndroid Build Coastguard Worker  initiateTdlsDiscover(MacAddress macAddress)
156*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
157*4d7e907cSAndroid Build Coastguard Worker
158*4d7e907cSAndroid Build Coastguard Worker  /**
159*4d7e907cSAndroid Build Coastguard Worker   * Initiate TDLS setup with the provided peer MAC address.
160*4d7e907cSAndroid Build Coastguard Worker   *
161*4d7e907cSAndroid Build Coastguard Worker   * @param macAddress MAC address of the peer.
162*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
163*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
164*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
165*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
166*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
167*4d7e907cSAndroid Build Coastguard Worker   */
168*4d7e907cSAndroid Build Coastguard Worker  initiateTdlsSetup(MacAddress macAddress)
169*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
170*4d7e907cSAndroid Build Coastguard Worker
171*4d7e907cSAndroid Build Coastguard Worker  /**
172*4d7e907cSAndroid Build Coastguard Worker   * Initiate TDLS teardown with the provided peer MAC address.
173*4d7e907cSAndroid Build Coastguard Worker   *
174*4d7e907cSAndroid Build Coastguard Worker   * @param macAddress MAC address of the peer.
175*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
176*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
177*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
178*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
179*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
180*4d7e907cSAndroid Build Coastguard Worker   */
181*4d7e907cSAndroid Build Coastguard Worker  initiateTdlsTeardown(MacAddress macAddress)
182*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
183*4d7e907cSAndroid Build Coastguard Worker
184*4d7e907cSAndroid Build Coastguard Worker  /**
185*4d7e907cSAndroid Build Coastguard Worker   * Initiate ANQP (for IEEE 802.11u Interworking/Hotspot 2.0) queries with the
186*4d7e907cSAndroid Build Coastguard Worker   * specified access point.
187*4d7e907cSAndroid Build Coastguard Worker   * The ANQP data fetched must be returned in the
188*4d7e907cSAndroid Build Coastguard Worker   * |ISupplicantStaIfaceCallback.onAnqpQueryDone| callback.
189*4d7e907cSAndroid Build Coastguard Worker   *
190*4d7e907cSAndroid Build Coastguard Worker   * @param macAddress MAC address of the access point.
191*4d7e907cSAndroid Build Coastguard Worker   * @param infoElements List of information elements to query for.
192*4d7e907cSAndroid Build Coastguard Worker   * @param subtypes List of HS20 subtypes to query for.
193*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
194*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
195*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
196*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
197*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
198*4d7e907cSAndroid Build Coastguard Worker   */
199*4d7e907cSAndroid Build Coastguard Worker  initiateAnqpQuery(MacAddress macAddress,
200*4d7e907cSAndroid Build Coastguard Worker                    vec<AnqpInfoId> infoElements,
201*4d7e907cSAndroid Build Coastguard Worker                    vec<Hs20AnqpSubtypes> subTypes)
202*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
203*4d7e907cSAndroid Build Coastguard Worker
204*4d7e907cSAndroid Build Coastguard Worker  /**
205*4d7e907cSAndroid Build Coastguard Worker   * Initiate the Hotspot 2.0 icon query with the specified accesss point.
206*4d7e907cSAndroid Build Coastguard Worker   * The icon data fetched must be returned in the
207*4d7e907cSAndroid Build Coastguard Worker   * |ISupplicantStaIfaceCallback.onHs20IconQueryDone| callback.
208*4d7e907cSAndroid Build Coastguard Worker   *
209*4d7e907cSAndroid Build Coastguard Worker   * @param macAddress MAC address of the access point.
210*4d7e907cSAndroid Build Coastguard Worker   * @param fileName Name of the file to request from the access point.
211*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
212*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
213*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
214*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
215*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
216*4d7e907cSAndroid Build Coastguard Worker   */
217*4d7e907cSAndroid Build Coastguard Worker  initiateHs20IconQuery(MacAddress macAddress, string fileName)
218*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
219*4d7e907cSAndroid Build Coastguard Worker
220*4d7e907cSAndroid Build Coastguard Worker  /**
221*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to get MAC address of the device.
222*4d7e907cSAndroid Build Coastguard Worker   *
223*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
224*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
225*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
226*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
227*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
228*4d7e907cSAndroid Build Coastguard Worker   * @return macAddr MAC address of the device.
229*4d7e907cSAndroid Build Coastguard Worker   */
230*4d7e907cSAndroid Build Coastguard Worker  getMacAddress()
231*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status, MacAddress macAddr);
232*4d7e907cSAndroid Build Coastguard Worker
233*4d7e907cSAndroid Build Coastguard Worker  /**
234*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to start RX filter.
235*4d7e907cSAndroid Build Coastguard Worker   *
236*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
237*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
238*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
239*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
240*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
241*4d7e907cSAndroid Build Coastguard Worker   */
242*4d7e907cSAndroid Build Coastguard Worker  startRxFilter() generates (SupplicantStatus status);
243*4d7e907cSAndroid Build Coastguard Worker
244*4d7e907cSAndroid Build Coastguard Worker  /**
245*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to stop RX filter.
246*4d7e907cSAndroid Build Coastguard Worker   *
247*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
248*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
249*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
250*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
251*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
252*4d7e907cSAndroid Build Coastguard Worker   */
253*4d7e907cSAndroid Build Coastguard Worker  stopRxFilter() generates (SupplicantStatus status);
254*4d7e907cSAndroid Build Coastguard Worker
255*4d7e907cSAndroid Build Coastguard Worker  /**
256*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to add the specified RX filter.
257*4d7e907cSAndroid Build Coastguard Worker   *
258*4d7e907cSAndroid Build Coastguard Worker   * @param type Type of filter.
259*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
260*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
261*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
262*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
263*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
264*4d7e907cSAndroid Build Coastguard Worker   */
265*4d7e907cSAndroid Build Coastguard Worker  addRxFilter(RxFilterType type)
266*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
267*4d7e907cSAndroid Build Coastguard Worker
268*4d7e907cSAndroid Build Coastguard Worker  /**
269*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to remove the specified RX filter.
270*4d7e907cSAndroid Build Coastguard Worker   *
271*4d7e907cSAndroid Build Coastguard Worker   * @param type Type of filter.
272*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
273*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
274*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
275*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
276*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
277*4d7e907cSAndroid Build Coastguard Worker   */
278*4d7e907cSAndroid Build Coastguard Worker  removeRxFilter(RxFilterType type)
279*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
280*4d7e907cSAndroid Build Coastguard Worker
281*4d7e907cSAndroid Build Coastguard Worker  /**
282*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to set Bluetooth coexistence mode.
283*4d7e907cSAndroid Build Coastguard Worker   *
284*4d7e907cSAndroid Build Coastguard Worker   * @param mode Mode of Bluetooth coexistence.
285*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
286*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
287*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
288*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
289*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
290*4d7e907cSAndroid Build Coastguard Worker   */
291*4d7e907cSAndroid Build Coastguard Worker  setBtCoexistenceMode(BtCoexistenceMode mode)
292*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
293*4d7e907cSAndroid Build Coastguard Worker
294*4d7e907cSAndroid Build Coastguard Worker  /**
295*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to set Bluetooth coexistence scan mode.
296*4d7e907cSAndroid Build Coastguard Worker   * When this mode is on, some of the low-level scan parameters
297*4d7e907cSAndroid Build Coastguard Worker   * used by the driver are changed to reduce interference
298*4d7e907cSAndroid Build Coastguard Worker   * with A2DP streaming.
299*4d7e907cSAndroid Build Coastguard Worker   *
300*4d7e907cSAndroid Build Coastguard Worker   * @param enable true to enable, false to disable.
301*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
302*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
303*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
304*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
305*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
306*4d7e907cSAndroid Build Coastguard Worker   */
307*4d7e907cSAndroid Build Coastguard Worker  setBtCoexistenceScanModeEnabled(bool enable)
308*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
309*4d7e907cSAndroid Build Coastguard Worker
310*4d7e907cSAndroid Build Coastguard Worker  /**
311*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to set suspend optimizations for power save.
312*4d7e907cSAndroid Build Coastguard Worker   *
313*4d7e907cSAndroid Build Coastguard Worker   * @param enable true to enable, false to disable.
314*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
315*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
316*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
317*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
318*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
319*4d7e907cSAndroid Build Coastguard Worker   */
320*4d7e907cSAndroid Build Coastguard Worker  setSuspendModeEnabled(bool enable)
321*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
322*4d7e907cSAndroid Build Coastguard Worker
323*4d7e907cSAndroid Build Coastguard Worker  /**
324*4d7e907cSAndroid Build Coastguard Worker   * Send driver command to set country code.
325*4d7e907cSAndroid Build Coastguard Worker   *
326*4d7e907cSAndroid Build Coastguard Worker   * @param code 2 byte country code (as defined in ISO 3166) to set.
327*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
328*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
329*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
330*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
331*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
332*4d7e907cSAndroid Build Coastguard Worker   */
333*4d7e907cSAndroid Build Coastguard Worker  setCountryCode(int8_t[2] code)
334*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
335*4d7e907cSAndroid Build Coastguard Worker
336*4d7e907cSAndroid Build Coastguard Worker  /**
337*4d7e907cSAndroid Build Coastguard Worker   * Initiate WPS setup in registrar role to learn the current AP configuration.
338*4d7e907cSAndroid Build Coastguard Worker   *
339*4d7e907cSAndroid Build Coastguard Worker   * @param bssid BSSID of the AP.
340*4d7e907cSAndroid Build Coastguard Worker   * @param pin Pin of the AP.
341*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
342*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
343*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
344*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
345*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
346*4d7e907cSAndroid Build Coastguard Worker   */
347*4d7e907cSAndroid Build Coastguard Worker  startWpsRegistrar(Bssid bssid, string pin)
348*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status);
349*4d7e907cSAndroid Build Coastguard Worker
350*4d7e907cSAndroid Build Coastguard Worker  /**
351*4d7e907cSAndroid Build Coastguard Worker   * Initiate WPS Push Button setup.
352*4d7e907cSAndroid Build Coastguard Worker   * The PBC operation requires that a button is also pressed at the
353*4d7e907cSAndroid Build Coastguard Worker   * AP/Registrar at about the same time (2 minute window).
354*4d7e907cSAndroid Build Coastguard Worker   *
355*4d7e907cSAndroid Build Coastguard Worker   * @param bssid BSSID of the AP. Use zero'ed bssid to indicate wildcard.
356*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
357*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
358*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
359*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
360*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
361*4d7e907cSAndroid Build Coastguard Worker   */
362*4d7e907cSAndroid Build Coastguard Worker  startWpsPbc(Bssid bssid) generates (SupplicantStatus status);
363*4d7e907cSAndroid Build Coastguard Worker
364*4d7e907cSAndroid Build Coastguard Worker  /**
365*4d7e907cSAndroid Build Coastguard Worker   * Initiate WPS Pin Keypad setup.
366*4d7e907cSAndroid Build Coastguard Worker   *
367*4d7e907cSAndroid Build Coastguard Worker   * @param pin 8 digit pin to be used.
368*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
369*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
370*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
371*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
372*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
373*4d7e907cSAndroid Build Coastguard Worker   */
374*4d7e907cSAndroid Build Coastguard Worker  startWpsPinKeypad(string pin) generates (SupplicantStatus status);
375*4d7e907cSAndroid Build Coastguard Worker
376*4d7e907cSAndroid Build Coastguard Worker  /**
377*4d7e907cSAndroid Build Coastguard Worker   * Initiate WPS Pin Display setup.
378*4d7e907cSAndroid Build Coastguard Worker   *
379*4d7e907cSAndroid Build Coastguard Worker   * @param bssid BSSID of the AP. Use zero'ed bssid to indicate wildcard.
380*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
381*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
382*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
383*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
384*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
385*4d7e907cSAndroid Build Coastguard Worker   * @return generatedPin 8 digit pin generated.
386*4d7e907cSAndroid Build Coastguard Worker   */
387*4d7e907cSAndroid Build Coastguard Worker  startWpsPinDisplay(Bssid bssid)
388*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status, string generatedPin);
389*4d7e907cSAndroid Build Coastguard Worker
390*4d7e907cSAndroid Build Coastguard Worker  /**
391*4d7e907cSAndroid Build Coastguard Worker   * Cancel any ongoing WPS operations.
392*4d7e907cSAndroid Build Coastguard Worker   *
393*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
394*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
395*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
396*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
397*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
398*4d7e907cSAndroid Build Coastguard Worker   */
399*4d7e907cSAndroid Build Coastguard Worker  cancelWps() generates (SupplicantStatus status);
400*4d7e907cSAndroid Build Coastguard Worker
401*4d7e907cSAndroid Build Coastguard Worker  /**
402*4d7e907cSAndroid Build Coastguard Worker   * Use external processing for SIM/USIM operations
403*4d7e907cSAndroid Build Coastguard Worker   *
404*4d7e907cSAndroid Build Coastguard Worker   * @param useExternalSim true to use external, false otherwise.
405*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
406*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
407*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
408*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
409*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
410*4d7e907cSAndroid Build Coastguard Worker   */
411*4d7e907cSAndroid Build Coastguard Worker  setExternalSim(bool useExternalSim) generates (SupplicantStatus status);
412*4d7e907cSAndroid Build Coastguard Worker
413*4d7e907cSAndroid Build Coastguard Worker  /**
414*4d7e907cSAndroid Build Coastguard Worker   * External programs can request supplicant to not start offchannel
415*4d7e907cSAndroid Build Coastguard Worker   * operations during other tasks that may need exclusive control of the
416*4d7e907cSAndroid Build Coastguard Worker   * radio.
417*4d7e907cSAndroid Build Coastguard Worker   *
418*4d7e907cSAndroid Build Coastguard Worker   * This method can be used to reserve a slot for radio access. If freq is
419*4d7e907cSAndroid Build Coastguard Worker   * specified, other radio work items on the same channel can be completed in
420*4d7e907cSAndroid Build Coastguard Worker   * parallel. Otherwise, all other radio work items are blocked during
421*4d7e907cSAndroid Build Coastguard Worker   * execution. Timeout must be set to |ExtRadioWorkDefaults.TIMEOUT_IN_SECS|
422*4d7e907cSAndroid Build Coastguard Worker   * seconds by default to avoid blocking supplicant operations on the iface
423*4d7e907cSAndroid Build Coastguard Worker   * for excessive time. If a longer (or shorter) safety timeout is needed,
424*4d7e907cSAndroid Build Coastguard Worker   * that may be specified with the optional timeout parameter. This command
425*4d7e907cSAndroid Build Coastguard Worker   * returns an identifier for the radio work item.
426*4d7e907cSAndroid Build Coastguard Worker   *
427*4d7e907cSAndroid Build Coastguard Worker   * Once the radio work item has been started,
428*4d7e907cSAndroid Build Coastguard Worker   * |ISupplicant.onExtRadioWorkStart| callback is indicated that the external
429*4d7e907cSAndroid Build Coastguard Worker   * processing can start.
430*4d7e907cSAndroid Build Coastguard Worker   *
431*4d7e907cSAndroid Build Coastguard Worker   * @param name Name for the radio work being added.
432*4d7e907cSAndroid Build Coastguard Worker   * @param freqInMhz Frequency to specify. Set to 0 for all channels.
433*4d7e907cSAndroid Build Coastguard Worker   * @param timeoutInSec Timeout tospecify. Set to 0 for default timeout.
434*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
435*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
436*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
437*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|
438*4d7e907cSAndroid Build Coastguard Worker   * @return id Identifier for this radio work.
439*4d7e907cSAndroid Build Coastguard Worker   */
440*4d7e907cSAndroid Build Coastguard Worker  addExtRadioWork(string name, uint32_t freqInMhz, uint32_t timeoutInSec)
441*4d7e907cSAndroid Build Coastguard Worker      generates (SupplicantStatus status, uint32_t id);
442*4d7e907cSAndroid Build Coastguard Worker
443*4d7e907cSAndroid Build Coastguard Worker  /**
444*4d7e907cSAndroid Build Coastguard Worker   * Indicates to supplicant that the external radio work has completed.
445*4d7e907cSAndroid Build Coastguard Worker   * This allows other radio works to be performed. If this method is not
446*4d7e907cSAndroid Build Coastguard Worker   * invoked (e.g., due to the external program terminating), supplicant
447*4d7e907cSAndroid Build Coastguard Worker   * must time out the radio work item on the iface and send
448*4d7e907cSAndroid Build Coastguard Worker   * |ISupplicantCallback.onExtRadioWorkTimeout| event to indicate
449*4d7e907cSAndroid Build Coastguard Worker   * that this has happened.
450*4d7e907cSAndroid Build Coastguard Worker   *
451*4d7e907cSAndroid Build Coastguard Worker   * This method may also be used to cancel items that have been scheduled
452*4d7e907cSAndroid Build Coastguard Worker   * via |addExtRadioWork|, but have not yet been started (notified via
453*4d7e907cSAndroid Build Coastguard Worker   * |ISupplicantCallback.onExtRadioWorkStart|).
454*4d7e907cSAndroid Build Coastguard Worker   *
455*4d7e907cSAndroid Build Coastguard Worker   * @return id Identifier generated for the radio work addition
456*4d7e907cSAndroid Build Coastguard Worker   *         (using |addExtRadioWork|).
457*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
458*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
459*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
460*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|
461*4d7e907cSAndroid Build Coastguard Worker   */
462*4d7e907cSAndroid Build Coastguard Worker  removeExtRadioWork(uint32_t id) generates (SupplicantStatus status);
463*4d7e907cSAndroid Build Coastguard Worker
464*4d7e907cSAndroid Build Coastguard Worker  /**
465*4d7e907cSAndroid Build Coastguard Worker   * Enable/Disable auto reconnect to networks.
466*4d7e907cSAndroid Build Coastguard Worker   * Use this to prevent wpa_supplicant from trying to connect to networks
467*4d7e907cSAndroid Build Coastguard Worker   * on its own.
468*4d7e907cSAndroid Build Coastguard Worker   *
469*4d7e907cSAndroid Build Coastguard Worker   * @param enable true to enable, false to disable.
470*4d7e907cSAndroid Build Coastguard Worker   * @return status Status of the operation.
471*4d7e907cSAndroid Build Coastguard Worker   *         Possible status codes:
472*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.SUCCESS|,
473*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
474*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
475*4d7e907cSAndroid Build Coastguard Worker   *         |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
476*4d7e907cSAndroid Build Coastguard Worker   */
477*4d7e907cSAndroid Build Coastguard Worker  enableAutoReconnect(bool enable) generates (SupplicantStatus status);
478*4d7e907cSAndroid Build Coastguard Worker};
479