WLAN STA/AP 并发

Android 9 引入了可让设备同时在 STA 和 AP 模式下运行的功能。对于支持双频并发 (DBS) 的设备,此功能让一些新功能得以实现,例如在用户想要启用热点 (softAP) 时不会中断 STA WLAN。

示例和来源

默认的 AOSP Android 框架代码支持 Wi-Fi STA/AP 并发。WLAN HAL 中介绍的参考 HAL 实现也支持 WLAN STA/AP 并发。下文“实现”部分中介绍的 WIFI_HIDL_FEATURE_DUAL_INTERFACE 构建时标志会启用接口并发规范,表明支持 STA 和 AP 并发。

实现

要在设备上实现 WLAN STA/AP 并发,请执行以下操作:

  1. 开启一个构建时标志,以便在 HAL 中启用对两个接口的支持。该标志位于 device/<oem>/<device>/BoardConfig-common.mk 中。

    • WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
  2. 显示两个网络接口:

    • wlan0wlan1

如果指定了 WIFI_HAL_INTERFACE_COMBINATIONS 标志,WIFI_HIDL_FEATURE_DUAL_INTERFACE 标志会被忽略。如需了解详情,请参阅 WLAN 多接口并发

验证

如需验证该功能是否按预期运行,需要运行一项集成测试 (ACTS) 和一项手动测试。

ACTS 文件 WifiStaApConcurrencyTest.py(位于 tools/test/connectivity/acts_tests/tests/google/wifi 中)包含一组测试,这些测试提供了 STA 和 AP 的不同组合。

要手动验证此功能,请从界面中单独开启和关闭 STA 和 AP 接口。

如果 AP 和 STA 位于同一子网上,则被测设备 (DUT) 上可能会出现路由问题。为避免冲突,请尝试将 AP 移动到其他子网。

如果 STA 和 AP 位于同一频段但却在不同的频道上,则一些 WLAN 芯片供应商会将无线置于分时共享模式。这种做法会导致性能急剧下降。为了解决此问题,芯片可以使用 Channel Switch Avoidance (CSA) 以便:

  • 将 AP 移动到 STA 所在的频道
  • 或将 AP 移到非 STA 所在的频段