blob: d1d4ca5a80a9f9385d2c396b51f9fc4003b4207e [file] [log] [blame]
/*
* 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 IWifiNanIfaceEventCallback;
/**
* Interface used to represent a single NAN(Neighbour Aware Network) iface.
*
* References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness
* Networking (NAN) Technical Specification".
*/
interface IWifiNanIface extends IWifiIface {
/**
* Requests notifications of significant events on this iface. Multiple calls
* to this must register multiple callbacks each of which must receive all
* events.
*
* @param callback An instance of the |IWifiNanIfaceEventCallback| HIDL interface
* object.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|
*/
registerEventCallback(IWifiNanIfaceEventCallback callback)
generates (WifiStatus status);
/**
* Get NAN capabilities. Asynchronous response is with
* |IWifiNanIfaceEventCallback.notifyCapabilitiesResponse|.
*
* @param cmdId command Id to use for this invocation.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
getCapabilitiesRequest(CommandIdShort cmdId) generates (WifiStatus status);
/**
* Enable NAN: configures and activates NAN clustering (does not start
* a discovery session or set up data-interfaces or data-paths). Use the
* |IWifiNanIface.configureRequest| method to change the configuration of an already enabled
* NAN interface.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyEnableResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanEnableRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
enableRequest(CommandIdShort cmdId, NanEnableRequest msg)
generates (WifiStatus status);
/**
* Configure NAN: configures an existing NAN functionality (i.e. assumes
* |IWifiNanIface.enableRequest| already submitted and succeeded).
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyConfigResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanConfigRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
configRequest(CommandIdShort cmdId, NanConfigRequest msg)
generates (WifiStatus status);
/**
* Disable NAN functionality.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyDisableResponse|.
*
* @param cmdId command Id to use for this invocation.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
disableRequest(CommandIdShort cmdId) generates (WifiStatus status);
/**
* Publish request to start advertising a discovery service.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStartPublishResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanPublishRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
startPublishRequest(CommandIdShort cmdId, NanPublishRequest msg)
generates (WifiStatus status);
/**
* Stop publishing a discovery service.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStopPublishResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param sessionId ID of the publish discovery session to be stopped.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
stopPublishRequest(CommandIdShort cmdId, uint8_t sessionId)
generates (WifiStatus status);
/**
* Subscribe request to start searching for a discovery service.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStartSubscribeResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanSubscribeRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
startSubscribeRequest(CommandIdShort cmdId, NanSubscribeRequest msg)
generates (WifiStatus status);
/**
* Stop subscribing to a discovery service.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStopSubscribeResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param sessionId ID of the subscribe discovery session to be stopped.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
stopSubscribeRequest(CommandIdShort cmdId, uint8_t sessionId)
generates (WifiStatus status);
/**
* NAN transmit follow up message request.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyTransmitFollowupResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanTransmitFollowupRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
transmitFollowupRequest(CommandIdShort cmdId, NanTransmitFollowupRequest msg)
generates (WifiStatus status);
/**
* Create a NAN Data Interface.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyCreateDataInterfaceResponse|.
*
* @param cmdId command Id to use for this invocation.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
createDataInterfaceRequest(CommandIdShort cmdId, string ifaceName)
generates (WifiStatus status);
/**
* Delete a NAN Data Interface.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyDeleteDataInterfaceResponse|.
*
* @param cmdId command Id to use for this invocation.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
deleteDataInterfaceRequest(CommandIdShort cmdId, string ifaceName)
generates (WifiStatus status);
/**
* Initiate a data-path (NDP) setup operation: Initiator.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyInitiateDataPathResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanInitiateDataPathRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
initiateDataPathRequest(CommandIdShort cmdId, NanInitiateDataPathRequest msg)
generates (WifiStatus status);
/**
* Respond to a received data indication as part of a data-path (NDP) setup operation. An
* indication is received by the Responder from the Initiator.
* Asynchronous response is with
* |IWifiNanIfaceEventCallback.notifyRespondToDataPathIndicationResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param msg Instance of |NanRespondToDataPathIndicationRequest|.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_INVALID_ARGS|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
respondToDataPathIndicationRequest(CommandIdShort cmdId,
NanRespondToDataPathIndicationRequest msg)
generates (WifiStatus status);
/**
* Data-path (NDP) termination request: executed by either Initiator or Responder.
* Asynchronous response is with |IWifiNanIfaceEventCallback.notifyTerminateDataPathResponse|.
*
* @param cmdId command Id to use for this invocation.
* @param ndpInstanceId Data-path instance ID to be terminated.
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
terminateDataPathRequest(CommandIdShort cmdId, uint32_t ndpInstanceId)
generates (WifiStatus status);
};