16ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius/* 26ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * hidl interface for wpa_supplicant daemon 36ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi> 46ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com> 56ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * 66ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * This software may be distributed under the terms of the BSD license. 76ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * See README for more details. 86ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius */ 96ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#ifndef WPA_SUPPLICANT_HIDL_STA_IFACE_H 116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#define WPA_SUPPLICANT_HIDL_STA_IFACE_H 126ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 136ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <array> 146ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <vector> 156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <android-base/macros.h> 176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 1830eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy#include <android/hardware/wifi/supplicant/1.1/ISupplicantStaIface.h> 1930eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy#include <android/hardware/wifi/supplicant/1.1/ISupplicantStaIfaceCallback.h> 206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.h> 216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusextern "C" { 236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "utils/common.h" 246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "utils/includes.h" 256ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "wpa_supplicant_i.h" 266ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "config.h" 276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "driver_i.h" 286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "wpa.h" 296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} 306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace android { 326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace hardware { 336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace wifi { 346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace supplicant { 356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace V1_1 { 366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace implementation { 376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piususing namespace android::hardware::wifi::supplicant::V1_0; 386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius/** 406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * Implementation of StaIface hidl object. Each unique hidl 416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * object is used for control operations on a specific interface 426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * controlled by wpa_supplicant. 436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius */ 446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusclass StaIface : public ISupplicantStaIface 456ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius{ 466ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piuspublic: 476ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius StaIface(struct wpa_global* wpa_global, const char ifname[]); 486ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ~StaIface() override = default; 496ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // HIDL does not provide a built-in mechanism to let the server 506ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // invalidate a HIDL interface object after creation. If any client 516ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // process holds onto a reference to the object in their context, 526ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // any method calls on that reference will continue to be directed to 536ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // the server. 546ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // However Supplicant HAL needs to control the lifetime of these 556ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // objects. So, add a public |invalidate| method to all |Iface| and 566ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // |Network| objects. 576ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // This will be used to mark an object invalid when the corresponding 586ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // iface or network is removed. 596ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // All HIDL method implementations should check if the object is still 606ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // marked valid before processing them. 616ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius void invalidate(); 626ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool isValid(); 636ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 646ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Hidl methods exposed. 656ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getName(getName_cb _hidl_cb) override; 666ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getType(getType_cb _hidl_cb) override; 676ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> addNetwork(addNetwork_cb _hidl_cb) override; 686ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> removeNetwork( 696ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantNetworkId id, removeNetwork_cb _hidl_cb) override; 706ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getNetwork( 716ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantNetworkId id, getNetwork_cb _hidl_cb) override; 726ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> listNetworks(listNetworks_cb _hidl_cb) override; 736ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> registerCallback( 7430eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy const sp<android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback> 7530eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy & callback, registerCallback_cb _hidl_cb) override; 7630eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy Return<void> registerCallback_1_1( 776ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const sp<ISupplicantStaIfaceCallback>& callback, 786ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius registerCallback_cb _hidl_cb) override; 796ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> reassociate(reassociate_cb _hidl_cb) override; 806ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> reconnect(reconnect_cb _hidl_cb) override; 816ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> disconnect(disconnect_cb _hidl_cb) override; 826ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setPowerSave( 836ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, setPowerSave_cb _hidl_cb) override; 846ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> initiateTdlsDiscover( 856ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& mac_address, 866ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius initiateTdlsDiscover_cb _hidl_cb) override; 876ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> initiateTdlsSetup( 886ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& mac_address, 896ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius initiateTdlsSetup_cb _hidl_cb) override; 906ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> initiateTdlsTeardown( 916ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& mac_address, 926ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius initiateTdlsTeardown_cb _hidl_cb) override; 936ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> initiateAnqpQuery( 946ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& mac_address, 956ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<ISupplicantStaIface::AnqpInfoId>& info_elements, 966ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<ISupplicantStaIface::Hs20AnqpSubtypes>& sub_types, 976ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius initiateAnqpQuery_cb _hidl_cb) override; 986ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> initiateHs20IconQuery( 996ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& mac_address, 1006ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& file_name, 1016ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius initiateHs20IconQuery_cb _hidl_cb) override; 1026ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getMacAddress(getMacAddress_cb _hidl_cb) override; 1036ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> startRxFilter(startRxFilter_cb _hidl_cb) override; 1046ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> stopRxFilter(stopRxFilter_cb _hidl_cb) override; 1056ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> addRxFilter( 1066ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaIface::RxFilterType type, 1076ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius addRxFilter_cb _hidl_cb) override; 1086ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> removeRxFilter( 1096ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaIface::RxFilterType type, 1106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius removeRxFilter_cb _hidl_cb) override; 1116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setBtCoexistenceMode( 1126ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaIface::BtCoexistenceMode mode, 1136ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setBtCoexistenceMode_cb _hidl_cb) override; 1146ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setBtCoexistenceScanModeEnabled( 1156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, setBtCoexistenceScanModeEnabled_cb _hidl_cb) override; 1166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setSuspendModeEnabled( 1176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, setSuspendModeEnabled_cb _hidl_cb) override; 1186ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setCountryCode( 1196ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<int8_t, 2>& code, 1206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setCountryCode_cb _hidl_cb) override; 1216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> startWpsRegistrar( 1226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& bssid, const hidl_string& pin, 1236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius startWpsRegistrar_cb _hidl_cb) override; 1246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> startWpsPbc( 1256ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& bssid, 1266ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius startWpsPbc_cb _hidl_cb) override; 1276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> startWpsPinKeypad( 1286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& pin, startWpsPinKeypad_cb _hidl_cb) override; 1296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> startWpsPinDisplay( 1306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& bssid, 1316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius startWpsPinDisplay_cb _hidl_cb) override; 1326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> cancelWps(cancelWps_cb _hidl_cb) override; 1336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsDeviceName( 1346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& name, setWpsDeviceName_cb _hidl_cb) override; 1356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsDeviceType( 1366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 8>& type, 1376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setWpsDeviceType_cb _hidl_cb) override; 1386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsManufacturer( 1396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& manufacturer, 1406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setWpsManufacturer_cb _hidl_cb) override; 1416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsModelName( 1426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& model_name, 1436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setWpsModelName_cb _hidl_cb) override; 1446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsModelNumber( 1456ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& model_number, 1466ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setWpsModelNumber_cb _hidl_cb) override; 1476ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsSerialNumber( 1486ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& serial_number, 1496ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setWpsSerialNumber_cb _hidl_cb) override; 1506ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWpsConfigMethods( 1516ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint16_t config_methods, setWpsConfigMethods_cb _hidl_cb) override; 1526ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setExternalSim( 1536ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool useExternalSim, setExternalSim_cb _hidl_cb) override; 1546ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> addExtRadioWork( 1556ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& name, uint32_t freq_in_mhz, 1566ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t timeout_in_sec, addExtRadioWork_cb _hidl_cb) override; 1576ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> removeExtRadioWork( 1586ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t id, removeExtRadioWork_cb _hidl_cb) override; 1596ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> enableAutoReconnect( 1606ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, enableAutoReconnect_cb _hidl_cb) override; 1616ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 1626ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusprivate: 1636ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Corresponding worker functions for the HIDL methods. 1646ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getNameInternal(); 1656ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, IfaceType> getTypeInternal(); 1666ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, sp<ISupplicantNetwork>> 1676ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius addNetworkInternal(); 1686ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus removeNetworkInternal(SupplicantNetworkId id); 1696ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, sp<ISupplicantNetwork>> getNetworkInternal( 1706ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantNetworkId id); 1716ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<SupplicantNetworkId>> 1726ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius listNetworksInternal(); 1736ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus registerCallbackInternal( 17430eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy const sp<android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback> 17530eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy & callback); 17630eab6260098edbc366b3b9f5cf3d17755493b07Ahmed ElArabawy SupplicantStatus registerCallbackInternal_1_1( 1776ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const sp<ISupplicantStaIfaceCallback>& callback); 1786ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus reassociateInternal(); 1796ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus reconnectInternal(); 1806ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus disconnectInternal(); 1816ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setPowerSaveInternal(bool enable); 1826ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus initiateTdlsDiscoverInternal( 1836ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& mac_address); 1846ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus initiateTdlsSetupInternal( 1856ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& mac_address); 1866ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus initiateTdlsTeardownInternal( 1876ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& mac_address); 1886ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus initiateAnqpQueryInternal( 1896ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& mac_address, 1906ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector<ISupplicantStaIface::AnqpInfoId>& info_elements, 1916ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector<ISupplicantStaIface::Hs20AnqpSubtypes>& 1926ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sub_types); 1936ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus initiateHs20IconQueryInternal( 1946ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& mac_address, 1956ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& file_name); 1966ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::array<uint8_t, 6>> 1976ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getMacAddressInternal(); 1986ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus startRxFilterInternal(); 1996ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus stopRxFilterInternal(); 2006ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus addRxFilterInternal( 2016ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaIface::RxFilterType type); 2026ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus removeRxFilterInternal( 2036ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaIface::RxFilterType type); 2046ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setBtCoexistenceModeInternal( 2056ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaIface::BtCoexistenceMode mode); 2066ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setBtCoexistenceScanModeEnabledInternal(bool enable); 2076ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setSuspendModeEnabledInternal(bool enable); 2086ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setCountryCodeInternal( 2096ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<int8_t, 2>& code); 2106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus startWpsRegistrarInternal( 2116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& bssid, const std::string& pin); 2126ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus startWpsPbcInternal( 2136ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& bssid); 2146ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus startWpsPinKeypadInternal(const std::string& pin); 2156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> startWpsPinDisplayInternal( 2166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 6>& bssid); 2176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus cancelWpsInternal(); 2186ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsDeviceNameInternal(const std::string& name); 2196ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsDeviceTypeInternal( 2206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 8>& type); 2216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsManufacturerInternal( 2226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& manufacturer); 2236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsModelNameInternal(const std::string& model_name); 2246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsModelNumberInternal( 2256ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& model_number); 2266ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsSerialNumberInternal( 2276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& serial_number); 2286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWpsConfigMethodsInternal(uint16_t config_methods); 2296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setExternalSimInternal(bool useExternalSim); 2306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> addExtRadioWorkInternal( 2316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& name, uint32_t freq_in_mhz, 2326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t timeout_in_sec); 2336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus removeExtRadioWorkInternal(uint32_t id); 2346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus enableAutoReconnectInternal(bool enable); 2356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 2366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius struct wpa_supplicant* retrieveIfacePtr(); 2376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 2386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Reference to the global wpa_struct. This is assumed to be valid for 2396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // the lifetime of the process. 2406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius struct wpa_global* wpa_global_; 2416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Name of the iface this hidl object controls 2426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string ifname_; 2436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool is_valid_; 2446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 2456ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius DISALLOW_COPY_AND_ASSIGN(StaIface); 2466ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius}; 2476ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 2486ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace implementation 2496ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace V1_1 2506ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace wifi 2516ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace supplicant 2526ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace hardware 2536ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace android 2546ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 2556ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#endif // WPA_SUPPLICANT_HIDL_STA_IFACE_H 256