wifi: Adds a new vendor HAL API for MLO SAP
1. Creates a new ApIfaceParams for all types of AP iface creation
and deprecated the old APIs.
2. Add usesMlo in ApIface to indicate Iface type for MLO SAP.
PS: Also rename isMlo to usesMlo in hostapd hal.
Bug: 362355566
Test: Build & manuel
Change-Id: I2460d1d00e4884c5ae22f829ec69df458a039175
diff --git a/wifi/aidl/default/wifi_ap_iface.h b/wifi/aidl/default/wifi_ap_iface.h
index 7378f98..e07154d 100644
--- a/wifi/aidl/default/wifi_ap_iface.h
+++ b/wifi/aidl/default/wifi_ap_iface.h
@@ -33,13 +33,15 @@
*/
class WifiApIface : public BnWifiApIface {
public:
- WifiApIface(const std::string& ifname, const std::vector<std::string>& instances,
+ WifiApIface(const std::string& ifname, const bool usesMlo,
+ const std::vector<std::string>& instances,
const std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal,
const std::weak_ptr<iface_util::WifiIfaceUtil> iface_util);
// Refer to |WifiChip::invalidate()|.
void invalidate();
bool isValid();
std::string getName();
+ bool usesMlo();
void removeInstance(std::string instance);
// AIDL methods exposed.
@@ -49,6 +51,7 @@
ndk::ScopedAStatus getFactoryMacAddress(std::array<uint8_t, 6>* _aidl_return) override;
ndk::ScopedAStatus resetToFactoryMacAddress() override;
ndk::ScopedAStatus getBridgedInstances(std::vector<std::string>* _aidl_return) override;
+ ndk::ScopedAStatus usesMlo(bool* _aidl_return) override;
private:
// Corresponding worker functions for the AIDL methods.
@@ -61,11 +64,18 @@
std::pair<std::vector<std::string>, ndk::ScopedAStatus> getBridgedInstancesInternal();
std::string ifname_;
+ bool uses_mlo_;
std::vector<std::string> instances_;
std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal_;
std::weak_ptr<iface_util::WifiIfaceUtil> iface_util_;
bool is_valid_;
+ // The mlo is using one interface but owning two link instances.
+ // The operating should be based on interface.
+ inline std::string getOperatingInstanceName() {
+ return (instances_.size() > 0 && !uses_mlo_) ? instances_[0] : ifname_;
+ };
+
DISALLOW_COPY_AND_ASSIGN(WifiApIface);
};