Merge "supplicant(hidl): add support for 60GHz (WiGig)"
diff --git a/wpa_supplicant/hidl/1.4/sta_network.cpp b/wpa_supplicant/hidl/1.4/sta_network.cpp
index d5c7f87..35524f7 100644
--- a/wpa_supplicant/hidl/1.4/sta_network.cpp
+++ b/wpa_supplicant/hidl/1.4/sta_network.cpp
@@ -22,6 +22,7 @@
using android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork;
using ISupplicantStaNetworkV1_2 = android::hardware::wifi::supplicant::V1_2::ISupplicantStaNetwork;
using ISupplicantStaNetworkV1_3 = android::hardware::wifi::supplicant::V1_3::ISupplicantStaNetwork;
+using ISupplicantStaNetworkV1_4 = android::hardware::wifi::supplicant::V1_4::ISupplicantStaNetwork;
constexpr uint8_t kZeroBssid[6] = {0, 0, 0, 0, 0, 0};
@@ -60,7 +61,8 @@
static_cast<uint32_t>(
ISupplicantStaNetwork::GroupCipherMask::GTK_NOT_USED) |
static_cast<uint32_t>(ISupplicantStaNetworkV1_2::GroupCipherMask::GCMP_256) |
- static_cast<uint32_t>(ISupplicantStaNetworkV1_3::GroupCipherMask::SMS4));
+ static_cast<uint32_t>(ISupplicantStaNetworkV1_3::GroupCipherMask::SMS4) |
+ static_cast<uint32_t>(ISupplicantStaNetworkV1_4::GroupCipherMask::GCMP_128));
constexpr uint32_t kAllowedPairwisewCipherMask =
(static_cast<uint32_t>(ISupplicantStaNetwork::PairwiseCipherMask::NONE) |
static_cast<uint32_t>(ISupplicantStaNetwork::PairwiseCipherMask::TKIP) |
@@ -68,7 +70,8 @@
static_cast<uint32_t>(
ISupplicantStaNetworkV1_2::PairwiseCipherMask::GCMP_256) |
static_cast<uint32_t>(
- ISupplicantStaNetworkV1_3::PairwiseCipherMask::SMS4));
+ ISupplicantStaNetworkV1_3::PairwiseCipherMask::SMS4) |
+ static_cast<uint32_t>(ISupplicantStaNetworkV1_4::PairwiseCipherMask::GCMP_128));
constexpr uint32_t kAllowedGroupMgmtCipherMask =
(static_cast<uint32_t>(
ISupplicantStaNetworkV1_2::GroupMgmtCipherMask::BIP_GMAC_128) |
@@ -409,6 +412,13 @@
&StaNetwork::setWapiCertSuiteInternal, _hidl_cb, suite);
}
+Return<void> StaNetwork::setEdmg(bool enable, setEdmg_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+ &StaNetwork::setEdmgInternal, _hidl_cb, enable);
+}
+
Return<void> StaNetwork::getSsid(getSsid_cb _hidl_cb)
{
return validateAndCall(
@@ -637,6 +647,13 @@
&StaNetwork::getWapiCertSuiteInternal, _hidl_cb);
}
+Return<void> StaNetwork::getEdmg(getEdmg_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+ &StaNetwork::getEdmgInternal, _hidl_cb);
+}
+
Return<void> StaNetwork::enable(bool no_connect, enable_cb _hidl_cb)
{
return validateAndCall(
@@ -928,6 +945,38 @@
&StaNetwork::setEapErpInternal, _hidl_cb, enable);
}
+Return<void> StaNetwork::setGroupCipher_1_4(
+ uint32_t group_cipher_mask, setGroupCipher_1_4_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+ &StaNetwork::setGroupCipher_1_4Internal, _hidl_cb, group_cipher_mask);
+}
+
+Return<void> StaNetwork::getGroupCipher_1_4(getGroupCipher_1_4_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+ &StaNetwork::getGroupCipher_1_4Internal, _hidl_cb);
+}
+
+Return<void> StaNetwork::setPairwiseCipher_1_4(
+ uint32_t pairwise_cipher_mask, setPairwiseCipher_1_4_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+ &StaNetwork::setPairwiseCipher_1_4Internal, _hidl_cb,
+ pairwise_cipher_mask);
+}
+
+Return<void> StaNetwork::getPairwiseCipher_1_4(
+ getPairwiseCipher_1_4_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_NETWORK_INVALID,
+ &StaNetwork::getPairwiseCipher_1_4Internal, _hidl_cb);
+}
+
std::pair<SupplicantStatus, uint32_t> StaNetwork::getIdInternal()
{
return {{SupplicantStatusCode::SUCCESS, ""}, network_id_};
@@ -1028,6 +1077,14 @@
return {SupplicantStatusCode::SUCCESS, ""};
}
+SupplicantStatus StaNetwork::setEdmgInternal(bool enable)
+{
+ struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
+ wpa_ssid->enable_edmg = enable ? 1 : 0;
+ resetInternalStateAfterParamsUpdate();
+ return {SupplicantStatusCode::SUCCESS, ""};
+}
+
SupplicantStatus StaNetwork::setGroupCipherInternal(uint32_t group_cipher_mask)
{
return {SupplicantStatusCode::FAILURE_UNKNOWN, "deprecated"};
@@ -1794,6 +1851,13 @@
return {{SupplicantStatusCode::SUCCESS, ""}, {wpa_ssid->id_str}};
}
+std::pair<SupplicantStatus, bool> StaNetwork::getEdmgInternal()
+{
+ struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
+ return {{SupplicantStatusCode::SUCCESS, ""},
+ (wpa_ssid->enable_edmg == 1)};
+}
+
std::pair<SupplicantStatus, std::vector<uint8_t>>
StaNetwork::getWpsNfcConfigurationTokenInternal()
{
@@ -2217,6 +2281,27 @@
SupplicantStatus StaNetwork::setGroupCipher_1_3Internal(uint32_t group_cipher_mask)
{
+ return {SupplicantStatusCode::FAILURE_UNKNOWN, "deprecated"};
+}
+
+std::pair<SupplicantStatus, uint32_t> StaNetwork::getGroupCipher_1_3Internal()
+{
+ return {{SupplicantStatusCode::FAILURE_UNKNOWN, "deprecated"}, 0};
+}
+
+SupplicantStatus StaNetwork::setPairwiseCipher_1_3Internal(
+ uint32_t pairwise_cipher_mask)
+{
+ return {SupplicantStatusCode::FAILURE_UNKNOWN, "deprecated"};
+}
+
+std::pair<SupplicantStatus, uint32_t> StaNetwork::getPairwiseCipher_1_3Internal()
+{
+ return {{SupplicantStatusCode::FAILURE_UNKNOWN, "deprecated"}, 0};
+}
+
+SupplicantStatus StaNetwork::setGroupCipher_1_4Internal(uint32_t group_cipher_mask)
+{
struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
if (group_cipher_mask & ~kAllowedGroupCipherMask) {
return {SupplicantStatusCode::FAILURE_ARGS_INVALID, ""};
@@ -2227,14 +2312,14 @@
return {SupplicantStatusCode::SUCCESS, ""};
}
-std::pair<SupplicantStatus, uint32_t> StaNetwork::getGroupCipher_1_3Internal()
+std::pair<SupplicantStatus, uint32_t> StaNetwork::getGroupCipher_1_4Internal()
{
struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
return {{SupplicantStatusCode::SUCCESS, ""},
wpa_ssid->group_cipher & kAllowedGroupCipherMask};
}
-SupplicantStatus StaNetwork::setPairwiseCipher_1_3Internal(
+SupplicantStatus StaNetwork::setPairwiseCipher_1_4Internal(
uint32_t pairwise_cipher_mask)
{
struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
@@ -2248,7 +2333,7 @@
return {SupplicantStatusCode::SUCCESS, ""};
}
-std::pair<SupplicantStatus, uint32_t> StaNetwork::getPairwiseCipher_1_3Internal()
+std::pair<SupplicantStatus, uint32_t> StaNetwork::getPairwiseCipher_1_4Internal()
{
struct wpa_ssid *wpa_ssid = retrieveNetworkPtr();
return {{SupplicantStatusCode::SUCCESS, ""},
diff --git a/wpa_supplicant/hidl/1.4/sta_network.h b/wpa_supplicant/hidl/1.4/sta_network.h
index 9a44bfb..83b47d0 100644
--- a/wpa_supplicant/hidl/1.4/sta_network.h
+++ b/wpa_supplicant/hidl/1.4/sta_network.h
@@ -15,7 +15,7 @@
#include <android-base/macros.h>
-#include <android/hardware/wifi/supplicant/1.3/ISupplicantStaNetwork.h>
+#include <android/hardware/wifi/supplicant/1.4/ISupplicantStaNetwork.h>
#include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.h>
extern "C"
@@ -45,7 +45,7 @@
* object is used for control operations on a specific network
* controlled by wpa_supplicant.
*/
-class StaNetwork : public V1_3::ISupplicantStaNetwork
+class StaNetwork : public V1_4::ISupplicantStaNetwork
{
public:
StaNetwork(
@@ -133,6 +133,7 @@
const hidl_string& id_str, setIdStr_cb _hidl_cb) override;
Return<void> setUpdateIdentifier(
uint32_t id, setUpdateIdentifier_cb _hidl_cb) override;
+ Return<void> setEdmg(bool enable, setEdmg_cb _hidl_cb) override;
Return<void> getSsid(getSsid_cb _hidl_cb) override;
Return<void> getBssid(getBssid_cb _hidl_cb) override;
Return<void> getScanSsid(getScanSsid_cb _hidl_cb) override;
@@ -172,6 +173,7 @@
Return<void> getIdStr(getIdStr_cb _hidl_cb) override;
Return<void> getWpsNfcConfigurationToken(
getWpsNfcConfigurationToken_cb _hidl_cb) override;
+ Return<void> getEdmg(getEdmg_cb _hidl_cb) override;
Return<void> enable(bool no_connect, enable_cb _hidl_cb) override;
Return<void> disable(disable_cb _hidl_cb) override;
Return<void> select(select_cb _hidl_cb) override;
@@ -256,6 +258,16 @@
std::function<void(const SupplicantStatus &status)> _hidl_cb)
override;
Return<void> setEapErp(bool enable, setEapErp_cb _hidl_cb) override;
+ Return<void> setPairwiseCipher_1_4(
+ uint32_t pairwise_cipher_mask,
+ setPairwiseCipher_1_4_cb _hidl_cb) override;
+ Return<void> getPairwiseCipher_1_4(
+ getPairwiseCipher_1_4_cb _hidl_cb) override;
+ Return<void> setGroupCipher_1_4(
+ uint32_t group_cipher_mask,
+ setGroupCipher_1_4_cb _hidl_cb) override;
+ Return<void> getGroupCipher_1_4(
+ getGroupCipher_1_4_cb _hidl_cb) override;
private:
// Corresponding worker functions for the HIDL methods.
@@ -305,6 +317,7 @@
SupplicantStatus setProactiveKeyCachingInternal(bool enable);
SupplicantStatus setIdStrInternal(const std::string& id_str);
SupplicantStatus setUpdateIdentifierInternal(uint32_t id);
+ SupplicantStatus setEdmgInternal(bool enable);
std::pair<SupplicantStatus, std::vector<uint8_t>> getSsidInternal();
std::pair<SupplicantStatus, std::array<uint8_t, 6>> getBssidInternal();
std::pair<SupplicantStatus, bool> getScanSsidInternal();
@@ -345,6 +358,7 @@
std::pair<SupplicantStatus, std::string> getIdStrInternal();
std::pair<SupplicantStatus, std::vector<uint8_t>>
getWpsNfcConfigurationTokenInternal();
+ std::pair<SupplicantStatus, bool> getEdmgInternal();
SupplicantStatus enableInternal(bool no_connect);
SupplicantStatus disableInternal();
SupplicantStatus selectInternal();
@@ -388,6 +402,11 @@
uint32_t pairwise_cipher_mask);
SupplicantStatus setWapiPskInternal(const std::vector<uint8_t>& psk);
std::pair<SupplicantStatus, std::vector<uint8_t>> getWapiPskInternal();
+ std::pair<SupplicantStatus, uint32_t> getGroupCipher_1_4Internal();
+ SupplicantStatus setGroupCipher_1_4Internal(uint32_t group_cipher_mask);
+ std::pair<SupplicantStatus, uint32_t> getPairwiseCipher_1_4Internal();
+ SupplicantStatus setPairwiseCipher_1_4Internal(
+ uint32_t pairwise_cipher_mask);
struct wpa_ssid* retrieveNetworkPtr();
struct wpa_supplicant* retrieveIfacePtr();