diff options
author | Ajit Vaishya <ajitv@codeaurora.org> | 2018-03-22 21:58:27 +0530 |
---|---|---|
committer | Ajit Vaishya <ajitv@codeaurora.org> | 2018-05-02 17:53:25 +0530 |
commit | ba83ef7863b10803fec265ea0de6d16495646d78 (patch) | |
tree | 70eb1e263f5bf9f63c644d5ab093f07879d91ca1 /wifi | |
parent | d1779f5d99aa3d9d0ebe517461600aa132f637a3 (diff) | |
download | android_vendor_qcom_opensource_interfaces-ba83ef7863b10803fec265ea0de6d16495646d78.tar.gz android_vendor_qcom_opensource_interfaces-ba83ef7863b10803fec265ea0de6d16495646d78.tar.bz2 android_vendor_qcom_opensource_interfaces-ba83ef7863b10803fec265ea0de6d16495646d78.zip |
wifi: Introduce qti.hardware.wifi.supplicant@2.0 HAL interface
This Vendor HAL interface aims to accommodate proprietary Wi-Fi
value adds
Change-Id: I5d6493c46f3ab27e23213ca186328299d2e7017d
CRs-Fixed: 2218381
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/current.txt | 35 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendor.hal | 75 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorIface.hal | 59 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorNetwork.hal | 42 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorP2PIface.hal | 53 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorP2PIfaceCallback.hal | 62 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorStaIface.hal | 241 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorStaIfaceCallback.hal | 148 | ||||
-rw-r--r-- | wifi/supplicant/2.0/ISupplicantVendorStaNetwork.hal | 442 |
9 files changed, 1157 insertions, 0 deletions
diff --git a/wifi/current.txt b/wifi/current.txt new file mode 100644 index 0000000..828ffaa --- /dev/null +++ b/wifi/current.txt @@ -0,0 +1,35 @@ +# Copyright (c) 2018, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# + +#HAL released in Android O + +#HAL released in Android O-MR1 + +#HAL released in Android P + diff --git a/wifi/supplicant/2.0/ISupplicantVendor.hal b/wifi/supplicant/2.0/ISupplicantVendor.hal new file mode 100644 index 0000000..6d7fd39 --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendor.hal @@ -0,0 +1,75 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + +import android.hardware.wifi.supplicant@1.1::ISupplicant; +import android.hardware.wifi.supplicant@1.0::ISupplicant; +import android.hardware.wifi.supplicant@1.0::ISupplicantIface; +import android.hardware.wifi.supplicant@1.0::SupplicantStatus; +import vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendorIface; +import android.hardware.wifi.supplicant@1.0::types; + +/** + * Vendor Interface exposed by the supplicant HIDL service registered + * with the hardware service manager. + * This is the root level object for any vendor specific supplicant interactions. + */ +interface ISupplicantVendor { + /** + * Gets a HIDL interface object for the interface corresponding to iface + * name which the supplicant already controls. + * + * @param ifaceInfo Combination of the iface type and name retrieved + * using |listInterfaces|. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_UNKOWN| + * @return iface HIDL interface object representing the interface if + * successful, null otherwise. + */ + getVendorInterface(IfaceInfo ifaceInfo) + generates (SupplicantStatus status, ISupplicantVendorIface iface); + + /** + * Retrieve a list of all the vendor interfaces controlled by the supplicant. + * + * The corresponding |ISupplicantIface| object for any interface can be + * retrieved using |getInterface| method. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN| + * @return ifaces List of all interfaces controlled by the supplicant. + */ + listVendorInterfaces() generates (SupplicantStatus status, vec<IfaceInfo> ifaces); +}; diff --git a/wifi/supplicant/2.0/ISupplicantVendorIface.hal b/wifi/supplicant/2.0/ISupplicantVendorIface.hal new file mode 100644 index 0000000..9c10675 --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorIface.hal @@ -0,0 +1,59 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + +import vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendorNetwork; +import android.hardware.wifi.supplicant@1.0::types; + +/** + * Vendor Interface exposed by the supplicant for each network interface (e.g wlan0) + * it controls. + */ +interface ISupplicantVendorIface { + /** + * Gets a HIDL interface object for the network corresponding to the + * |SupplicantNetworkId|. + * + * Use |ISupplicantNetwork.getId()| on the corresponding network HIDL + * interface object to retrieve the ID. + * + * @param id Network ID allocated to the corresponding network. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, + * |SupplicantStatusCode.FAILURE_NETWORK_UNKNOWN| + * @return network HIDL interface object representing the new network if + * successful, null otherwise. + */ + getVendorNetwork(SupplicantNetworkId id) + generates (SupplicantStatus status, ISupplicantVendorNetwork network); +}; diff --git a/wifi/supplicant/2.0/ISupplicantVendorNetwork.hal b/wifi/supplicant/2.0/ISupplicantVendorNetwork.hal new file mode 100644 index 0000000..22a4d2a --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorNetwork.hal @@ -0,0 +1,42 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + +/** + * Vendor Interface exposed by the supplicant for each network configuration it + * controls. + * A network is the supplicant's way of representing the configuration + * parameters of a Wifi service set. Service sets are identified by their + * service set identitifier (SSID). The parameters for a network includes the + * credentials, bssid, etc. + */ +interface ISupplicantVendorNetwork { +/* Dummy Interface created which is used to extend ISupplicantVendorStaNetwork */ +}; diff --git a/wifi/supplicant/2.0/ISupplicantVendorP2PIface.hal b/wifi/supplicant/2.0/ISupplicantVendorP2PIface.hal new file mode 100644 index 0000000..bfd042d --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorP2PIface.hal @@ -0,0 +1,53 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + + +import vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendorIface; +import android.hardware.wifi.supplicant@1.0::types; + +/* Vendor P2PIface HAL interface*/ + +interface ISupplicantVendorP2PIface extends @2.0::ISupplicantVendorIface{ + +/* + * Set Wifi Display device info. + * + * @param info WFDR2 device info as described in section TODO of WFD technical + * specification v2.0.0. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + setWfdR2DeviceInfo(uint8_t[4] info) generates (SupplicantStatus status); + +}; diff --git a/wifi/supplicant/2.0/ISupplicantVendorP2PIfaceCallback.hal b/wifi/supplicant/2.0/ISupplicantVendorP2PIfaceCallback.hal new file mode 100644 index 0000000..f0ad6a9 --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorP2PIfaceCallback.hal @@ -0,0 +1,62 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + +import android.hardware.wifi.supplicant@1.0::types; + +/* Vendor P2P Iface Callback interface */ + +interface ISupplicantVendorP2PIfaceCallback { + /** + * Used to indicate that a P2P device has been found. + * + * @param srcAddress MAC address of the device found. This must either + * be the P2P device address or the P2P interface address. + * @param p2pDeviceAddress P2P device address. + * @param primaryDeviceType Type of device. Refer to section B.1 of Wifi P2P + * Technical specification v1.2. + * @param deviceName Name of the device. + * @param configMethods Mask of WPS configuration methods supported by the + * device. + * @param deviceCapabilities Refer to section 4.1.4 of Wifi P2P Technical + * specification v1.2. + * @param groupCapabilites Refer to section 4.1.4 of Wifi P2P Technical + * specification v1.2. + * @param wfdDeviceInfo WFD device info as described in section 5.1.2 of WFD + * technical specification v1.0.0. + */ + oneway onR2DeviceFound( + MacAddress srcAddress, MacAddress p2pDeviceAddress, + uint8_t[8] primaryDeviceType, string deviceName, + bitfield<WpsConfigMethods> configMethods, uint8_t deviceCapabilities, + bitfield<P2pGroupCapabilityMask> groupCapabilities, uint8_t[6] wfdDeviceInfo,uint8_t[2] wfdR2DeviceInfo); + +}; + diff --git a/wifi/supplicant/2.0/ISupplicantVendorStaIface.hal b/wifi/supplicant/2.0/ISupplicantVendorStaIface.hal new file mode 100644 index 0000000..1f38895 --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorStaIface.hal @@ -0,0 +1,241 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + +import android.hardware.wifi.supplicant@1.0::types; +import vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendorIface; +import vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendorStaIfaceCallback; + +/** + * Vendor StaIface Interface + */ +interface ISupplicantVendorStaIface extends @2.0::ISupplicantVendorIface{ + /** + * Register for vendorcallbacks from this interface. + * + * These callbacks are invoked for events that are specific to this interface. + * Registration of multiple vendor callback objects is supported. These objects + * must be automatically deleted when the corresponding client process is dead or + * if this interface is removed. + * + * @param callback An instance of the |ISupplicantVendorStaIfaceCallback| HIDL + * interface object. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + registerVendorCallback(ISupplicantVendorStaIfaceCallback callback) + generates (SupplicantStatus status); + + /** + * Flush FILS HLP IEs + * Use this to flush all the HLP IEs in wpa_supplicant + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, + * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| + */ + filsHlpFlushRequest() generates (SupplicantStatus status); + + /** + * Add FILS HLP IEs + * Use this to add a HLP IE to wpa_supplicant + * + * @param dst_mac MAC address of the destination + * @param pkt The contents of the HLP IE starting from ethertype + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID|, + * |SupplicantStatusCode.FAILURE_IFACE_DISABLED| + */ + filsHlpAddRequest(MacAddress dst_mac, vec<uint8_t> pkt) + generates (SupplicantStatus status); + + /** + * Query driver Capabilities. + * + * @param capaType ASCII string, capability type ex: key_mgmt. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN| + * |SupplicantStatusCode.FAILURE_IFACE_UNKNOWN| + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + * @return String of capabilities fetched from driver + */ + getCapabilities(string capaType) + generates (SupplicantStatus status, string capabilities); + + /** + * Add the DPP bootstrap info obtained from QR code. + * + * @param uri The URI obtained from the QR code. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppAddBootstrapQrcode(string uri) + generates (SupplicantStatus status, int32_t id); + + /** + * Generate bootstrap URI based on the passed arguments + * + * @param config bootstrap generate config + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppBootstrapGenerate(uint32_t type, string chan_list, MacAddress mac_addr, + string info, string curve, string key) + generates (SupplicantStatus status, int32_t id); + + /** + * Remove bootstrap URI based on bootstrap ID + * + * @param bootstrap_id Stored bootstrap ID + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppBootstrapRemove(uint32_t id) + generates (SupplicantStatus status, int32_t dpp_status); + + /** + * Get bootstrap URI based on bootstrap ID + * + * @param bootstrap_id Stored bootstrap ID + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppGetUri(uint32_t id) + generates (SupplicantStatus status, string uri); + + /** + * start listen on the channel specified waiting to receive + * the DPP Authentication request + * + * @param frequency: DPP listen frequency + * @param dpp_role: Configurator/Enrollee role + * @param qr_mutual: Mutual authentication required + * @param netrole_ap: network role + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppStartListen(string frequency, uint32_t dpp_role, bool qr_mutual, + bool netrole_ap) + generates (SupplicantStatus status, int32_t listen_status); + + /** + * stop ongoing dpp listen + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppStopListen() + generates (SupplicantStatus status); + + /** + * Adds the DPP configurator + * + * @param curve curve used for dpp encryption + * @param key private key + * @param expiry timeout in seconds + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppConfiguratorAdd(string curve, string key, uint32_t expiry) + generates (SupplicantStatus status, int32_t id); + + /** + * Removed the DPP configurator + * + * @param id dpp configuration id + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppConfiguratorRemove(uint32_t id) + generates (SupplicantStatus status, int32_t conf_status); + + /** + * Start DPP Authentication + * + * @param config bootstrap generate config + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppStartAuth(int32_t peer_bootstrap_id, int32_t own_bootstrap_id, + int32_t dpp_role, string ssid, string password, bool isAp, + bool isDpp, int32_t conf_id, int32_t expiry) + generates (SupplicantStatus status, int32_t auth_status); + + /** + * Retrieve Private key of configurator + * + * @param id Configurator id + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_IFACE_INVALID| + */ + dppConfiguratorGetKey(uint32_t id) + generates (SupplicantStatus status, string key); +}; diff --git a/wifi/supplicant/2.0/ISupplicantVendorStaIfaceCallback.hal b/wifi/supplicant/2.0/ISupplicantVendorStaIfaceCallback.hal new file mode 100644 index 0000000..7016072 --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorStaIfaceCallback.hal @@ -0,0 +1,148 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + +import android.hardware.wifi.supplicant@1.0::ISupplicantStaIfaceCallback; +import android.hardware.wifi.supplicant@1.0::types; + +/** + * Vendor StaIface Callback Interface + */ +interface ISupplicantVendorStaIfaceCallback { + /** + * Used to indicate a state change event on this particular iface. If this + * event is triggered by a particular network, the |SupplicantNetworkId|, + * |ssid|, |bssid| parameters must indicate the parameters of the network/AP + * which caused this state transition. + * + * @param newState New State of the interface. This must be one of the |State| + * values above. + * @param bssid BSSID of the corresponding AP which caused this state + * change event. This must be zero'ed if this event is not + * specific to a particular network. + * @param id ID of the corresponding network which caused this + * state change event. This must be invalid (UINT32_MAX) if this + * event is not specific to a particular network. + * @param ssid SSID of the corresponding network which caused this state + * change event. This must be empty if this event is not specific + * to a particular network. + * @param filsHlpSent If FILS HLP IEs were included in this association. + */ + oneway onVendorStateChanged( + State newState, Bssid bssid, SupplicantNetworkId id, Ssid ssid, bool filsHlpSent); + + /** DPP Authentication parameter. */ + enum DppAuthParam : uint8_t { + CONNECTOR = 1 << 0, + C_SIGN_KEY = 1 << 1, + NET_ACCESS_KEY = 1 << 2, + NET_ACCESS_KEY_EXPIRY = 1 << 3, + }; + + /** DPP Config message type. */ + enum DppConfigType : uint8_t { + FAILED = 0, + SENT = 1, + RECEIVED = 2, + }; + + /** + * Used to indicate dpp authentication success status. + * + * @param initiator Indicates if this is received on initiator(1) side + * or responder side (0) + */ + oneway onDppAuthSuccess(bool initiator); + + /** + * Used to indicate dpp capability of the peer. + * + * @param initiator Indicates if this is for initiator(1) or responder(0) + * At the Initiator with capab showing Responder’s capabilities. + * At the Responder with capab showing Initiator’s capabilities. + */ + oneway onDppNotCompatible(uint8_t capab, bool initiator); + + /** + * Used to indicate pending dpp response. + */ + oneway onDppResponsePending(); + + /** + * Current dpp authentication needs mutual authentication. DPP: Mutual + * authentication required with QR Codes, but peer info is not yet available. + * Request more time. + * + * @param bootstrapData Hash of initiator's public bootstrap key. + * + */ + oneway onDppScanPeerQrCode(vec<uint8_t> bootstrapData); + + /** + * Used to indicate if configuration event at the Enrollee/Configurator. + * + * @param type Type of configuration messaage. This must be one of + * |DppConfigType|. + * @param ssid SSID (in hex format) received in the Configuration Object + * at Enrollee side. + * @param connector Connector (in hex format) received in the Configuration + * Object at Enrollee side. + * @param c_sign C-Sign-Key (in hex format) received in the Configuration + * Object at Enrollee side. + * @param net_access Net-Access-Key (in hex format) received in the + * Configuration Object at Enrollee side. + * @param net_access_expiry Net-Access-Key Expiry time received in the + * Configuration Object at Enrollee side. + * @param passphrase Passphrase as string received in the Configuration + * Object at Enrollee side. + * @param psk PSK received in the Configuration Object at Enrollee side. + */ + oneway onDppConf(uint8_t type, Ssid ssid, string connector, + vec<uint8_t> c_sign, vec<uint8_t> net_access, + uint32_t net_access_expiry, string passphrase, + vec<uint8_t> psk); + + /** + * Used to indicate missing dpp authentication param when trying to connect + * to a DPP network. + * + * @param auth Indicates what requisite fields are missing/expired. It sets + * missing param bitfield from |DppAuthParam|. + */ + oneway onDppMissingAuth(bitfield<DppAuthParam> auth); + + /** + * This event is received when a DPP network is added by on successful DPP + * Provisioning on the Enrollee. + * + * @param id Network id of added DPP network. + */ + oneway onDppNetworkId(uint32_t id); +}; diff --git a/wifi/supplicant/2.0/ISupplicantVendorStaNetwork.hal b/wifi/supplicant/2.0/ISupplicantVendorStaNetwork.hal new file mode 100644 index 0000000..0360326 --- /dev/null +++ b/wifi/supplicant/2.0/ISupplicantVendorStaNetwork.hal @@ -0,0 +1,442 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are +* met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above +* copyright notice, this list of conditions and the following +* disclaimer in the documentation and/or other materials provided +* with the distribution. +* * Neither the name of The Linux Foundation nor the names of its +* contributors may be used to endorse or promote products derived +* from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ + +package vendor.qti.hardware.wifi.supplicant@2.0; + + +import android.hardware.wifi.supplicant@1.0::ISupplicantStaNetworkCallback; +import android.hardware.wifi.supplicant@1.0::types; +import vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendorNetwork; + + +/** + * Vendor StaNetwork Interface extend to vendor.qti.hardware.wifi.supplicant@2.0 ISupplicantVendorNetwork + */ +interface ISupplicantVendorStaNetwork extends @2.0::ISupplicantVendorNetwork { + /** Possble mask of values for VendorKeyMgmt param. */ + enum VendorKeyMgmtMask : uint32_t { + SAE = 1 << 10, + WAPI_PSK = 1 << 12, + WAPI_CERT = 1 << 13, + IEEE8021X_SUITEB = 1 << 16, + IEEE8021X_SUITEB_192 = 1 << 17, + FILS_SHA256 = 1 << 18, + FILS_SHA384 = 1 << 19, + OWE = 1 << 22, + DPP = 1 << 23, + }; + + /** Possble mask of values for VendorProto param. */ + enum VendorProtoMask : uint32_t { + WAPI = 1 << 2, + }; + + /** Possble mask of values for VendorAuthAlg param. */ + enum VendorAuthAlgMask : uint32_t { + FILS_SK = 1 << 5, + }; + + /** Possble mask of values for GroupCipher param. */ + enum VendorGroupCipherMask : uint32_t { + GCMP = 1 << 6, + GCMP_256 = 1 << 8, + }; + + /** Possble mask of values for PairwiseCipher param. */ + enum VendorPairwiseCipherMask : uint32_t { + GCMP = 1 << 6, + GCMP_256 = 1 << 8, + }; + + /** Possble mask of values for GroupMgmtCipher param. */ + enum VendorGroupMgmtCipherMask : uint32_t { + BIP_GMAC_128 = 1 << 11, + BIP_GMAC_256 = 1 << 12, + BIP_CMAC_256 = 1 << 13, + }; + + /** Common config Vendor Param Method */ + + /** + * Set key management mask for the network. + * + * @param keyMgmtMask value to set. + * Combination of |KeyMgmtMask| values. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setVendorKeyMgmt(bitfield<VendorKeyMgmtMask> keyMgmtMask) generates (SupplicantStatus status); + + /** + * Set Protocol mask for the network. + * + * @param ProtoMask value to set. + * Combination of |ProtoMask| values. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setVendorProto(bitfield<VendorProtoMask> ProtoMask) generates (SupplicantStatus status); + + /** + * Set auth alg mask for the network. + * + * @param authAlgMask value to set. + * Combination of |authAlgMask| values. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setVendorAuthAlg(bitfield<VendorAuthAlgMask> authAlgMask) generates (SupplicantStatus status); + + /** + * Set group cipher mask for the network. + * + * @param groupCipherMask value to set. + * Combination of |groupCipherMask| values. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setVendorGroupCipher(bitfield<VendorGroupCipherMask> groupCipherMask) + generates (SupplicantStatus status); + + /** + * Set pairwise cipher mask for the network. + * + * @param pairwiseCipherMask value to set. + * Combination of |pairwiseCipherMask| values. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setVendorPairwiseCipher(bitfield<VendorPairwiseCipherMask> pairwiseCipherMask) + generates (SupplicantStatus status); + + /** + * Get the key mgmt mask set for the network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return keyMgmtMask Combination of |VendorKeyMgmtMask| values. + */ + getVendorKeyMgmt() + generates (SupplicantStatus status, bitfield<VendorKeyMgmtMask> keyMgmtMask); + + /** + * Get the protocol mask set for the network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return ProtoMask Combination of |VendorProtoMask| values. + */ + getVendorProto() + generates (SupplicantStatus status, bitfield<VendorProtoMask> ProtoMask); + + /** + * Get the auth alg mask set for the network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return authAlgMask Combination of |VendorAuthAlgMask| values. + */ + getVendorAuthAlg() + generates (SupplicantStatus status, bitfield<VendorAuthAlgMask> authAlgMask); + + /** + * Get the group cipher mask set for the network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return groupCipherMask Combination of |VendorGroupCipherMask| values. + */ + getVendorGroupCipher() + generates (SupplicantStatus status, + bitfield<VendorGroupCipherMask> groupCipherMask); + + /** + * Get the pairwise cipher mask set for the network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return groupCipherMask Combination of |VendorPairwiseCipherMask| values. + */ + getVendorPairwiseCipher() + generates (SupplicantStatus status, + bitfield<VendorPairwiseCipherMask> pairwiseCipherMask); + + /** FILS config Vendor Method */ + + /** + * Enable EAP ERP for this network. + * + * @param enable true to set, false otherwise. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setEapErp(bool enable) generates (SupplicantStatus status); + + /** WPA3 config Vendor Method */ + + /** + * Bitfield of allowed group management ciphers + * @param enable true to set, false otherwise. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setGroupMgmtCipher(uint32_t group_mgmt_cipher) generates (SupplicantStatus status); + + /** + * Set phase1 (outer authentication) parameters. + * + * @param Pre-configured EAP parameters or %NULL. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setEapPhase1Params(string params) generates (SupplicantStatus status); + + /** + * Set OpenSSL cipher string. + * + * @param This is an OpenSSL specific configuration option for configuring the + * default ciphers. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setEapOpensslCiphers(string Ciphers) generates (SupplicantStatus status); + + /** + * Set DPP Connector for this network. + * + * @param connector string to set. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setDppConnector(string connector) generates (SupplicantStatus status); + + /** + * Set DPP Net Access Key for this network. + * + * @param netAccessKey value to set. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setDppNetAccessKey(vec<uint8_t> netAccessKey) + generates (SupplicantStatus status); + + /** + * Set DPP Net Access Key Expiry time for this network. + * + * @param netAccessKeyExpiry integer to set. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setDppNetAccessKeyExpiry(uint32_t netAccessKeyExpiry) + generates (SupplicantStatus status); + + /** + * Set DPP C-sign for this network. + * + * @param csign value to set. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setDppCsign(vec<uint8_t> csign) generates (SupplicantStatus status); + + /** WAPI config Vendor Method */ + + /** + * Set wapiPskType for this network. + * + * @param psk type value to set. + * 0: ASCII; 1: HEX. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + + setWapiPskType(uint32_t type) generates (SupplicantStatus status); + + /** + * Set wapiPsk for this network. + * + * @param psk value to set. + * Max length is 64. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setWapiPsk(string psk) generates (SupplicantStatus status); + + /** + * Set wapiCertSelMode for this network. + * + * @param cert select mode to set. + * 0: automatic; 1: manual. + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setWapiCertSelMode(uint32_t mode) generates (SupplicantStatus status); + + /** + * Set wapiCertSel for this network. + * + * @param selected cert name. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setWapiCertSel(string name) generates (SupplicantStatus status); + + /** + * Get wapiPskType for this network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return psk type value. + */ + getWapiPskType() generates (SupplicantStatus status, uint32_t type); + + /** + * Get wapiPsk for this network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return psk value. + */ + getWapiPsk() generates (SupplicantStatus status, string psk); + + /** + * Get wapiCertSelMode for this network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return cert select mode value. + */ + getWapiCertSelMode() generates (SupplicantStatus status, uint32_t mode); + + /** + * Get wapiCertSel for this network. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + * @return selected cert value. + */ + getWapiCertSel() generates (SupplicantStatus status, string name); + + /** EAP SIM Vendor Method */ + + /** + * Set simnumber for this network. + * + * @param sim_num. + * + * @return status Status of the operation. + * Possible status codes: + * |SupplicantStatusCode.SUCCESS|, + * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, + * |SupplicantStatusCode.FAILURE_UNKNOWN|, + * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| + */ + setVendorSimNumber(uint32_t sim_num) generates (SupplicantStatus status); +}; |