1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright 2016 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport ISupplicantIface; 20*4d7e907cSAndroid Build Coastguard Workerimport ISupplicantStaIfaceCallback; 21*4d7e907cSAndroid Build Coastguard Worker 22*4d7e907cSAndroid Build Coastguard Worker/** 23*4d7e907cSAndroid Build Coastguard Worker * Interface exposed by the supplicant for each station mode network 24*4d7e907cSAndroid Build Coastguard Worker * interface (e.g wlan0) it controls. 25*4d7e907cSAndroid Build Coastguard Worker */ 26*4d7e907cSAndroid Build Coastguard Workerinterface ISupplicantStaIface extends ISupplicantIface { 27*4d7e907cSAndroid Build Coastguard Worker /** 28*4d7e907cSAndroid Build Coastguard Worker * Access Network Query Protocol info ID elements 29*4d7e907cSAndroid Build Coastguard Worker * for IEEE Std 802.11u-2011. 30*4d7e907cSAndroid Build Coastguard Worker */ 31*4d7e907cSAndroid Build Coastguard Worker enum AnqpInfoId : uint16_t { 32*4d7e907cSAndroid Build Coastguard Worker VENUE_NAME = 258, 33*4d7e907cSAndroid Build Coastguard Worker ROAMING_CONSORTIUM = 261, 34*4d7e907cSAndroid Build Coastguard Worker IP_ADDR_TYPE_AVAILABILITY = 262, 35*4d7e907cSAndroid Build Coastguard Worker NAI_REALM = 263, 36*4d7e907cSAndroid Build Coastguard Worker ANQP_3GPP_CELLULAR_NETWORK = 264, 37*4d7e907cSAndroid Build Coastguard Worker DOMAIN_NAME = 268 38*4d7e907cSAndroid Build Coastguard Worker }; 39*4d7e907cSAndroid Build Coastguard Worker 40*4d7e907cSAndroid Build Coastguard Worker /** 41*4d7e907cSAndroid Build Coastguard Worker * Access Network Query Protocol subtype elements 42*4d7e907cSAndroid Build Coastguard Worker * for Hotspot 2.0. 43*4d7e907cSAndroid Build Coastguard Worker */ 44*4d7e907cSAndroid Build Coastguard Worker enum Hs20AnqpSubtypes : uint32_t { 45*4d7e907cSAndroid Build Coastguard Worker OPERATOR_FRIENDLY_NAME = 3, 46*4d7e907cSAndroid Build Coastguard Worker WAN_METRICS = 4, 47*4d7e907cSAndroid Build Coastguard Worker CONNECTION_CAPABILITY = 5, 48*4d7e907cSAndroid Build Coastguard Worker OSU_PROVIDERS_LIST = 8, 49*4d7e907cSAndroid Build Coastguard Worker }; 50*4d7e907cSAndroid Build Coastguard Worker 51*4d7e907cSAndroid Build Coastguard Worker /** 52*4d7e907cSAndroid Build Coastguard Worker * Enum describing the types of RX filter supported 53*4d7e907cSAndroid Build Coastguard Worker * via driver commands. 54*4d7e907cSAndroid Build Coastguard Worker */ 55*4d7e907cSAndroid Build Coastguard Worker enum RxFilterType : uint8_t { 56*4d7e907cSAndroid Build Coastguard Worker V4_MULTICAST = 0, 57*4d7e907cSAndroid Build Coastguard Worker V6_MULTICAST = 1 58*4d7e907cSAndroid Build Coastguard Worker }; 59*4d7e907cSAndroid Build Coastguard Worker 60*4d7e907cSAndroid Build Coastguard Worker /** 61*4d7e907cSAndroid Build Coastguard Worker * Enum describing the modes of BT coexistence supported 62*4d7e907cSAndroid Build Coastguard Worker * via driver commands. 63*4d7e907cSAndroid Build Coastguard Worker */ 64*4d7e907cSAndroid Build Coastguard Worker enum BtCoexistenceMode : uint8_t { 65*4d7e907cSAndroid Build Coastguard Worker ENABLED = 0, 66*4d7e907cSAndroid Build Coastguard Worker DISABLED = 1, 67*4d7e907cSAndroid Build Coastguard Worker SENSE = 2 68*4d7e907cSAndroid Build Coastguard Worker }; 69*4d7e907cSAndroid Build Coastguard Worker 70*4d7e907cSAndroid Build Coastguard Worker enum ExtRadioWorkDefaults : uint32_t { 71*4d7e907cSAndroid Build Coastguard Worker TIMEOUT_IN_SECS = 10 72*4d7e907cSAndroid Build Coastguard Worker }; 73*4d7e907cSAndroid Build Coastguard Worker 74*4d7e907cSAndroid Build Coastguard Worker /** 75*4d7e907cSAndroid Build Coastguard Worker * Register for callbacks from this interface. 76*4d7e907cSAndroid Build Coastguard Worker * 77*4d7e907cSAndroid Build Coastguard Worker * These callbacks are invoked for events that are specific to this interface. 78*4d7e907cSAndroid Build Coastguard Worker * Registration of multiple callback objects is supported. These objects must 79*4d7e907cSAndroid Build Coastguard Worker * be automatically deleted when the corresponding client process is dead or 80*4d7e907cSAndroid Build Coastguard Worker * if this interface is removed. 81*4d7e907cSAndroid Build Coastguard Worker * 82*4d7e907cSAndroid Build Coastguard Worker * @param callback An instance of the |ISupplicantStaIfaceCallback| HIDL 83*4d7e907cSAndroid Build Coastguard Worker * interface object. 84*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 85*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 86*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 87*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 88*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 89*4d7e907cSAndroid Build Coastguard Worker */ 90*4d7e907cSAndroid Build Coastguard Worker registerCallback(ISupplicantStaIfaceCallback callback) 91*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 92*4d7e907cSAndroid Build Coastguard Worker 93*4d7e907cSAndroid Build Coastguard Worker /** 94*4d7e907cSAndroid Build Coastguard Worker * Reconnect to the currently active network, even if we are already 95*4d7e907cSAndroid Build Coastguard Worker * connected. 96*4d7e907cSAndroid Build Coastguard Worker * 97*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 98*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 99*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 100*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 101*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 102*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| 103*4d7e907cSAndroid Build Coastguard Worker */ 104*4d7e907cSAndroid Build Coastguard Worker reassociate() generates (SupplicantStatus status); 105*4d7e907cSAndroid Build Coastguard Worker 106*4d7e907cSAndroid Build Coastguard Worker /** 107*4d7e907cSAndroid Build Coastguard Worker * Reconnect to the currently active network, if we are currently 108*4d7e907cSAndroid Build Coastguard Worker * disconnected. 109*4d7e907cSAndroid Build Coastguard Worker * 110*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 111*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 112*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 113*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 114*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 115*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|, 116*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_NOT_DISCONNECTED| 117*4d7e907cSAndroid Build Coastguard Worker */ 118*4d7e907cSAndroid Build Coastguard Worker reconnect() generates (SupplicantStatus status); 119*4d7e907cSAndroid Build Coastguard Worker 120*4d7e907cSAndroid Build Coastguard Worker /** 121*4d7e907cSAndroid Build Coastguard Worker * Disconnect from the current active network. 122*4d7e907cSAndroid Build Coastguard Worker * 123*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 124*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 125*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 126*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 127*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 128*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| 129*4d7e907cSAndroid Build Coastguard Worker */ 130*4d7e907cSAndroid Build Coastguard Worker disconnect() generates (SupplicantStatus status); 131*4d7e907cSAndroid Build Coastguard Worker 132*4d7e907cSAndroid Build Coastguard Worker /** 133*4d7e907cSAndroid Build Coastguard Worker * Turn on/off power save mode for the interface. 134*4d7e907cSAndroid Build Coastguard Worker * 135*4d7e907cSAndroid Build Coastguard Worker * @param enable Indicate if power save is to be turned on/off. 136*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 137*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 138*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 139*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 140*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 141*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| 142*4d7e907cSAndroid Build Coastguard Worker */ 143*4d7e907cSAndroid Build Coastguard Worker setPowerSave(bool enable) generates (SupplicantStatus status); 144*4d7e907cSAndroid Build Coastguard Worker 145*4d7e907cSAndroid Build Coastguard Worker /** 146*4d7e907cSAndroid Build Coastguard Worker * Initiate TDLS discover with the provided peer MAC address. 147*4d7e907cSAndroid Build Coastguard Worker * 148*4d7e907cSAndroid Build Coastguard Worker * @param macAddress MAC address of the peer. 149*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 150*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 151*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 152*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 153*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 154*4d7e907cSAndroid Build Coastguard Worker */ 155*4d7e907cSAndroid Build Coastguard Worker initiateTdlsDiscover(MacAddress macAddress) 156*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 157*4d7e907cSAndroid Build Coastguard Worker 158*4d7e907cSAndroid Build Coastguard Worker /** 159*4d7e907cSAndroid Build Coastguard Worker * Initiate TDLS setup with the provided peer MAC address. 160*4d7e907cSAndroid Build Coastguard Worker * 161*4d7e907cSAndroid Build Coastguard Worker * @param macAddress MAC address of the peer. 162*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 163*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 164*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 165*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 166*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 167*4d7e907cSAndroid Build Coastguard Worker */ 168*4d7e907cSAndroid Build Coastguard Worker initiateTdlsSetup(MacAddress macAddress) 169*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 170*4d7e907cSAndroid Build Coastguard Worker 171*4d7e907cSAndroid Build Coastguard Worker /** 172*4d7e907cSAndroid Build Coastguard Worker * Initiate TDLS teardown with the provided peer MAC address. 173*4d7e907cSAndroid Build Coastguard Worker * 174*4d7e907cSAndroid Build Coastguard Worker * @param macAddress MAC address of the peer. 175*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 176*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 177*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 178*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 179*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 180*4d7e907cSAndroid Build Coastguard Worker */ 181*4d7e907cSAndroid Build Coastguard Worker initiateTdlsTeardown(MacAddress macAddress) 182*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 183*4d7e907cSAndroid Build Coastguard Worker 184*4d7e907cSAndroid Build Coastguard Worker /** 185*4d7e907cSAndroid Build Coastguard Worker * Initiate ANQP (for IEEE 802.11u Interworking/Hotspot 2.0) queries with the 186*4d7e907cSAndroid Build Coastguard Worker * specified access point. 187*4d7e907cSAndroid Build Coastguard Worker * The ANQP data fetched must be returned in the 188*4d7e907cSAndroid Build Coastguard Worker * |ISupplicantStaIfaceCallback.onAnqpQueryDone| callback. 189*4d7e907cSAndroid Build Coastguard Worker * 190*4d7e907cSAndroid Build Coastguard Worker * @param macAddress MAC address of the access point. 191*4d7e907cSAndroid Build Coastguard Worker * @param infoElements List of information elements to query for. 192*4d7e907cSAndroid Build Coastguard Worker * @param subtypes List of HS20 subtypes to query for. 193*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 194*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 195*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 196*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 197*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 198*4d7e907cSAndroid Build Coastguard Worker */ 199*4d7e907cSAndroid Build Coastguard Worker initiateAnqpQuery(MacAddress macAddress, 200*4d7e907cSAndroid Build Coastguard Worker vec<AnqpInfoId> infoElements, 201*4d7e907cSAndroid Build Coastguard Worker vec<Hs20AnqpSubtypes> subTypes) 202*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 203*4d7e907cSAndroid Build Coastguard Worker 204*4d7e907cSAndroid Build Coastguard Worker /** 205*4d7e907cSAndroid Build Coastguard Worker * Initiate the Hotspot 2.0 icon query with the specified accesss point. 206*4d7e907cSAndroid Build Coastguard Worker * The icon data fetched must be returned in the 207*4d7e907cSAndroid Build Coastguard Worker * |ISupplicantStaIfaceCallback.onHs20IconQueryDone| callback. 208*4d7e907cSAndroid Build Coastguard Worker * 209*4d7e907cSAndroid Build Coastguard Worker * @param macAddress MAC address of the access point. 210*4d7e907cSAndroid Build Coastguard Worker * @param fileName Name of the file to request from the access point. 211*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 212*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 213*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 214*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 215*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 216*4d7e907cSAndroid Build Coastguard Worker */ 217*4d7e907cSAndroid Build Coastguard Worker initiateHs20IconQuery(MacAddress macAddress, string fileName) 218*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 219*4d7e907cSAndroid Build Coastguard Worker 220*4d7e907cSAndroid Build Coastguard Worker /** 221*4d7e907cSAndroid Build Coastguard Worker * Send driver command to get MAC address of the device. 222*4d7e907cSAndroid Build Coastguard Worker * 223*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 224*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 225*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 226*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 227*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 228*4d7e907cSAndroid Build Coastguard Worker * @return macAddr MAC address of the device. 229*4d7e907cSAndroid Build Coastguard Worker */ 230*4d7e907cSAndroid Build Coastguard Worker getMacAddress() 231*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status, MacAddress macAddr); 232*4d7e907cSAndroid Build Coastguard Worker 233*4d7e907cSAndroid Build Coastguard Worker /** 234*4d7e907cSAndroid Build Coastguard Worker * Send driver command to start RX filter. 235*4d7e907cSAndroid Build Coastguard Worker * 236*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 237*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 238*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 239*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 240*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 241*4d7e907cSAndroid Build Coastguard Worker */ 242*4d7e907cSAndroid Build Coastguard Worker startRxFilter() generates (SupplicantStatus status); 243*4d7e907cSAndroid Build Coastguard Worker 244*4d7e907cSAndroid Build Coastguard Worker /** 245*4d7e907cSAndroid Build Coastguard Worker * Send driver command to stop RX filter. 246*4d7e907cSAndroid Build Coastguard Worker * 247*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 248*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 249*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 250*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 251*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 252*4d7e907cSAndroid Build Coastguard Worker */ 253*4d7e907cSAndroid Build Coastguard Worker stopRxFilter() generates (SupplicantStatus status); 254*4d7e907cSAndroid Build Coastguard Worker 255*4d7e907cSAndroid Build Coastguard Worker /** 256*4d7e907cSAndroid Build Coastguard Worker * Send driver command to add the specified RX filter. 257*4d7e907cSAndroid Build Coastguard Worker * 258*4d7e907cSAndroid Build Coastguard Worker * @param type Type of filter. 259*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 260*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 261*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 262*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 263*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 264*4d7e907cSAndroid Build Coastguard Worker */ 265*4d7e907cSAndroid Build Coastguard Worker addRxFilter(RxFilterType type) 266*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 267*4d7e907cSAndroid Build Coastguard Worker 268*4d7e907cSAndroid Build Coastguard Worker /** 269*4d7e907cSAndroid Build Coastguard Worker * Send driver command to remove the specified RX filter. 270*4d7e907cSAndroid Build Coastguard Worker * 271*4d7e907cSAndroid Build Coastguard Worker * @param type Type of filter. 272*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 273*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 274*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 275*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 276*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 277*4d7e907cSAndroid Build Coastguard Worker */ 278*4d7e907cSAndroid Build Coastguard Worker removeRxFilter(RxFilterType type) 279*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 280*4d7e907cSAndroid Build Coastguard Worker 281*4d7e907cSAndroid Build Coastguard Worker /** 282*4d7e907cSAndroid Build Coastguard Worker * Send driver command to set Bluetooth coexistence mode. 283*4d7e907cSAndroid Build Coastguard Worker * 284*4d7e907cSAndroid Build Coastguard Worker * @param mode Mode of Bluetooth coexistence. 285*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 286*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 287*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 288*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 289*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 290*4d7e907cSAndroid Build Coastguard Worker */ 291*4d7e907cSAndroid Build Coastguard Worker setBtCoexistenceMode(BtCoexistenceMode mode) 292*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 293*4d7e907cSAndroid Build Coastguard Worker 294*4d7e907cSAndroid Build Coastguard Worker /** 295*4d7e907cSAndroid Build Coastguard Worker * Send driver command to set Bluetooth coexistence scan mode. 296*4d7e907cSAndroid Build Coastguard Worker * When this mode is on, some of the low-level scan parameters 297*4d7e907cSAndroid Build Coastguard Worker * used by the driver are changed to reduce interference 298*4d7e907cSAndroid Build Coastguard Worker * with A2DP streaming. 299*4d7e907cSAndroid Build Coastguard Worker * 300*4d7e907cSAndroid Build Coastguard Worker * @param enable true to enable, false to disable. 301*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 302*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 303*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 304*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 305*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 306*4d7e907cSAndroid Build Coastguard Worker */ 307*4d7e907cSAndroid Build Coastguard Worker setBtCoexistenceScanModeEnabled(bool enable) 308*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 309*4d7e907cSAndroid Build Coastguard Worker 310*4d7e907cSAndroid Build Coastguard Worker /** 311*4d7e907cSAndroid Build Coastguard Worker * Send driver command to set suspend optimizations for power save. 312*4d7e907cSAndroid Build Coastguard Worker * 313*4d7e907cSAndroid Build Coastguard Worker * @param enable true to enable, false to disable. 314*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 315*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 316*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 317*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 318*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 319*4d7e907cSAndroid Build Coastguard Worker */ 320*4d7e907cSAndroid Build Coastguard Worker setSuspendModeEnabled(bool enable) 321*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 322*4d7e907cSAndroid Build Coastguard Worker 323*4d7e907cSAndroid Build Coastguard Worker /** 324*4d7e907cSAndroid Build Coastguard Worker * Send driver command to set country code. 325*4d7e907cSAndroid Build Coastguard Worker * 326*4d7e907cSAndroid Build Coastguard Worker * @param code 2 byte country code (as defined in ISO 3166) to set. 327*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 328*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 329*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 330*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 331*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 332*4d7e907cSAndroid Build Coastguard Worker */ 333*4d7e907cSAndroid Build Coastguard Worker setCountryCode(int8_t[2] code) 334*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 335*4d7e907cSAndroid Build Coastguard Worker 336*4d7e907cSAndroid Build Coastguard Worker /** 337*4d7e907cSAndroid Build Coastguard Worker * Initiate WPS setup in registrar role to learn the current AP configuration. 338*4d7e907cSAndroid Build Coastguard Worker * 339*4d7e907cSAndroid Build Coastguard Worker * @param bssid BSSID of the AP. 340*4d7e907cSAndroid Build Coastguard Worker * @param pin Pin of the AP. 341*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 342*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 343*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 344*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 345*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 346*4d7e907cSAndroid Build Coastguard Worker */ 347*4d7e907cSAndroid Build Coastguard Worker startWpsRegistrar(Bssid bssid, string pin) 348*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 349*4d7e907cSAndroid Build Coastguard Worker 350*4d7e907cSAndroid Build Coastguard Worker /** 351*4d7e907cSAndroid Build Coastguard Worker * Initiate WPS Push Button setup. 352*4d7e907cSAndroid Build Coastguard Worker * The PBC operation requires that a button is also pressed at the 353*4d7e907cSAndroid Build Coastguard Worker * AP/Registrar at about the same time (2 minute window). 354*4d7e907cSAndroid Build Coastguard Worker * 355*4d7e907cSAndroid Build Coastguard Worker * @param bssid BSSID of the AP. Use zero'ed bssid to indicate wildcard. 356*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 357*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 358*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 359*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 360*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 361*4d7e907cSAndroid Build Coastguard Worker */ 362*4d7e907cSAndroid Build Coastguard Worker startWpsPbc(Bssid bssid) generates (SupplicantStatus status); 363*4d7e907cSAndroid Build Coastguard Worker 364*4d7e907cSAndroid Build Coastguard Worker /** 365*4d7e907cSAndroid Build Coastguard Worker * Initiate WPS Pin Keypad setup. 366*4d7e907cSAndroid Build Coastguard Worker * 367*4d7e907cSAndroid Build Coastguard Worker * @param pin 8 digit pin to be used. 368*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 369*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 370*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 371*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 372*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 373*4d7e907cSAndroid Build Coastguard Worker */ 374*4d7e907cSAndroid Build Coastguard Worker startWpsPinKeypad(string pin) generates (SupplicantStatus status); 375*4d7e907cSAndroid Build Coastguard Worker 376*4d7e907cSAndroid Build Coastguard Worker /** 377*4d7e907cSAndroid Build Coastguard Worker * Initiate WPS Pin Display setup. 378*4d7e907cSAndroid Build Coastguard Worker * 379*4d7e907cSAndroid Build Coastguard Worker * @param bssid BSSID of the AP. Use zero'ed bssid to indicate wildcard. 380*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 381*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 382*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 383*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 384*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 385*4d7e907cSAndroid Build Coastguard Worker * @return generatedPin 8 digit pin generated. 386*4d7e907cSAndroid Build Coastguard Worker */ 387*4d7e907cSAndroid Build Coastguard Worker startWpsPinDisplay(Bssid bssid) 388*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status, string generatedPin); 389*4d7e907cSAndroid Build Coastguard Worker 390*4d7e907cSAndroid Build Coastguard Worker /** 391*4d7e907cSAndroid Build Coastguard Worker * Cancel any ongoing WPS operations. 392*4d7e907cSAndroid Build Coastguard Worker * 393*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 394*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 395*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 396*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 397*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 398*4d7e907cSAndroid Build Coastguard Worker */ 399*4d7e907cSAndroid Build Coastguard Worker cancelWps() generates (SupplicantStatus status); 400*4d7e907cSAndroid Build Coastguard Worker 401*4d7e907cSAndroid Build Coastguard Worker /** 402*4d7e907cSAndroid Build Coastguard Worker * Use external processing for SIM/USIM operations 403*4d7e907cSAndroid Build Coastguard Worker * 404*4d7e907cSAndroid Build Coastguard Worker * @param useExternalSim true to use external, false otherwise. 405*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 406*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 407*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 408*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 409*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 410*4d7e907cSAndroid Build Coastguard Worker */ 411*4d7e907cSAndroid Build Coastguard Worker setExternalSim(bool useExternalSim) generates (SupplicantStatus status); 412*4d7e907cSAndroid Build Coastguard Worker 413*4d7e907cSAndroid Build Coastguard Worker /** 414*4d7e907cSAndroid Build Coastguard Worker * External programs can request supplicant to not start offchannel 415*4d7e907cSAndroid Build Coastguard Worker * operations during other tasks that may need exclusive control of the 416*4d7e907cSAndroid Build Coastguard Worker * radio. 417*4d7e907cSAndroid Build Coastguard Worker * 418*4d7e907cSAndroid Build Coastguard Worker * This method can be used to reserve a slot for radio access. If freq is 419*4d7e907cSAndroid Build Coastguard Worker * specified, other radio work items on the same channel can be completed in 420*4d7e907cSAndroid Build Coastguard Worker * parallel. Otherwise, all other radio work items are blocked during 421*4d7e907cSAndroid Build Coastguard Worker * execution. Timeout must be set to |ExtRadioWorkDefaults.TIMEOUT_IN_SECS| 422*4d7e907cSAndroid Build Coastguard Worker * seconds by default to avoid blocking supplicant operations on the iface 423*4d7e907cSAndroid Build Coastguard Worker * for excessive time. If a longer (or shorter) safety timeout is needed, 424*4d7e907cSAndroid Build Coastguard Worker * that may be specified with the optional timeout parameter. This command 425*4d7e907cSAndroid Build Coastguard Worker * returns an identifier for the radio work item. 426*4d7e907cSAndroid Build Coastguard Worker * 427*4d7e907cSAndroid Build Coastguard Worker * Once the radio work item has been started, 428*4d7e907cSAndroid Build Coastguard Worker * |ISupplicant.onExtRadioWorkStart| callback is indicated that the external 429*4d7e907cSAndroid Build Coastguard Worker * processing can start. 430*4d7e907cSAndroid Build Coastguard Worker * 431*4d7e907cSAndroid Build Coastguard Worker * @param name Name for the radio work being added. 432*4d7e907cSAndroid Build Coastguard Worker * @param freqInMhz Frequency to specify. Set to 0 for all channels. 433*4d7e907cSAndroid Build Coastguard Worker * @param timeoutInSec Timeout tospecify. Set to 0 for default timeout. 434*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 435*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 436*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 437*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN| 438*4d7e907cSAndroid Build Coastguard Worker * @return id Identifier for this radio work. 439*4d7e907cSAndroid Build Coastguard Worker */ 440*4d7e907cSAndroid Build Coastguard Worker addExtRadioWork(string name, uint32_t freqInMhz, uint32_t timeoutInSec) 441*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status, uint32_t id); 442*4d7e907cSAndroid Build Coastguard Worker 443*4d7e907cSAndroid Build Coastguard Worker /** 444*4d7e907cSAndroid Build Coastguard Worker * Indicates to supplicant that the external radio work has completed. 445*4d7e907cSAndroid Build Coastguard Worker * This allows other radio works to be performed. If this method is not 446*4d7e907cSAndroid Build Coastguard Worker * invoked (e.g., due to the external program terminating), supplicant 447*4d7e907cSAndroid Build Coastguard Worker * must time out the radio work item on the iface and send 448*4d7e907cSAndroid Build Coastguard Worker * |ISupplicantCallback.onExtRadioWorkTimeout| event to indicate 449*4d7e907cSAndroid Build Coastguard Worker * that this has happened. 450*4d7e907cSAndroid Build Coastguard Worker * 451*4d7e907cSAndroid Build Coastguard Worker * This method may also be used to cancel items that have been scheduled 452*4d7e907cSAndroid Build Coastguard Worker * via |addExtRadioWork|, but have not yet been started (notified via 453*4d7e907cSAndroid Build Coastguard Worker * |ISupplicantCallback.onExtRadioWorkStart|). 454*4d7e907cSAndroid Build Coastguard Worker * 455*4d7e907cSAndroid Build Coastguard Worker * @return id Identifier generated for the radio work addition 456*4d7e907cSAndroid Build Coastguard Worker * (using |addExtRadioWork|). 457*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 458*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 459*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 460*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN| 461*4d7e907cSAndroid Build Coastguard Worker */ 462*4d7e907cSAndroid Build Coastguard Worker removeExtRadioWork(uint32_t id) generates (SupplicantStatus status); 463*4d7e907cSAndroid Build Coastguard Worker 464*4d7e907cSAndroid Build Coastguard Worker /** 465*4d7e907cSAndroid Build Coastguard Worker * Enable/Disable auto reconnect to networks. 466*4d7e907cSAndroid Build Coastguard Worker * Use this to prevent wpa_supplicant from trying to connect to networks 467*4d7e907cSAndroid Build Coastguard Worker * on its own. 468*4d7e907cSAndroid Build Coastguard Worker * 469*4d7e907cSAndroid Build Coastguard Worker * @param enable true to enable, false to disable. 470*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 471*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 472*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 473*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 474*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 475*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| 476*4d7e907cSAndroid Build Coastguard Worker */ 477*4d7e907cSAndroid Build Coastguard Worker enableAutoReconnect(bool enable) generates (SupplicantStatus status); 478*4d7e907cSAndroid Build Coastguard Worker}; 479