summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorAjit Vaishya <ajitv@codeaurora.org>2018-03-22 21:58:27 +0530
committerAjit Vaishya <ajitv@codeaurora.org>2018-05-02 17:53:25 +0530
commitba83ef7863b10803fec265ea0de6d16495646d78 (patch)
tree70eb1e263f5bf9f63c644d5ab093f07879d91ca1 /wifi
parentd1779f5d99aa3d9d0ebe517461600aa132f637a3 (diff)
downloadandroid_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.txt35
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendor.hal75
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorIface.hal59
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorNetwork.hal42
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorP2PIface.hal53
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorP2PIfaceCallback.hal62
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorStaIface.hal241
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorStaIfaceCallback.hal148
-rw-r--r--wifi/supplicant/2.0/ISupplicantVendorStaNetwork.hal442
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);
+};