blob: 3649b7bf73458a5057aa5a2f9649719fd049e630 [file] [log] [blame]
Gabriel Biren910d5df2022-04-08 18:21:22 +00001/*
2 * Copyright (C) 2022 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;
18
Nate Jiang1590d092022-11-22 17:03:29 -080019import android.hardware.wifi.NanBootstrappingConfirmInd;
20import android.hardware.wifi.NanBootstrappingRequestInd;
Gabriel Biren910d5df2022-04-08 18:21:22 +000021import android.hardware.wifi.NanCapabilities;
22import android.hardware.wifi.NanClusterEventInd;
23import android.hardware.wifi.NanDataPathConfirmInd;
24import android.hardware.wifi.NanDataPathRequestInd;
25import android.hardware.wifi.NanDataPathScheduleUpdateInd;
26import android.hardware.wifi.NanFollowupReceivedInd;
27import android.hardware.wifi.NanMatchInd;
Nate Jiang1590d092022-11-22 17:03:29 -080028import android.hardware.wifi.NanPairingConfirmInd;
29import android.hardware.wifi.NanPairingRequestInd;
Gabriel Biren910d5df2022-04-08 18:21:22 +000030import android.hardware.wifi.NanStatus;
Nate Jiangd6cc3312023-02-14 16:37:54 -080031import android.hardware.wifi.NanSuspensionModeChangeInd;
Gabriel Biren910d5df2022-04-08 18:21:22 +000032/**
33 * NAN Response and Asynchronous Event Callbacks.
34 *
35 * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness
36 * Networking (NAN) Technical Specification".
37 */
38@VintfStability
39oneway interface IWifiNanIfaceEventCallback {
40 /**
41 * Callback indicating that a cluster event has been received.
42 *
43 * @param event NanClusterEventInd containing event details.
44 */
45 void eventClusterEvent(in NanClusterEventInd event);
46
47 /**
48 * Callback indicating that a data-path (NDP) setup has been completed.
49 * Received by both Initiator and Responder.
50 *
51 * @param event NanDataPathConfirmInd containing event details.
52 */
53 void eventDataPathConfirm(in NanDataPathConfirmInd event);
54
55 /**
56 * Callback indicating that a data-path (NDP) setup has been requested by
57 * an Initiator peer (received by the intended Responder).
58 *
59 * @param event NanDataPathRequestInd containing event details.
60 */
61 void eventDataPathRequest(in NanDataPathRequestInd event);
62
63 /**
64 * Callback indicating that a data-path (NDP) schedule has been updated
65 * (e.g. channels have been changed).
66 *
67 * @param event NanDataPathScheduleUpdateInd containing event details.
68 */
69 void eventDataPathScheduleUpdate(in NanDataPathScheduleUpdateInd event);
70
71 /**
72 * Callback indicating that a list of data-paths (NDP) have been terminated.
73 * Received by both Initiator and Responder.
74 *
75 * @param ndpInstanceId Data-path ID of the terminated data-path.
76 */
77 void eventDataPathTerminated(in int ndpInstanceId);
78
79 /**
80 * Callback indicating that a NAN has been disabled.
81 *
82 * @param status NanStatus describing the reason for the disable event.
83 * Possible status codes are:
84 * |NanStatusCode.SUCCESS|
85 * |NanStatusCode.UNSUPPORTED_CONCURRENCY_NAN_DISABLED|
86 */
87 void eventDisabled(in NanStatus status);
88
89 /**
90 * Callback indicating that a followup message has been received from a peer.
91 *
92 * @param event NanFollowupReceivedInd containing event details.
93 */
94 void eventFollowupReceived(in NanFollowupReceivedInd event);
95
96 /**
97 * Callback indicating that a match has occurred: i.e. a service has been
98 * discovered.
99 *
100 * @param event NanMatchInd containing event details.
101 */
102 void eventMatch(in NanMatchInd event);
103
104 /**
105 * Callback indicating that a previously discovered match (service) has expired.
106 *
107 * @param discoverySessionId Discovery session ID of the expired match.
108 * @param peerId Peer ID of the expired match.
109 */
110 void eventMatchExpired(in byte discoverySessionId, in int peerId);
111
112 /**
113 * Callback indicating that an active publish session has terminated.
114 *
115 * @param sessionId Discovery session ID of the terminated session.
116 * @param status NanStatus describing the reason for the session termination.
117 * Possible status codes are:
118 * |NanStatusCode.SUCCESS|
119 */
120 void eventPublishTerminated(in byte sessionId, in NanStatus status);
121
122 /**
123 * Callback indicating that an active subscribe session has terminated.
124 *
125 * @param sessionId Discovery session ID of the terminated session.
126 * @param status NanStatus describing the reason for the session termination.
127 * Possible status codes are:
128 * |NanStatusCode.SUCCESS|
129 */
130 void eventSubscribeTerminated(in byte sessionId, in NanStatus status);
131
132 /**
133 * Callback providing status on a completed followup message transmit operation.
134 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000135 * @param id Command ID corresponding to the original |transmitFollowupRequest| request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000136 * @param status NanStatus of the operation. Possible status codes are:
137 * |NanStatusCode.SUCCESS|
138 * |NanStatusCode.NO_OTA_ACK|
139 * |NanStatusCode.PROTOCOL_FAILURE|
140 */
141 void eventTransmitFollowup(in char id, in NanStatus status);
142
143 /**
Nate Jiangd6cc3312023-02-14 16:37:54 -0800144 * Callback indicating that device suspension mode status change
145 *
146 * @param event NanSuspensionModeChangeInd containing event details.
147 */
148 void eventSuspensionModeChanged(in NanSuspensionModeChangeInd event);
149
150 /**
Gabriel Biren910d5df2022-04-08 18:21:22 +0000151 * Callback invoked in response to a capability request
152 * |IWifiNanIface.getCapabilitiesRequest|.
153 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000154 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000155 * @param status NanStatus of the operation. Possible status codes are:
156 * |NanStatusCode.SUCCESS|
157 * @param capabilities Capability data.
158 */
159 void notifyCapabilitiesResponse(
160 in char id, in NanStatus status, in NanCapabilities capabilities);
161
162 /**
163 * Callback invoked in response to a config request |IWifiNanIface.configRequest|.
164 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000165 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000166 * @param status NanStatus of the operation. Possible status codes are:
167 * |NanStatusCode.SUCCESS|
168 * |NanStatusCode.INVALID_ARGS|
169 * |NanStatusCode.INTERNAL_FAILURE|
170 * |NanStatusCode.PROTOCOL_FAILURE|
171 */
172 void notifyConfigResponse(in char id, in NanStatus status);
173
174 /**
175 * Callback invoked in response to a create data interface request
176 * |IWifiNanIface.createDataInterfaceRequest|.
177 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000178 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000179 * @param status NanStatus of the operation. Possible status codes are:
180 * |NanStatusCode.SUCCESS|
181 * |NanStatusCode.INVALID_ARGS|
182 * |NanStatusCode.INTERNAL_FAILURE|
183 */
184 void notifyCreateDataInterfaceResponse(in char id, in NanStatus status);
185
186 /**
187 * Callback invoked in response to a delete data interface request
188 * |IWifiNanIface.deleteDataInterfaceRequest|.
189 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000190 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000191 * @param status NanStatus of the operation. Possible status codes are:
192 * |NanStatusCode.SUCCESS|
193 * |NanStatusCode.INVALID_ARGS|
194 * |NanStatusCode.INTERNAL_FAILURE|
195 */
196 void notifyDeleteDataInterfaceResponse(in char id, in NanStatus status);
197
198 /**
199 * Callback invoked in response to a disable request |IWifiNanIface.disableRequest|.
200 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000201 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000202 * @param status NanStatus of the operation. Possible status codes are:
203 * |NanStatusCode.SUCCESS|
204 * |NanStatusCode.PROTOCOL_FAILURE|
205 */
206 void notifyDisableResponse(in char id, in NanStatus status);
207
208 /**
209 * Callback invoked in response to an enable request |IWifiNanIface.enableRequest|.
210 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000211 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000212 * @param status NanStatus of the operation. Possible status codes are:
213 * |NanStatusCode.SUCCESS|
214 * |NanStatusCode.ALREADY_ENABLED|
215 * |NanStatusCode.INVALID_ARGS|
216 * |NanStatusCode.INTERNAL_FAILURE|
217 * |NanStatusCode.PROTOCOL_FAILURE|
218 * |NanStatusCode.NAN_NOT_ALLOWED|
219 */
220 void notifyEnableResponse(in char id, in NanStatus status);
221
222 /**
223 * Callback invoked in response to an initiate data path request
224 * |IWifiNanIface.initiateDataPathRequest|.
225 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000226 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000227 * @param status NanStatus of the operation. Possible status codes are:
228 * |NanStatusCode.SUCCESS|
229 * |NanStatusCode.INVALID_ARGS|
230 * |NanStatusCode.INTERNAL_FAILURE|
231 * |NanStatusCode.PROTOCOL_FAILURE|
232 * |NanStatusCode.INVALID_PEER_ID|
233 * @param ndpInstanceId ID of the new data path being negotiated (on successful status).
234 */
235 void notifyInitiateDataPathResponse(in char id, in NanStatus status, in int ndpInstanceId);
236
237 /**
238 * Callback invoked in response to a respond to data path indication request
239 * |IWifiNanIface.respondToDataPathIndicationRequest|.
240 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000241 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000242 * @param status NanStatus of the operation. Possible status codes are:
243 * |NanStatusCode.SUCCESS|
244 * |NanStatusCode.INVALID_ARGS|
245 * |NanStatusCode.INTERNAL_FAILURE|
246 * |NanStatusCode.PROTOCOL_FAILURE|
247 * |NanStatusCode.INVALID_NDP_ID|
248 */
249 void notifyRespondToDataPathIndicationResponse(in char id, in NanStatus status);
250
251 /**
252 * Callback invoked to notify the status of the start publish request
253 * |IWifiNanIface.startPublishRequest|.
254 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000255 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000256 * @param status NanStatus of the operation. Possible status codes are:
257 * |NanStatusCode.SUCCESS|
258 * |NanStatusCode.INVALID_ARGS|
259 * |NanStatusCode.PROTOCOL_FAILURE|
260 * |NanStatusCode.NO_RESOURCES_AVAILABLE|
261 * |NanStatusCode.INVALID_SESSION_ID|
262 * @param sessionId ID of the new publish session (if successfully created).
263 */
264 void notifyStartPublishResponse(in char id, in NanStatus status, in byte sessionId);
265
266 /**
267 * Callback invoked to notify the status of the start subscribe request
268 * |IWifiNanIface.startSubscribeRequest|.
269 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000270 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000271 * @param status NanStatus of the operation. Possible status codes are:
272 * |NanStatusCode.SUCCESS|
273 * |NanStatusCode.INVALID_ARGS|
274 * |NanStatusCode.PROTOCOL_FAILURE|
275 * |NanStatusCode.NO_RESOURCES_AVAILABLE|
276 * |NanStatusCode.INVALID_SESSION_ID|
277 * @param sessionId ID of the new subscribe session (if successfully created).
278 */
279 void notifyStartSubscribeResponse(in char id, in NanStatus status, in byte sessionId);
280
281 /**
282 * Callback invoked in response to a stop publish request
283 * |IWifiNanIface.stopPublishRequest|.
284 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000285 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000286 * @param status NanStatus of the operation. Possible status codes are:
287 * |NanStatusCode.SUCCESS|
288 * |NanStatusCode.INVALID_SESSION_ID|
289 * |NanStatusCode.INTERNAL_FAILURE|
290 */
291 void notifyStopPublishResponse(in char id, in NanStatus status);
292
293 /**
294 * Callback invoked in response to a stop subscribe request
295 * |IWifiNanIface.stopSubscribeRequest|.
296 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000297 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000298 * @param status NanStatus of the operation. Possible status codes are:
299 * |NanStatusCode.SUCCESS|
300 * |NanStatusCode.INVALID_SESSION_ID|
301 * |NanStatusCode.INTERNAL_FAILURE|
302 */
303 void notifyStopSubscribeResponse(in char id, in NanStatus status);
304
305 /**
306 * Callback invoked in response to a terminate data path request
307 * |IWifiNanIface.terminateDataPathRequest|.
308 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000309 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000310 * @param status NanStatus of the operation. Possible status codes are:
311 * |NanStatusCode.SUCCESS|
312 * |NanStatusCode.INVALID_ARGS|
313 * |NanStatusCode.INTERNAL_FAILURE|
314 * |NanStatusCode.PROTOCOL_FAILURE|
315 * |NanStatusCode.INVALID_NDP_ID|
316 */
317 void notifyTerminateDataPathResponse(in char id, in NanStatus status);
318
319 /**
Phill Hayers43d9af62022-11-30 15:18:26 +0000320 * Callback invoked in response to a suspension request
321 * |IWifiNanIface.suspendRequest|.
322 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000323 * @param id Command ID corresponding to the original request.
Phill Hayers43d9af62022-11-30 15:18:26 +0000324 * @param status NanStatus of the operation. Possible status codes are:
325 * |NanStatusCode.SUCCESS|
326 * |NanStatusCode.INVALID_SESSION_ID|
327 * |NanStatusCode.INVALID_STATE|
328 * |NanStatusCode.INTERNAL_FAILURE|
329 */
330 void notifySuspendResponse(in char id, in NanStatus status);
331
332 /**
333 * Callback invoked in response to a resume request
334 * |IWifiNanIface.resumeRequest|.
335 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000336 * @param id Command ID corresponding to the original request.
Phill Hayers43d9af62022-11-30 15:18:26 +0000337 * @param status NanStatus of the operation. Possible status codes are:
338 * |NanStatusCode.SUCCESS|
339 * |NanStatusCode.INVALID_SESSION_ID|
340 * |NanStatusCode.INVALID_STATE|
341 * |NanStatusCode.INTERNAL_FAILURE|
342 */
343 void notifyResumeResponse(in char id, in NanStatus status);
344
345 /**
Gabriel Biren910d5df2022-04-08 18:21:22 +0000346 * Callback invoked in response to a transmit followup request
347 * |IWifiNanIface.transmitFollowupRequest|.
348 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000349 * @param id Command ID corresponding to the original request.
Gabriel Biren910d5df2022-04-08 18:21:22 +0000350 * @param status NanStatus of the operation. Possible status codes are:
351 * |NanStatusCode.SUCCESS|
352 * |NanStatusCode.INVALID_ARGS|
353 * |NanStatusCode.INTERNAL_FAILURE|
354 * |NanStatusCode.INVALID_SESSION_ID|
355 * |NanStatusCode.INVALID_PEER_ID|
356 * |NanStatusCode.FOLLOWUP_TX_QUEUE_FULL|
357 */
358 void notifyTransmitFollowupResponse(in char id, in NanStatus status);
Nate Jiang1590d092022-11-22 17:03:29 -0800359
360 /**
361 * Callback indicating that a NAN pairing setup/verification has been requested by
362 * an Initiator peer (received by the intended Responder).
363 *
364 * @param event NanPairingRequestInd containing event details.
365 */
366 void eventPairingRequest(in NanPairingRequestInd event);
367
368 /**
369 * Callback indicating that a NAN pairing setup/verification has been completed.
370 * Received by both Initiator and Responder.
371 *
372 * @param event NanPairingConfirmInd containing event details.
373 */
374 void eventPairingConfirm(in NanPairingConfirmInd event);
375
376 /**
377 * Callback invoked in response to an initiate NAN pairing request
378 * |IWifiNanIface.initiatePairingRequest|.
379 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000380 * @param id Command ID corresponding to the original request.
Nate Jiang1590d092022-11-22 17:03:29 -0800381 * @param status NanStatus of the operation. Possible status codes are:
382 * |NanStatusCode.SUCCESS|
383 * |NanStatusCode.INVALID_ARGS|
384 * |NanStatusCode.INTERNAL_FAILURE|
385 * |NanStatusCode.PROTOCOL_FAILURE|
386 * |NanStatusCode.INVALID_PEER_ID|
387 * @param pairingInstanceId ID of the new pairing being negotiated (on successful status).
388 */
389 void notifyInitiatePairingResponse(in char id, in NanStatus status, in int pairingInstanceId);
390
391 /**
392 * Callback invoked in response to a respond to NAN pairing indication request
393 * |IWifiNanIface.respondToPairingIndicationRequest|.
394 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000395 * @param id Command ID corresponding to the original request.
Nate Jiang1590d092022-11-22 17:03:29 -0800396 * @param status NanStatus of the operation. Possible status codes are:
397 * |NanStatusCode.SUCCESS|
398 * |NanStatusCode.INVALID_ARGS|
399 * |NanStatusCode.INTERNAL_FAILURE|
400 * |NanStatusCode.PROTOCOL_FAILURE|
401 * |NanStatusCode.INVALID_NDP_ID|
402 */
403 void notifyRespondToPairingIndicationResponse(in char id, in NanStatus status);
404
405 /**
406 * Callback indicating that a NAN bootstrapping setup has been requested by
407 * an Initiator peer (received by the intended Responder).
408 *
409 * @param event NanBootstrappingRequestInd containing event details.
410 */
411 void eventBootstrappingRequest(in NanBootstrappingRequestInd event);
412
413 /**
414 * Callback indicating that a NAN bootstrapping setuphas been completed.
415 * Received by Initiator.
416 *
417 * @param event NanBootstrappingConfirmInd containing event details.
418 */
419 void eventBootstrappingConfirm(in NanBootstrappingConfirmInd event);
420
421 /**
422 * Callback invoked in response to an initiate NAN pairing bootstrapping request
423 * |IWifiNanIface.initiateBootstrappingRequest|.
424 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000425 * @param id Command ID corresponding to the original request.
Nate Jiang1590d092022-11-22 17:03:29 -0800426 * @param status NanStatus of the operation. Possible status codes are:
427 * |NanStatusCode.SUCCESS|
428 * |NanStatusCode.INVALID_ARGS|
429 * |NanStatusCode.INTERNAL_FAILURE|
430 * |NanStatusCode.PROTOCOL_FAILURE|
431 * |NanStatusCode.INVALID_PEER_ID|
432 * @param bootstrappingInstanceId ID of the new pairing being negotiated (on successful status).
433 */
434 void notifyInitiateBootstrappingResponse(
435 in char id, in NanStatus status, in int bootstrappingInstanceId);
436
437 /**
438 * Callback invoked in response to a respond to pairing bootstrapping indication request
439 * |IWifiNanIface.respondToBootstrappingIndicationRequest|.
440 *
Gabriel Birene2d0de22023-03-01 18:23:15 +0000441 * @param id Command ID corresponding to the original request.
Nate Jiang1590d092022-11-22 17:03:29 -0800442 * @param status NanStatus of the operation. Possible status codes are:
443 * |NanStatusCode.SUCCESS|
444 * |NanStatusCode.INVALID_ARGS|
445 * |NanStatusCode.INTERNAL_FAILURE|
446 * |NanStatusCode.PROTOCOL_FAILURE|
447 * |NanStatusCode.INVALID_NDP_ID|
448 */
449 void notifyRespondToBootstrappingIndicationResponse(in char id, in NanStatus status);
Nate Jiangbae6fdd2023-02-10 17:16:40 -0800450
451 /**
452 * Callback invoked in response to a terminate pairing request
453 * |IWifiNanIface.terminatePairingRequest|.
454 *
455 * @param id Command Id corresponding to the original request.
456 * @param status NanStatus of the operation. Possible status codes are:
457 * |NanStatusCode.SUCCESS|
458 * |NanStatusCode.INVALID_ARGS|
459 * |NanStatusCode.INTERNAL_FAILURE|
460 * |NanStatusCode.PROTOCOL_FAILURE|
461 * |NanStatusCode.INVALID_PAIRING_ID|
462 */
463 void notifyTerminatePairingResponse(in char id, in NanStatus status);
Gabriel Biren910d5df2022-04-08 18:21:22 +0000464}