/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* 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.
*/
/**
* @addtogroup WPA
* @{
*
* @brief Provides APIs for the upper-layer WLAN service.
*
* You can use the APIs to enable or disable a WLAN hotspot, scan for hotspots, connect to a WLAN hotspot,
* manage WLAN chips, network devices, and power, and apply for, release, and move network data buffers.
*
* @since 3.2
* @version 1.0
*/
/**
* @file IWpaInterface.idl
*
* @brief Provides APIs to enable or disable a WLAN hotspot, scan for hotspots, connect to or disconnect from a WLAN hotspot,
* set the country code, and manage network devices.
*
* @since 3.2
* @version 1.0
*/
/**
* @brief Defines the package path of the Wpa module interface.
*
* @since 3.2
* @version 1.0
*/
package ohos.hdi.wlan.wpa.v1_0;
import ohos.hdi.wlan.wpa.v1_0.WpaTypes;
import ohos.hdi.wlan.wpa.v1_0.IWpaCallback;
/**
* @brief Defines an interface for the upper-layer WLAN service.
*
* @since 4.1
* @version 1.0
*/
interface IWpaInterface {
/**
* @brief Creates a channel between the HAL and the wpa supplicant and obtains the driver network interface card (NIC)
* information. This function must be called after an IWiFi instance is created.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
Start();
/**
* @brief Destroys the channel between the HAL and wpa supplicant. This function must be called before an IWiFi
* instance is destroyed.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
Stop();
/**
* @brief Add interface in wpa supplicant.
*
* @param ifName indicates the interface that needs to be added(such as: wlan0 or wlan2).
* @param confName indicates the config file(such as: /data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf).
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
AddWpaIface([in] String ifName, [in] String confName);
/**
* @brief Remove interface in wpa supplicant.
*
* @param ifName indicates the interface that needs to be removed(such as: wlan0 or wlan2).
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
RemoveWpaIface([in] String ifName);
/**
* @brief Scan in wpa supplicant.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
Scan([in] String ifName);
/**
* @brief Scan Result in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param resultBuf Indicates Scan Result obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
ScanResult([in] String ifName, [out] unsigned char[] resultBuf);
/**
* @brief Add nework in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID added.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
AddNetwork([in] String ifName, [out] int networkId);
/**
* @brief Remove nework in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Remove.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
RemoveNetwork([in] String ifName, [in] int networkId);
/**
* @brief Disable nework in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Disable.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
DisableNetwork([in] String ifName, [in] int networkId);
/**
* @brief Set Network in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Set
* @param name Indicates the name to set
* @param value Indicates the value to set
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
SetNetwork([in] String ifName, [in] int networkId, [in] String name, [in] String value);
/**
* @brief List Networks in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param mode Indicates wifiNetworkInfo obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
ListNetworks([in] String ifName, [out] struct HdiWifiWpaNetworkInfo[] networkInfo);
/**
* @brief Select nework in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Select.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
SelectNetwork([in] String ifName, [in] int networkId);
/**
* @brief Enable nework in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
EnableNetwork([in] String ifName, [in] int networkId);
/**
* @brief Reconnect in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
Reconnect([in] String ifName);
/**
* @brief Disconnect in wpa supplicant.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
Disconnect([in] String ifName);
/**
* @brief Save config in wpa supplicant.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
SaveConfig([in] String ifName);
/**
* @brief Set PowerSave in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param enable Indicates whether set powerSave .
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
SetPowerSave([in] String ifName, [in] int enable);
/**
* @brief Auto connect in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param enable Indicates whether auto connect .
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
AutoConnect([in] String ifName, [in] int enable);
/**
* @brief get Wifi Status in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param mode Indicates wifiStatus obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
WifiStatus([in] String ifName, [out] struct HdiWpaCmdStatus wifiStatus);
/**
* @brief set WpsPbcMode in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param wpsParam Indicates wifiStatus obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
WpsPbcMode([in] String ifName, [in] struct HdiWifiWpsParam wpsParam);
/**
* @brief set Wifi Status in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param wpsParam Indicates wifiStatus obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
WpsPinMode([in] String ifName, [in] struct HdiWifiWpsParam wpsParam, [out] int pinCode);
/**
* @brief Cancel Wps in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
WpsCancel([in] String ifName);
/**
* @brief get countrycode in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param countrycode Indicates the country code obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetCountryCode([in] String ifName, [out] String countrycode);
/**
* @brief get Network in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID of parameter
* @param param Indicates the param
* @param value Indicates the value obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetNetwork([in] String ifName, [in] int networkId, [in] String param, [out] String value);
/**
* @brief clear block list in wpa supplicant.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
BlocklistClear([in] String ifName);
/**
* @brief Set SuspendMode in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param mode Indicates to set Suspend .
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
SetSuspendMode([in] String ifName, [in] int mode);
/**
* @brief Registers a callback to listen for asynchronous events.
*
* @param cbFunc Indicates the callback to register.
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
RegisterEventCallback([in] IWpaCallback cbFunc, [in] String ifName);
/**
* @brief Unregisters a callback.
*
* @param cbFunc Indicates the callback to unregister.
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
UnregisterEventCallback([in] IWpaCallback cbFunc, [in] String ifName);
/**
* @brief Get ConnectionCapabilities in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param connectionCap Indicates connectionCap obtained.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetConnectionCapabilities([in] String ifName, [out] struct ConnectionCapabilities connectionCap);
/**
* @brief Get whether Probe Requests are being sent for this network (hidden).
*
* @param ifName Indicates the NIC name.
* @param enabled true if set, false otherwise.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetScanSsid([in] String ifName, [out] int enable);
/**
* @brief Get passphrase in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param psk the psk value set.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetPskPassphrase([in] String ifName, [out] String psk);
/**
* @brief Get raw psk in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param psk the psk value set.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetPsk([in] String ifName, [out] unsigned char[] psk);
/**
* @brief Get WEP key in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param keyIdx Index of wep key to be fetched
* @param wepKey the wep Key value set.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetWepKey([in] String ifName, [in] int keyIdx, [out] unsigned char[] wepKey);
/**
* @brief Get default Tx key index in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param keyIdx the keyIdx valu value set.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetWepTxKeyIdx([in] String ifName, [out] int keyIdx);
/**
* @brief Get whether RequirePmf is enabled for this network.
*
* @param ifName Indicates the NIC name.
* @param enabled true if set, false otherwise.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
GetRequirePmf([in] String ifName, [out] int enable);
/**
* @brief Set CountryCode in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param countrycode Indicates the country code to set
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
SetCountryCode([in] String ifName,[in] String countrycode);
/**
* Set the postfix to be used for P2P SSID's.
*
* @param ifName Indicates the NIC name.
* @param postfix name String to be appended to SSID.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*/
P2pSetSsidPostfixName([in] String ifName, [in] String name);
/**
* @brief set Wps Device Type for p2p.
*
* @param ifName Indicates the NIC name.
* @param type Indicates the wpa device type of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetWpsDeviceType([in] String ifName, [in] String type);
/**
* @brief set Wps config methods for p2p.
*
* @param ifName Indicates the NIC name.
* @param methods Indicates the Wps config methods of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetWpsConfigMethods([in] String ifName, [in] String methods);
/**
* @brief the Maximum idle time in seconds for P2P groups.
*
* @param ifName Indicates the NIC name.
* @param time Indicates the Maximum idle time of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetGroupMaxIdle([in] String ifName, [in] int time);
/**
* @brief Enable/Disable Wifi Display for p2p.
*
* @param ifName Indicates the NIC name.
* @param enable 1 to enable, 0 to disable.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetWfdEnable([in] String ifName, [in] int enable);
/**
* @brief Set Persistent Reconnect for p2p.
*
* @param ifName Indicates the NIC name.
* @param status Indicates the Persistent Reconnect status of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetPersistentReconnect([in] String ifName, [in] int status);
/**
* @brief set Wps Secondary Device Type for p2p.
*
* @param ifName Indicates the NIC name.
* @param type Indicates the wpa Secondary device type of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetWpsSecondaryDeviceType([in] String ifName, [in] String type);
/**
* @brief setup Wps pbc for p2p.
*
* @param ifName Indicates the NIC name.
* @param address Indicates the BSSID of the AP of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetupWpsPbc([in] String ifName, [in] String address);
/**
* @brief setup Wps pin for p2p.
*
* @param ifName Indicates the NIC name.
* @param address Indicates the BSSID of the AP of parameter.
* @param pin 8 digit pin to be used.
* @param result Indicates the status of the operation.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetupWpsPin([in] String ifName, [in] String address, [in] String pin, [out] String result);
/**
* @brief Turn on/off power save mode for the interface.
*
* @param ifName Indicates the NIC name.
* @param enable Indicate if power save is to be turned on/off.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*/
P2pSetPowerSave([in] String ifName, [in] int enable);
/**
* @brief Set Device Name for p2p.
*
* @param ifName Indicates the NIC name.
* @param name Indicates Device Name of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetDeviceName([in] String ifName, [in] String name);
/**
* @brief set Wifi Display device config for p2p.
*
* @param ifName Indicates the NIC name.
* @param config Indicates device config of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetWfdDeviceConfig([in] String ifName, [in] String config);
/**
* @brief set Random Mac for p2p.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetRandomMac([in] String ifName, [in] int networkId);
/**
* @brief Start Find for p2p.
*
* @param ifName Indicates the NIC name.
* @param timeout Indicates Max time to be spent is peforming discovery.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pStartFind([in] String ifName, [in] int timeout);
/**
* @brief Configure Extended Listen Timing for p2p.
*
* @param ifName Indicates the NIC name.
* @param enable Indicates if to enable it.
* @param period Indicates Period in milliseconds.
* @param enable Indicates Interval in milliseconds.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetExtListen([in] String ifName, [in] int enable, [in] int period, [in] int interval);
/**
* @brief Set P2P Listen channel.
*
* @param ifName Indicates the NIC name.
* @param channel Indicates the Wifi channel.
* @param regClass Indicates the channel set of the AP indicated by this BSSID.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetListenChannel([in] String ifName, [in] int channel, [in] int regClass);
/**
* @brief Send P2P provision discovery request to the specified peer.
*
* @param ifName Indicates the NIC name.
* @param peerBssid Indicates MAC address of the device to send discovery.
* @param mode Indicates Provisioning mode of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pProvisionDiscovery([in] String ifName, [in] String peerBssid, [in] int mode);
/**
* @brief Set up a P2P group owner manually.
*
* @param ifName Indicates the NIC name.
* @param isPersistent Indicates Used to request a persistent group to be formed.
* @param networkId Indicates the network ID Enable.
* @param freq Indicates the freq of p2p group.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pAddGroup([in] String ifName, [in] int isPersistent, [in] int networkId, [in] int freq);
/**
* @brief add service for p2p.
*
* @param ifName Indicates the NIC name.
* @param info Indicates P2p Service Info.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pAddService([in] String ifName, [in] struct HdiP2pServiceInfo info);
/**
* @brief Remove service for p2p.
*
* @param ifName Indicates the NIC name.
* @param info Indicates P2p Service Info.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pRemoveService([in] String ifName, [in] struct HdiP2pServiceInfo info);
/**
* @brief Stop an ongoing P2P service discovery.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pStopFind([in] String ifName);
/**
* @brief Flush P2P peer table and state.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pFlush([in] String ifName);
/**
* @brief This command can be used to flush all services from the device.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pFlushService([in] String ifName);
/**
* @brief Remove Network for p2p.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pRemoveNetwork([in] String ifName, [in] int networkId);
/**
* @brief set group config for p2p.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
* @param name Indicates the group config name of parameter.
* @param value Indicates the group config value of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetGroupConfig([in] String ifName, [in] int networkId, [in] String name, [in] String value);
/**
* @brief set group config for p2p.
*
* @param ifName Indicates the NIC name.
* @param peerAddress MAC address of the device to invite.
* @param goBssid MAC address of the group owner device.
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pInvite([in] String ifName, [in] String peerBssid, [in] String goBssid);
/**
* @brief set group config for p2p.
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
* @param bssid MAC address of the device to reinvoke.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pReinvoke([in] String ifName, [in] int networkId,[in] String bssid);
/**
* @brief get the device address.
*
* @param ifName Indicates the NIC name.
* @param deviceAddress Indicates the device address info.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pGetDeviceAddress([in] String ifName, [out] String deviceAddress);
/**
* @brief Schedule a P2P service discovery request.
*
* @param ifName Indicates the NIC name.
* @param reqService Indicates device mac address of the peer device.
* @param replyDisc Indicates service discovery sequence.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pReqServiceDiscovery([in] String ifName, [in] struct HdiP2pReqService reqService,[out] String replyDisc);
/**
* @brief Cancel a previous service discovery request.
*
* @param ifName Indicates the NIC name.
* @param id Identifier for the request to cancel.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pCancelServiceDiscovery([in] String ifName, [in] String id);
/**
* @brief the resp of server discovery for p2p
*
* @param ifName Indicates the NIC name.
* @param info Indicates resp info of server discovery.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pRespServerDiscovery([in] String ifName, [in] struct HdiP2pServDiscReqInfo info);
/**
* @brief Start P2P group formation with a discovered P2P peer.
*
* @param ifName Indicates the NIC name.
* @param info Indicates all msg of the device to connect to.
* @param replyPin Pin generated, if |provisionMethod| uses one of the enerated |PIN*| methods.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pConnect([in] String ifName, [in] struct HdiP2pConnectInfo info, [out] String replyPin);
/**
* @brief Start P2P group formation with a discovered P2P peer.
*
* @param ifName Indicates the NIC name.
* @param info Indicates all msg of the device to connect to.
* @param replyPin Pin generated, if |provisionMethod| uses one of the enerated |PIN*| methods.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pHid2dConnect([in] String ifName, [in] struct HdiHid2dConnectInfo info);
/**
* @brief Set service discovery mode for p2p
*
* @param ifName Indicates the NIC name.
* @param mode Indicates the service discovery mode of parameter.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSetServDiscExternal([in] String ifName, [in] int mode);
/**
* @brief remove group for p2p
*
* @param ifName Indicates the NIC name.
* @param groupName Indicates the group name of p2p.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pRemoveGroup([in] String ifName, [in] String groupName);
/**
* @brief Cancel Connect for p2p
*
* @param ifName Indicates the NIC name.
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pCancelConnect([in] String ifName);
/**
* @brief Get Group Config for p2p
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
* @param param Indicates the group config name.
* @param value Indicates the group config value.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pGetGroupConfig([in] String ifName, [in] int networkId, [in] String param, [out] String value);
/**
* @brief Add a Network for p2p
*
* @param ifName Indicates the NIC name.
* @param networkId Indicates the network ID Enable.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pAddNetwork([in] String ifName, [out] int networkId);
/**
* @brief Gets the capability of the group which the device is member of.
*
* @param ifName Indicates the NIC name.
* @param bssid Indicates MAC address of the peer.
* @param info Indicates Structure for saving device information.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pGetPeer([in] String ifName, [in] String bssid, [out] struct HdiP2pDeviceInfo info);
/**
* @brief Gets the capability of the group which the device is member of.
*
* @param ifName Indicates the NIC name.
* @param bssid Indicates MAC address of the peer.
* @param cap Indicates capabilityMask Combination of |P2pGroupCapabilityMask| values.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pGetGroupCapability([in] String ifName, [in] String bssid, [out] int cap);
/**
* @brief List all network information.
*
* @param ifName Indicates the NIC name.
* @param infoList Indicates Structure for saving network information.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pListNetworks([in] String ifName, [out] struct HdiP2pNetworkList infoList);
/**
* @brief save config for p2p.
*
* @param ifName Indicates the NIC name.
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
P2pSaveConfig([in] String ifName);
/**
* @brief Reassociate in wpa supplicant.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
Reassociate([in] String ifName);
/**
* @brief STA CMD in wpa supplicant.
*
* @param ifName Indicates the NIC name.
* @param cmd Indicates command of Sta from WifiHal
* Example: If CMD is "SET external_sim 1", then
* the final result is "external_sim=1".
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
StaShellCmd([in] String ifName, [in] String cmd);
/**
* @brief wpa vendor ext process cmd.
*
* @param ifName Indicates the NIC name.
*
* @return Returns 0 if the operation is successful.
* @return Returns a negative value if the operation fails.
*
* @since 4.1
* @version 1.0
*/
VendorProcessCmd([in] String ifname, [in] String cmd);
}