wifi: Supports to remove link for MLO SAP
Bug: 362355566
Test: TH
Change-Id: I3034e1437d5f9702a70ecb0dfef92f4a296b6b06
diff --git a/hostapd/aidl/hostapd.cpp b/hostapd/aidl/hostapd.cpp
index b5118b3..cee626a 100644
--- a/hostapd/aidl/hostapd.cpp
+++ b/hostapd/aidl/hostapd.cpp
@@ -1048,6 +1048,12 @@
return setDebugParamsInternal(level);
}
+::ndk::ScopedAStatus Hostapd::removeLinkFromMultipleLinkBridgedApIface(
+ const std::string& iface_name, const std::string& linkIdentity)
+{
+ return removeLinkFromMultipleLinkBridgedApIfaceInternal(iface_name, linkIdentity);
+}
+
::ndk::ScopedAStatus Hostapd::addAccessPointInternal(
const IfaceParams& iface_params,
const NetworkParams& nw_params)
@@ -1492,6 +1498,23 @@
return ndk::ScopedAStatus::ok();
}
+::ndk::ScopedAStatus Hostapd::removeLinkFromMultipleLinkBridgedApIfaceInternal(
+const std::string& iface_name, const std::string& linkIdentity)
+{
+ if (!hostapd_get_iface(interfaces_, iface_name.c_str())) {
+ wpa_printf(MSG_ERROR, "Interface %s doesn't exist", iface_name.c_str());
+ return createStatus(HostapdStatusCode::FAILURE_IFACE_UNKNOWN);
+ }
+ struct hostapd_data* iface_hapd =
+ hostapd_get_iface_by_link_id(interfaces_, (size_t) linkIdentity.c_str());
+ if (iface_hapd) {
+ if (0 == hostapd_link_remove(iface_hapd, 1)) {
+ return ndk::ScopedAStatus::ok();
+ }
+ }
+ return createStatus(HostapdStatusCode::FAILURE_ARGS_INVALID);
+}
+
} // namespace hostapd
} // namespace wifi
} // namespace hardware