1/* 2 * Copyright 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.hardware.wifi.supplicant@1.3; 18 19import @1.0::SupplicantStatus; 20import @1.2::ISupplicantStaIface; 21import ISupplicantStaNetwork; 22import ISupplicantStaIfaceCallback; 23import @1.0::MacAddress; 24 25/** 26 * Interface exposed by the supplicant for each station mode network 27 * interface (e.g wlan0) it controls. 28 */ 29interface ISupplicantStaIface extends @1.2::ISupplicantStaIface { 30 /** 31 * Register for callbacks from this interface. 32 * 33 * These callbacks are invoked for events that are specific to this interface. 34 * Registration of multiple callback objects is supported. These objects must 35 * be automatically deleted when the corresponding client process is dead or 36 * if this interface is removed. 37 * 38 * @param callback An instance of the |ISupplicantStaIfaceCallback| HIDL 39 * interface object. 40 * @return status Status of the operation. 41 * Possible status codes: 42 * |SupplicantStatusCode.SUCCESS|, 43 * |SupplicantStatusCode.FAILURE_UNKNOWN|, 44 * |SupplicantStatusCode.FAILURE_IFACE_INVALID| 45 */ 46 registerCallback_1_3(ISupplicantStaIfaceCallback callback) 47 generates (SupplicantStatus status); 48 49 /** 50 * Get Connection capabilities 51 * 52 * @return status Status of the operation, and connection capabilities. 53 * Possible status codes: 54 * |SupplicantStatusCode.SUCCESS|, 55 * |SupplicantStatusCode.FAILURE_UNKNOWN|, 56 */ 57 getConnectionCapabilities() 58 generates (SupplicantStatus status, ConnectionCapabilities capabilities); 59 60 /** 61 * Get wpa driver capabilities. 62 * 63 * @return status Status of the operation, and a bitmap of wpa driver features. 64 * Possible status codes: 65 * |SupplicantStatusCode.SUCCESS|, 66 * |SupplicantStatusCode.FAILURE_UNKNOWN|, 67 */ 68 getWpaDriverCapabilities() generates (SupplicantStatus status, 69 bitfield<WpaDriverCapabilitiesMask> driverCapabilitiesMask); 70 71 /** 72 * Set Wi-Fi Alliance Agile Multiband (MBO) cellular data status. 73 * 74 * @param available true means cellular data available, false otherwise. 75 * @return status Status of the operation. 76 * Possible status codes: 77 * |SupplicantStatusCode.SUCCESS|, 78 * |SupplicantStatusCode.FAILURE_UNKNOWN| 79 */ 80 setMboCellularDataStatus(bool available) generates (SupplicantStatus status); 81 82 /** 83 * Get Key management capabilities of the device 84 * 85 * @return status Status of the operation, and a bitmap of key management mask. 86 * Possible status codes: 87 * |SupplicantStatusCode.SUCCESS|, 88 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, 89 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, 90 * |SupplicantStatusCode.FAILURE_UNKNOWN| 91 */ 92 getKeyMgmtCapabilities_1_3() 93 generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask); 94 95 /** 96 * Flush fast initial link setup (IEEE 802.11ai FILS) HLP packets. 97 * Use this to flush all the higher layer protocol (HLP) packets added in 98 * wpa_supplicant to send in FILS (Re)Association Request frame 99 * (Eg: DHCP discover packet). 100 * 101 * @return status Status of the operation. 102 * Possible status codes: 103 * |SupplicantStatusCode.SUCCESS|, 104 * |SupplicantStatusCode.FAILURE_UNKNOWN|, 105 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 106 * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| 107 */ 108 filsHlpFlushRequest() generates (SupplicantStatus status); 109 110 /** 111 * Add fast initial link setup (IEEE 802.11ai FILS) HLP packets. 112 * Use this to add higher layer protocol (HLP) packet in FILS (Re)Association Request frame 113 * (Eg: DHCP discover packet). 114 * 115 * @param dst_mac MAC address of the destination 116 * @param pkt The contents of the HLP packet starting from ethertype 117 * @return status Status of the operation. 118 * Possible status codes: 119 * |SupplicantStatusCode.SUCCESS|, 120 * |SupplicantStatusCode.FAILURE_UNKNOWN|, 121 * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, 122 * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| 123 */ 124 filsHlpAddRequest(MacAddress dst_mac, vec<uint8_t> pkt) generates (SupplicantStatus status); 125}; 126