wifi: Create 1.3::IfaceParams to support dual bands (AP+AP Part 1)
1. Use 1.3::IfaceParams to support AP+AP.
The design still uses 1.2::IfaceParams to create the AP but it updates
1.2::IfaceParams from 1.3::IfaceParams since dual APs information are stored
in 1.3::IfaceParams.
a. Support interface query from bridge interface.
b. Read dual APs configuration adn enable it.
c. Callback use bridge interface in dual APs mode.
AP+AP Part 1 includes:
1. HIDL: Hostapd support dual bands/channels configuration
2. Framework: HostapdHal support only
3. Hostapd deamon:
a. Support briged interface
b. Support config dual bands/channel
c. Callback use bridge interface in dual APs mode.
Bug: 162686273
Test: Manual Test to test single AP mode.
Test: Manual test code to check hostapd.conf is expected.
Test: atest -c VtsHalWifiHostapdV1_3TargetTest
Test: atest -c VtsHalWifiHostapdV1_2TargetTest
Test: atest -c VtsHalWifiHostapdV1_1TargetTest
Test: atest -c VtsHalWifiHostapdV1_0TargetTest
Change-Id: I7d2a0ae1f935a18dd62daa3befc0eae0452882cc
diff --git a/hostapd/hidl/1.3/hostapd.h b/hostapd/hidl/1.3/hostapd.h
index 79354d3..ceec080 100644
--- a/hostapd/hidl/1.3/hostapd.h
+++ b/hostapd/hidl/1.3/hostapd.h
@@ -71,7 +71,7 @@
const V1_2::IHostapd::NetworkParams& nw_params,
addAccessPoint_1_2_cb _hidl_cb) override;
Return<void> addAccessPoint_1_3(
- const V1_2::IHostapd::IfaceParams& iface_params,
+ const V1_3::IHostapd::IfaceParams& iface_params,
const V1_3::IHostapd::NetworkParams& nw_params,
addAccessPoint_1_3_cb _hidl_cb) override;
Return<void> removeAccessPoint(
@@ -102,7 +102,14 @@
const V1_2::IHostapd::IfaceParams& IfaceParams,
const V1_2::IHostapd::NetworkParams& nw_params);
V1_2::HostapdStatus addAccessPointInternal_1_3(
+ const V1_3::IHostapd::IfaceParams& IfaceParams,
+ const V1_3::IHostapd::NetworkParams& nw_params);
+ V1_2::HostapdStatus addSingleAccessPoint(
const V1_2::IHostapd::IfaceParams& IfaceParams,
+ const V1_3::IHostapd::NetworkParams& nw_params,
+ std::string br_name);
+ V1_2::HostapdStatus addConcurrentAccessPoints(
+ const V1_3::IHostapd::IfaceParams& IfaceParams,
const V1_3::IHostapd::NetworkParams& nw_params);
V1_0::HostapdStatus removeAccessPointInternal(const std::string& iface_name);
V1_0::HostapdStatus registerCallbackInternal(
@@ -120,6 +127,8 @@
std::vector<sp<V1_3::IHostapdCallback>> callbacks_;
// Death notifier.
android::sp<DeathNotifier> death_notifier_;
+ // Bridge and its managed interfaces.
+ std::map<std::string, std::vector<std::string>> br_interfaces_;
DISALLOW_COPY_AND_ASSIGN(Hostapd);
};
} // namespace implementation