blob: ed0b49faa69fcb835ad9b800d68ff381ceaae049 [file] [log] [blame]
Roshan Pius39f588f2016-10-31 14:51:27 -07001/*
2 * Copyright 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
17package android.hardware.wifi.supplicant@1.0;
18
19import ISupplicantIface;
20import ISupplicantP2pIfaceCallback;
21
22/**
Roshan Pius8c6a8772016-11-03 09:37:57 -070023 * Interface exposed by the supplicant for each P2P mode network
Roshan Pius39f588f2016-10-31 14:51:27 -070024 * interface (e.g p2p0) it controls.
25 */
26interface ISupplicantP2pIface extends ISupplicantIface {
Roshan Pius756ad992016-11-07 10:29:48 -080027 enum WpsProvisionMethod : uint32_t {
28 /**
29 * Push button method.
30 */
31 PBC,
32 /**
33 * Display pin method configuration - pin is generated and displayed on
34 * device.
35 */
36 DISPLAY,
37 /**
38 * Keypad pin method configuration - pin is entered on device.
39 */
Roshan Pius282a0b32016-12-08 11:08:14 -080040 KEYPAD
Roshan Pius756ad992016-11-07 10:29:48 -080041 };
42
Roshan Pius39f588f2016-10-31 14:51:27 -070043 /**
Roshan Pius282a0b32016-12-08 11:08:14 -080044 * Use to specify a range of frequencies.
45 * For example: 2412-2432,2462,5000-6000, etc.
46 */
47 struct FreqRange {
48 uint32_t min;
49 uint32_t max;
50 };
51
52 /**
Roshan Pius3f050c12016-12-14 08:06:58 -080053 * Enum describing the modes of Miracast supported
54 * via driver commands.
55 */
56 enum MiracastMode : uint8_t {
57 DISABLED = 0,
58 /**
59 * Operating as source.
60 */
61 SOURCE = 1,
62 /**
63 * Operating as sink.
64 */
65 SINK = 2
66 };
67
68 /**
Roshan Pius39f588f2016-10-31 14:51:27 -070069 * Register for callbacks from this interface.
70 *
71 * These callbacks are invoked for events that are specific to this interface.
72 * Registration of multiple callback objects is supported. These objects must
73 * be automatically deleted when the corresponding client process is dead or
74 * if this interface is removed.
75 *
76 * @param callback An instance of the |ISupplicantP2pIfaceCallback| HIDL
77 * interface object.
78 * @return status Status of the operation.
79 * Possible status codes:
80 * |SupplicantStatusCode.SUCCESS|,
81 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
82 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
83 */
84 registerCallback(ISupplicantP2pIfaceCallback callback)
85 generates (SupplicantStatus status);
Roshan Pius756ad992016-11-07 10:29:48 -080086
87 /**
88 * Gets the MAC address of the device.
89 *
90 * @return status Status of the operation.
91 * Possible status codes:
92 * |SupplicantStatusCode.SUCCESS|,
93 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
94 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
95 * @return deviceAddress MAC address of the device.
96 */
97 getDeviceAddress()
98 generates (SupplicantStatus status, MacAddress deviceAddress);
99
100 /**
101 * Set the postfix to be used for P2P SSID's.
102 *
103 * @param postfix String to be appended to SSID.
104 * @return status Status of the operation.
105 * Possible status codes:
106 * |SupplicantStatusCode.SUCCESS|,
107 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
108 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
109 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
110 */
Roshan Pius282a0b32016-12-08 11:08:14 -0800111 setSsidPostfix(vec<uint8_t> postfix) generates (SupplicantStatus status);
Roshan Pius756ad992016-11-07 10:29:48 -0800112
113 /**
114 * Set the Maximum idle time in seconds for P2P groups.
115 * This value controls how long a P2P group is maintained after there
116 * is no other members in the group. As a group owner, this means no
117 * associated stations in the group. As a P2P client, this means no
118 * group owner seen in scan results.
119 *
Roshan Pius282a0b32016-12-08 11:08:14 -0800120 * @param groupIfName Group interface name to use.
Roshan Pius756ad992016-11-07 10:29:48 -0800121 * @param timeoutInSec Timeout value in seconds.
122 * @return status Status of the operation.
123 * Possible status codes:
124 * |SupplicantStatusCode.SUCCESS|,
125 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
126 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
127 */
Roshan Pius282a0b32016-12-08 11:08:14 -0800128 setGroupIdle(string groupIfName, uint32_t timeoutInSec)
129 generates (SupplicantStatus status);
Roshan Pius756ad992016-11-07 10:29:48 -0800130
131 /**
132 * Turn on/off power save mode for the interface.
133 *
Roshan Pius282a0b32016-12-08 11:08:14 -0800134 * @param groupIfName Group interface name to use.
Roshan Pius756ad992016-11-07 10:29:48 -0800135 * @param enable Indicate if power save is to be turned on/off.
136 * @return status Status of the operation.
137 * Possible status codes:
138 * |SupplicantStatusCode.SUCCESS|,
139 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
140 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
141 * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
142 */
Roshan Pius282a0b32016-12-08 11:08:14 -0800143 setPowerSave(string groupIfName, bool enable)
144 generates (SupplicantStatus status);
Roshan Pius756ad992016-11-07 10:29:48 -0800145
146 /**
147 * Initiate a P2P service discovery with an optional timeout.
148 *
149 * @param timeoutInSec Max time to be spent is peforming discovery.
150 * Set to 0 to indefinely continue discovery untill and explicit
151 * |stopFind| is sent.
152 * @return status Status of the operation.
153 * Possible status codes:
154 * |SupplicantStatusCode.SUCCESS|,
155 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
156 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
157 */
158 find(uint32_t timeoutInSec) generates (SupplicantStatus status);
159
160 /**
161 * Stop an ongoing P2P service discovery.
162 *
163 * @return status Status of the operation.
164 * Possible status codes:
165 * |SupplicantStatusCode.SUCCESS|,
166 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
167 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
168 */
169 stopFind() generates (SupplicantStatus status);
170
171 /**
172 * Flush P2P peer table and state.
173 *
174 * @return status Status of the operation.
175 * Possible status codes:
176 * |SupplicantStatusCode.SUCCESS|,
177 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
178 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
179 */
180 flush() generates (SupplicantStatus status);
181
182 /**
183 * Start P2P group formation with a discovered P2P peer. This includes
184 * optional group owner negotiation, group interface setup, provisioning,
185 * and establishing data connection.
186 *
187 * @param peerAddress MAC address of the device to connect to.
188 * @method provisionMethod Provisioning method to use.
189 * @param preSelectedPin Pin to be used, if |provisionMethod| uses one of the
190 * preselected |PIN*| methods.
191 * @param joinExistingGroup Indicates that this is a command to join an
192 * existing group as a client. It skips the group owner negotiation
193 * part. This must send a Provision Discovery Request message to the
194 * target group owner before associating for WPS provisioning.
195 * @param persistent Used to request a persistent group to be formed.
196 * @param goIntent Used to override the default Intent for this group owner
197 * negotiation (Values from 1-15). Refer to section 4.1.6 in
198 * Wi-Fi Peer-to-Peer (P2P) Technical Specification Version 1.7.
199 * @return status Status of the operation.
200 * Possible status codes:
201 * |SupplicantStatusCode.SUCCESS|,
202 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
203 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
204 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
205 * @return generatedPin Pin generated, if |provisionMethod| uses one of the
206 * generated |PIN*| methods.
207 */
208 connect(MacAddress peerAddress,
209 WpsProvisionMethod provisionMethod,
Roshan Pius282a0b32016-12-08 11:08:14 -0800210 string preSelectedPin,
Roshan Pius756ad992016-11-07 10:29:48 -0800211 bool joinExistingGroup,
212 bool persistent,
213 uint32_t goIntent)
Roshan Pius282a0b32016-12-08 11:08:14 -0800214 generates (SupplicantStatus status, string generatedPin);
Roshan Pius756ad992016-11-07 10:29:48 -0800215
216 /**
217 * Cancel an ongoing P2P group formation and joining-a-group related
218 * operation. This operation unauthorizes the specific peer device (if any
219 * had been authorized to start group formation), stops P2P find (if in
220 * progress), stops pending operations for join-a-group, and removes the
221 * P2P group interface (if one was used) that is in the WPS provisioning
222 * step. If the WPS provisioning step has been completed, the group is not
223 * terminated.
224 *
225 * @return status Status of the operation.
226 * Possible status codes:
227 * |SupplicantStatusCode.SUCCESS|,
228 * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
229 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
230 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
231 */
232 cancelConnect() generates (SupplicantStatus status);
233
234 /**
235 * Send P2P provision discovery request to the specified peer. The
236 * parameters for this command are the P2P device address of the peer and the
237 * desired configuration method.
238 *
239 * @param peerAddress MAC address of the device to send discovery.
240 * @method provisionMethod Provisioning method to use.
241 * @return status Status of the operation.
242 * Possible status codes:
243 * |SupplicantStatusCode.SUCCESS|,
244 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
245 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
246 */
247 provisionDiscovery(MacAddress peerAddress,
248 WpsProvisionMethod provisionMethod)
249 generates (SupplicantStatus status);
250
251 /**
252 * Set up a P2P group owner manually (i.e., without group owner
253 * negotiation with a specific peer). This is also known as autonomous
Roshan Pius43a4e122017-01-11 08:17:59 -0800254 * group owner. Optional |persistentNetworkId| may be used to specify
255 * restart of a persistent group.
Roshan Pius756ad992016-11-07 10:29:48 -0800256 *
257 * @param persistent Used to request a persistent group to be formed.
258 * @param persistentNetworkId Used to specify the restart of a persistent
Roshan Pius43a4e122017-01-11 08:17:59 -0800259 * group. Set to UINT32_MAX for a non-persistent group.
Roshan Pius756ad992016-11-07 10:29:48 -0800260 * @return status Status of the operation.
261 * Possible status codes:
262 * |SupplicantStatusCode.SUCCESS|,
263 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
264 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
265 */
266 addGroup(bool persistent, SupplicantNetworkId persistentNetworkId)
267 generates (SupplicantStatus status);
268
269 /**
270 * Terminate a P2P group. If a new virtual network interface was used for
271 * the group, it must also be removed. The network interface name of the
272 * group interface is used as a parameter for this command.
273 *
274 * @param groupIfName Group interface name to use.
275 * @return status Status of the operation.
276 * Possible status codes:
277 * |SupplicantStatusCode.SUCCESS|,
278 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
279 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
280 */
281 removeGroup(string groupIfName) generates (SupplicantStatus status);
282
283 /**
284 * Reject connection attempt from a peer (specified with a device
285 * address). This is a mechanism to reject a pending group owner negotiation
286 * with a peer and request to automatically block any further connection or
287 * discovery of the peer.
288 *
289 * @param peerAddress MAC address of the device to reject.
290 * @return status Status of the operation.
291 * Possible status codes:
292 * |SupplicantStatusCode.SUCCESS|,
293 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
294 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
295 */
296 reject(MacAddress peerAddress) generates (SupplicantStatus status);
297
298 /**
299 * Invite a device to a persistent group.
300 * If the peer device is the group owner of the persistent group, the peer
301 * parameter is not needed. Otherwise it is used to specify which
302 * device to invite. |goDeviceAddress| parameter may be used to override
303 * the group owner device address for Invitation Request should it not be
304 * known for some reason (this should not be needed in most cases).
305 *
306 * @param groupIfName Group interface name to use.
307 * @param goDeviceAddress MAC address of the group owner device.
308 * @param peerAddress MAC address of the device to invite.
309 * @return status Status of the operation.
310 * Possible status codes:
311 * |SupplicantStatusCode.SUCCESS|,
312 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
313 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
314 */
315 invite(string groupIfName, MacAddress goDeviceAddress, MacAddress peerAddress)
316 generates (SupplicantStatus status);
317
318 /**
319 * Reinvoke a device from a persistent group.
320 *
321 * @param persistentNetworkId Used to specify the persistent group.
322 * @param peerAddress MAC address of the device to reinvoke.
323 * @return status Status of the operation.
324 * Possible status codes:
325 * |SupplicantStatusCode.SUCCESS|,
326 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
327 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
328 */
329 reinvoke(SupplicantNetworkId persistentNetworkId, MacAddress peerAddress)
330 generates (SupplicantStatus status);
331
332 /**
333 * Configure Extended Listen Timing.
334 *
335 * If enabled, listen state must be entered every |intervalInMillis| for at
336 * least |periodInMillis|. Both values have acceptable range of 1-65535
337 * (with interval obviously having to be larger than or equal to duration).
338 * If the P2P module is not idle at the time the Extended Listen Timing
339 * timeout occurs, the Listen State operation must be skipped.
340 *
341 * @param periodInMillis Period in milliseconds.
342 * @param intervalInMillis Interval in milliseconds.
343 * @return status Status of the operation.
344 * Possible status codes:
345 * |SupplicantStatusCode.SUCCESS|,
346 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
347 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
348 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
349 */
Roshan Piuse663f832016-12-16 15:32:27 -0800350 configureExtListen(uint32_t periodInMillis,
Roshan Pius756ad992016-11-07 10:29:48 -0800351 uint32_t intervalInMillis)
352 generates (SupplicantStatus status);
353
354 /**
355 * Set P2P Listen channel.
356 *
357 * When specifying a social channel on the 2.4 GHz band (1/6/11) there is no
358 * need to specify the operating class since it defaults to 81. When
359 * specifying a social channel on the 60 GHz band (2), specify the 60 GHz
360 * operating class (180).
361 *
362 * @param channel Wifi channel. eg, 1, 6, 11.
363 * @param operatingClass Operating Class indicates the channel set of the AP
364 * indicated by this BSSID
365 * @return status Status of the operation.
366 * Possible status codes:
367 * |SupplicantStatusCode.SUCCESS|,
368 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
369 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
370 */
371 setListenChannel(uint32_t channel, uint32_t operatingClass)
372 generates (SupplicantStatus status);
373
374 /**
Roshan Pius282a0b32016-12-08 11:08:14 -0800375 * Set P2P disallowed frequency ranges.
376 *
377 * Specify ranges of frequencies that are disallowed for any p2p operations.
378
379 * @param ranges List of ranges which needs to be disallowed.
380 * @return status Status of the operation.
381 * Possible status codes:
382 * |SupplicantStatusCode.SUCCESS|,
383 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
384 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
385 */
386 setDisallowedFrequencies(vec<FreqRange> ranges)
387 generates (SupplicantStatus status);
388
389 /**
Roshan Pius756ad992016-11-07 10:29:48 -0800390 * Gets the operational SSID of the device.
391 *
392 * @param peerAddress MAC address of the peer.
393 * @return status Status of the operation.
394 * Possible status codes:
395 * |SupplicantStatusCode.SUCCESS|,
396 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
397 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
398 * @return ssid SSID of the device
399 */
400 getSsid(MacAddress peerAddress)
401 generates (SupplicantStatus status, Ssid ssid);
402
403 /**
404 * Gets the capability of the group which the device is a
405 * member of.
406 *
407 * @param peerAddress MAC address of the peer.
408 * @return status Status of the operation.
409 * Possible status codes:
410 * |SupplicantStatusCode.SUCCESS|,
411 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
412 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
413 * @return capabilityMask Combination of |GroupCapabilityMask| values.
414 */
415 getGroupCapability(MacAddress peerAddress)
416 generates (SupplicantStatus status, uint32_t capabilities);
417
418 /**
419 * This command can be used to add a bonjour service.
420 *
421 * @param query Hex dump of the query data.
422 * @param return Hex dump of the response data.
423 * @return status Status of the operation.
424 * Possible status codes:
425 * |SupplicantStatusCode.SUCCESS|,
426 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
427 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
428 */
429 addBonjourService(vec<uint8_t> query, vec<uint8_t> response)
430 generates (SupplicantStatus status);
431
432 /**
433 * This command can be used to remove a bonjour service.
434 *
435 * @param query Hex dump of the query data.
436 * @return status Status of the operation.
437 * Possible status codes:
438 * |SupplicantStatusCode.SUCCESS|,
439 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
440 * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
441 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
442 */
443 removeBonjourService(vec<uint8_t> query) generates (SupplicantStatus status);
444
445 /**
446 * This command can be used to add a UPNP service.
447 *
448 * @param version Version to be used.
449 * @package serviceName Service name to be used.
450 * @return status Status of the operation.
451 * Possible status codes:
452 * |SupplicantStatusCode.SUCCESS|,
453 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
454 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
455 */
456 addUpnpService(uint32_t version, string serviceName)
457 generates (SupplicantStatus status);
458
459 /**
460 * This command can be used to remove a UPNP service.
461 *
462 * @param version Version to be used.
463 * @package serviceName Service name to be used.
464 * @return status Status of the operation.
465 * Possible status codes:
466 * |SupplicantStatusCode.SUCCESS|,
467 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
468 * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
469 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
470 */
471 removeUpnpService(uint32_t version, string serviceName)
472 generates (SupplicantStatus status);
473
474 /**
475 * This command can be used to flush all services from the
476 * device.
477 *
478 * @return status Status of the operation.
479 * Possible status codes:
480 * |SupplicantStatusCode.SUCCESS|,
481 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
482 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
483 */
Roshan Piuse663f832016-12-16 15:32:27 -0800484 flushServices() generates (SupplicantStatus status);
Roshan Pius756ad992016-11-07 10:29:48 -0800485
486 /**
487 * Schedule a P2P service discovery request. The parameters for this command
488 * are the device address of the peer device (or 00:00:00:00:00:00 for
489 * wildcard query that is sent to every discovered P2P peer that supports
490 * service discovery) and P2P Service Query TLV(s) as hexdump.
491 *
492 * @param peerAddress MAC address of the device to discover.
493 * @param query Hex dump of the query data.
494 * @return status Status of the operation.
495 * Possible status codes:
496 * |SupplicantStatusCode.SUCCESS|,
497 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
498 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
499 * @return identifier Identifier for the request. Can be used to cancel the
500 * request.
501 */
502 requestServiceDiscovery(MacAddress peerAddress, vec<uint8_t> query)
503 generates (SupplicantStatus status, uint64_t identifier);
504
505 /**
506 * Cancel a previous service discovery request.
507 *
508 * @return identifier Identifier for the request to cancel.
509 * @return status Status of the operation.
510 * Possible status codes:
511 * |SupplicantStatusCode.SUCCESS|,
512 * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
513 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
514 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
515 */
516 cancelServiceDiscovery(uint64_t identifier)
517 generates (SupplicantStatus status);
Roshan Pius3f050c12016-12-14 08:06:58 -0800518
519 /**
520 * Send driver command to set Miracast mode.
521 *
522 * @param mode Mode of Miracast.
523 * @return status Status of the operation.
524 * Possible status codes:
525 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius09f2ce32017-01-11 14:05:17 -0800526 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
527 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
Roshan Pius3f050c12016-12-14 08:06:58 -0800528 */
529 setMiracastMode(MiracastMode mode)
530 generates (SupplicantStatus status);
Roshan Pius08e6bba2017-01-10 14:10:19 -0800531
532 /**
533 * Initiate WPS Push Button setup.
534 * The PBC operation requires that a button is also pressed at the
535 * AP/Registrar at about the same time (2 minute window).
536 *
537 * @param groupIfName Group interface name to use.
538 * @param bssid BSSID of the AP. Use zero'ed bssid to indicate wildcard.
539 * @return status Status of the operation.
540 * Possible status codes:
541 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius09f2ce32017-01-11 14:05:17 -0800542 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
543 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
Roshan Pius08e6bba2017-01-10 14:10:19 -0800544 */
545 startWpsPbc(string groupIfName, Bssid bssid)
546 generates (SupplicantStatus status);
547
548 /**
549 * Initiate WPS Pin Keypad setup.
550 *
551 * @param groupIfName Group interface name to use.
552 * @param pin 8 digit pin to be used.
553 * @return status Status of the operation.
554 * Possible status codes:
555 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius09f2ce32017-01-11 14:05:17 -0800556 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
557 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
Roshan Pius08e6bba2017-01-10 14:10:19 -0800558 */
559 startWpsPinKeypad(string groupIfName, string pin)
560 generates (SupplicantStatus status);
561
562 /**
563 * Initiate WPS Pin Display setup.
564 *
565 * @param groupIfName Group interface name to use.
566 * @param bssid BSSID of the AP. Use zero'ed bssid to indicate wildcard.
567 * @return status Status of the operation.
568 * Possible status codes:
569 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius09f2ce32017-01-11 14:05:17 -0800570 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
571 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
Roshan Pius08e6bba2017-01-10 14:10:19 -0800572 * @return generatedPin 8 digit pin generated.
573 */
574 startWpsPinDisplay(string groupIfName, Bssid bssid)
575 generates (SupplicantStatus status, string generatedPin);
576
577 /**
578 * Cancel any ongoing WPS operations.
579 *
580 * @param groupIfName Group interface name to use.
581 * @return status Status of the operation.
582 * Possible status codes:
583 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius09f2ce32017-01-11 14:05:17 -0800584 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
585 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
586
Roshan Pius08e6bba2017-01-10 14:10:19 -0800587 */
588 cancelWps(string groupIfName) generates (SupplicantStatus status);
Roshan Pius09f2ce32017-01-11 14:05:17 -0800589
590 /**
591 * Enable/Disable Wifi Display.
592 *
593 * @param enable true to enable, false to disable.
594 * @return status Status of the operation.
595 * Possible status codes:
596 * |SupplicantStatusCode.SUCCESS|,
597 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
598 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
599 */
600 enableWfd(bool enable) generates (SupplicantStatus status);
601
602 /**
603 * Set Wifi Display device info.
604 *
605 * @param info WFD device info as described in section 5.1.2 of WFD technical
606 * specification v1.0.0.
607 * @return status Status of the operation.
608 * Possible status codes:
609 * |SupplicantStatusCode.SUCCESS|,
610 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
611 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
612 */
613 setWfdDeviceInfo(uint8_t[8] info) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700614};