Merge "Wifi: MBO-OCE feature support (phase 1)"

This commit is contained in:
Sunil Ravi
2019-11-08 22:57:25 +00:00
committed by Android (Google) Code Review
4 changed files with 74 additions and 2 deletions

View File

@@ -601,10 +601,10 @@ b74fe72cfe438f50e772e6a307657ff449d5bde83c15dd1f140ff2edbe73499c android.hardwar
033eae03c09ebc75e82db37bc39995dfaa9086745577b44d9e14e9ccb48bd8cc android.hardware.vibrator@1.4::types
3e01d4446cd69fd1c48f8572efd97487bc179564b32bd795800b97bbe10be37b android.hardware.wifi@1.4::IWifi
a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardware.wifi.supplicant@1.3::ISupplicant
0a7ff83fd0326b82232e1609da98f34960be11335df72fc407ad238d7bd0e081 android.hardware.wifi.supplicant@1.3::ISupplicantStaIface
44445b8a03d7b9e68b2fbd954672c18a8fce9e32851b0692f4f4ab3407f86ecb android.hardware.wifi.supplicant@1.3::ISupplicantStaIface
619fc9839ec6e369cfa9b28e3e9412e6885720ff8f9b5750c1b6ffb905120391 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback
c9273429fcf98d797d3bb07fdba6f1be95bf960f9255cde169fd1ca4db85f856 android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork
b0f8c9cd61a45a8c1b4a8e40913ecaea0921011cbe2305a6fa5a2feaa0d36c30 android.hardware.wifi.supplicant@1.3::types
9b0a3ab6f4f74b971ed094426d8a443e29b512ff03e1ab50c07156396cdb2483 android.hardware.wifi.supplicant@1.3::types
41c602462ccd1b19cfd645994be4de4c07fc197ff58a54e84476b31908e61e21 android.hardware.radio@1.5::types
a8691c71747c3f14f7a043598e856425077f755e55990507a9132ad62f8ab3f7 android.hardware.radio@1.5::IRadio
a62a93faf173b14a6175b683ebf61ffa568dc61f81e369d2dce7b1265e86cf2f android.hardware.radio@1.5::IRadioIndication

View File

@@ -54,4 +54,26 @@ interface ISupplicantStaIface extends @1.2::ISupplicantStaIface {
*/
getConnectionCapabilities()
generates (SupplicantStatus status, ConnectionCapabilities capabilities);
/**
* Get wpa driver capabilities.
*
* @return status Status of the operation, and a bitmap of wpa driver features.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
*/
getWpaDriverCapabilities() generates (SupplicantStatus status,
bitfield<WpaDriverCapabilitiesMask> driverCapabilitiesMask);
/**
* Set MBO cellular data status.
*
* @param available true means cellular data available, false otherwise.
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|
*/
setMboCellularDataStatus(bool available) generates (SupplicantStatus status);
};

View File

@@ -58,3 +58,17 @@ struct ConnectionCapabilities {
*/
WifiTechnology technology;
};
/**
* WPA Driver capability.
*/
enum WpaDriverCapabilitiesMask : uint32_t {
/**
* Multi Band Operation.
*/
MBO = 1 << 0,
/**
* Optimized Connectivity Experience.
*/
OCE = 1 << 1,
};

View File

@@ -41,6 +41,7 @@ using ::android::hardware::wifi::supplicant::V1_3::ConnectionCapabilities;
using ::android::hardware::wifi::supplicant::V1_3::ISupplicantStaIface;
using ::android::hardware::wifi::supplicant::V1_3::ISupplicantStaIfaceCallback;
using ::android::hardware::wifi::supplicant::V1_3::ISupplicantStaNetwork;
using ::android::hardware::wifi::supplicant::V1_3::WpaDriverCapabilitiesMask;
class SupplicantStaIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
public:
@@ -191,3 +192,38 @@ TEST_F(SupplicantStaIfaceHidlTest, GetConnectionCapabilities) {
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
});
}
/*
* GetWpaDriverCapabilities
*/
TEST_F(SupplicantStaIfaceHidlTest, GetWpaDriverCapabilities) {
sta_iface_->getWpaDriverCapabilities(
[&](const SupplicantStatus& status, uint32_t) {
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
});
}
/*
* SetMboCellularDataStatus
*/
TEST_F(SupplicantStaIfaceHidlTest, SetMboCellularDataStatus) {
uint32_t driverCapMask = 0;
// Get MBO support from the device.
sta_iface_->getWpaDriverCapabilities(
[&](const SupplicantStatus& status, uint32_t driverCapMaskInternal) {
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
driverCapMask = driverCapMaskInternal;
});
SupplicantStatusCode expectedStatusCode =
(driverCapMask & WpaDriverCapabilitiesMask::MBO)
? SupplicantStatusCode::SUCCESS
: SupplicantStatusCode::FAILURE_UNKNOWN;
sta_iface_->setMboCellularDataStatus(
true, [expectedStatusCode](const SupplicantStatus& status) {
EXPECT_EQ(expectedStatusCode, status.code);
});
}