fuchsia.wlan.softmac

Added: HEAD

协议

EthernetRx

在 fuchsia.wlan.softmac/softmac.fidl 中定义

用于将以太网帧从桥接 wlansoftmac 驱动程序发送到 wlansoftmac 驱动程序的协议。

实验性

此协议作为 wlansoftmac 驱动程序和桥接驱动程序之间的外部函数接口 (FFI) 实现,其唯一目的是提高通过 wlan-mlme 库处理数据帧的性能。

转移

请求

名称类型
payload EthernetRxTransferRequest

响应

名称类型
payload EthernetRx_Transfer_Result

EthernetTx

在 fuchsia.wlan.softmac/softmac.fidl 中定义

用于将以太网帧从 wlansoftmac 驱动程序发送到桥接 wlansoftmac 驱动程序的协议。

实验性

此协议作为 wlansoftmac 驱动程序和桥接驱动程序之间的外部函数接口 (FFI) 实现,其唯一目的是提高通过 wlan-mlme 库处理数据帧的性能。

安全

complete_borrowed_operation 字段必须是 void ()(eth::BorrowedOperation<>, zx_status_t) 类型的函数指针,其中第一个实参是 borrowed_operation 字段的值。

调用 complete_borrowed_operation 会导致调用 eth::BorrowedOperation<>::Complete() 来释放数据包的所有权。此方法必须只调用一次。未能调用 complete_borrowed_operation 会导致内存泄漏,而多次调用会导致释放后使用。

转移

请求

名称类型
payload EthernetTxTransferRequest

响应

名称类型
payload EthernetTx_Transfer_Result

WlanRx

在 fuchsia.wlan.softmac/softmac.fidl 中定义

用于将 WLAN 帧从 wlansoftmac 驱动程序发送到桥接 wlansoftmac 驱动程序的协议。

实验性

此协议作为 wlansoftmac 驱动程序和桥接驱动程序之间的外部函数接口 (FFI) 实现,其唯一目的是提高通过 wlan-mlme 库处理数据帧的性能。

转移

请求

名称类型
payload WlanRxTransferRequest

响应

<EMPTY>

WlanSoftmac

在 fuchsia.wlan.softmac/softmac.fidl 中定义

WlanSoftmac 是由第三方驱动程序实现的 SDK 版本化协议。

CancelScan

取消与 scan_id 对应的正在进行的扫描,其中 scan_id 是 StartPassiveScan() 或 StartActiveScan() 返回的标识符。如果取消成功,服务器很快会使用相同的 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

设备驱动程序使用 fuchsia.wlan.common/ScanOffloadExtension.scan_cancel_supported 指示对 CancelScan() 的支持。

常见错误包括:

  • ZX_ERR_NOT_FOUND:scan_id 与正在进行的扫描不匹配。
  • ZX_ERR_NOT_SUPPORTED:服务器不支持取消扫描。

请求

名称类型
payload WlanSoftmacBaseCancelScanRequest

响应

名称类型
payload WlanSoftmacBase_CancelScan_Result

ClearAssociation

通知 MAC 和 PHY,对等设备已解除关联。

请求

名称类型
payload WlanSoftmacBaseClearAssociationRequest

响应

名称类型
payload WlanSoftmacBase_ClearAssociation_Result

DisableBeaconing

停用硬件信标。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_DisableBeaconing_Result

EnableBeaconing

启用硬件信标。

在启用信标功能时无法调用此方法,因此如果启用了信标功能,则必须在此方法之前调用 DisableBeaconing。

所有请求字段均为必填字段。

常见错误包括:

  • ZX_ERR_NOT_SUPPORTED:设备不支持硬件信标。
  • ZX_ERR_INVALID_ARGS:设备无法传输请求的信标。
  • ZX_ERR_BAD_STATE:设备已在发送信标。

请求

名称类型
payload WlanSoftmacBaseEnableBeaconingRequest

响应

名称类型
payload WlanSoftmacBase_EnableBeaconing_Result

InstallKey

安装用于在传输或接收受保护帧时进行加密的密钥。

常见错误包括: ZX_ERR_INVALID_ARGS:给定配置未指定有效密钥。 ZX_ERR_NOT_SUPPORTED:设备不支持给定的密码。

请求

名称类型
payload WlanKeyConfiguration

响应

名称类型
payload WlanSoftmacBase_InstallKey_Result

JoinBss

加入我们将参与的特定 BSS。 无论我们是托管 BSS 还是加入 BSS(由 JoinBssRequest 中的 remote 标志指示),此操作都适用。如果成功,设备将切换到正确的信道,并执行加入 BSS 所需的任何内部过滤/计时操作。对于客户端 STA,这是进行身份验证之前的第一步。

常见错误包括:
ZX_ERR_NOT_SUPPORTED:设备不支持给定的 bss 配置。

请求

名称类型
join_request fuchsia.wlan.driver/JoinBssRequest

响应

名称类型
payload WlanSoftmacBase_JoinBss_Result

NotifyAssociationComplete

通知设备关联成功,并配置参与该关联所需的其他参数。

错误

常见错误包括:

  • ZX_ERR_BAD_STATE:设备之前未通过 WlanSoftmac.JoinBss 收到有关此 BSS 的通知。

请求

名称类型
assoc_cfg WlanAssociationConfig

响应

名称类型
payload WlanSoftmacBase_NotifyAssociationComplete_Result

查询

获取有关设备及其支持的功能的一般信息。 即使 SoftMAC 尚未启动,也可以安全地调用此方法。

注意:此方法的实现不得依赖于以太网驱动程序的响应,否则存在死锁风险。 wlansoftmac 驱动程序在处理 fuchsia.hardware.ethernet/EthernetImpl.Query 方法时会同步调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_Query_Result

QueryDiscoverySupport

获取有关设备支持的基站发现(例如扫描和探测)功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryDiscoverySupport_Result

QueryMacSublayerSupport

获取有关设备支持的 MAC 功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

注意:此方法的实现不得依赖于以太网驱动程序的响应,否则存在死锁风险。 wlansoftmac 驱动程序在处理 fuchsia.hardware.ethernet/EthernetImpl.Query 方法时会同步调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryMacSublayerSupport_Result

QuerySecuritySupport

获取有关设备支持的安全功能的信息。 即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySecuritySupport_Result

QuerySpectrumManagementSupport

获取有关设备支持的频谱使用(例如 DFS)功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySpectrumManagementSupport_Result

QueueTx

将数据包加入传输队列。可能会在数据包实际传输之前返回。此调用不具备 WlanTxPacket 中传递的缓冲区的所有权。

错误是由未能将数据包排入传输队列引起的。 因此,OK 结果仅表示数据包已加入队列,不表示数据包已成功传输。

请求

名称类型
packet WlanTxPacket

响应

名称类型
payload WlanSoftmac_QueueTx_Result

SetChannel

设置主无线电信道,例如响应信道切换事件。 如果成功,这将立即触发频道切换。这可能会影响正在传输的任何帧的传输,还可能会干扰正在进行的扫描请求。

常见错误包括:
ZX_ERR_NOT_SUPPORTED:设备无法切换到请求的频道。

请求

名称类型
payload WlanSoftmacBaseSetChannelRequest

响应

名称类型
payload WlanSoftmacBase_SetChannel_Result

开始

向服务器发出信号,表明 iface 的 MLME 已准备好发送和接收帧。

客户端提供以下参数:

  • ifc:WlanSoftmaIfc 服务器的客户端,服务器将使用该客户端向客户端发送事件。

服务器会返回 fuchsia.wlan.mlme/MLME 协议的服务器端。iface 的 SME 负责客户端。因此,此通道用于 SME <-> MLME 通信。

除非另有说明,否则只有在成功调用 WlanSoftmac.Start 后,才能调用 WlanSoftmac 方法。

常见错误包括:

  • ZX_ERR_ALREADY_BOUND:已在此 softmac 上调用 Start。

请求

名称类型
ifc client_end:WlanSoftmacIfc

响应

名称类型
payload WlanSoftmac_Start_Result

StartActiveScan

启动主动扫描。服务器将使用 WlanSoftmacIfc.Recv() 以信标或探测响应帧的形式提供扫描结果。完成后,服务器将使用 StartActiveScan() 返回的相同 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

设备驱动程序使用 fuchsia.wlan.common/ProbeRequestOffloadExtension.supported 指示对 StartActiveScan() 的支持。

常见错误包括: ZX_ERR_INVALID_ARGS:设备无法执行请求的扫描,例如,因为请求了不兼容的信道。 ZX_ERR_UNAVAILABLE:设备目前无法执行扫描。 ZX_ERR_SHOULD_WAIT:另一项扫描已在进行中。

请求

名称类型
payload WlanSoftmacStartActiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartActiveScan_Result

StartPassiveScan

启动被动扫描。服务器将使用 WlanSoftmacIfc.Recv() 以信标帧的形式提供扫描结果。完成后,服务器将使用 StartPassiveScan() 返回的相同 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

服务器使用 fuchsia.wlan.common/ScanOffloadExtension.supported 表示支持 StartPassiveScan()。

常见错误包括: ZX_ERR_INVALID_ARGS:设备无法执行请求的扫描,例如,因为请求了不兼容的信道。 ZX_ERR_UNAVAILABLE:设备目前无法执行扫描。 ZX_ERR_SHOULD_WAIT:另一项扫描已在进行中。

请求

名称类型
payload WlanSoftmacBaseStartPassiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartPassiveScan_Result

停止

如果 softmac 正在运行,请将其关闭。 在 softmac 未运行时可以安全调用。

请求

<EMPTY>

响应

<EMPTY>

UpdateWmmParameters

指示特定访问类别 (AC) 的已修改 WiFi 多媒体 (WMM) 参数的设备。

请求

名称类型
payload WlanSoftmacBaseUpdateWmmParametersRequest

响应

名称类型
payload WlanSoftmacBase_UpdateWmmParameters_Result

WlanSoftmacBase

在 fuchsia.wlan.softmac/softmac.fidl 中定义

WlanSoftmacBase 是一种模板协议,旨在组合到 WlanSoftmacBridge 和 WlanSoftmac 中。WlanSoftmacBase 包含 WlanSoftmacBridge 和 WlanSoftmac 共有的所有方法。 不应直接实现 WlanSoftmacBase。

注意:所有方法都使用 selector 属性来保持其从 WlanSoftmac 迁移到此协议后的序数。这对于保持 API 兼容性是必要的。

CancelScan

取消与 scan_id 对应的正在进行的扫描,其中 scan_id 是 StartPassiveScan() 或 StartActiveScan() 返回的标识符。如果取消成功,服务器很快会使用相同的 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

设备驱动程序使用 fuchsia.wlan.common/ScanOffloadExtension.scan_cancel_supported 指示对 CancelScan() 的支持。

常见错误包括:

  • ZX_ERR_NOT_FOUND:scan_id 与正在进行的扫描不匹配。
  • ZX_ERR_NOT_SUPPORTED:服务器不支持取消扫描。

请求

名称类型
payload WlanSoftmacBaseCancelScanRequest

响应

名称类型
payload WlanSoftmacBase_CancelScan_Result

ClearAssociation

通知 MAC 和 PHY,对等设备已解除关联。

请求

名称类型
payload WlanSoftmacBaseClearAssociationRequest

响应

名称类型
payload WlanSoftmacBase_ClearAssociation_Result

DisableBeaconing

停用硬件信标。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_DisableBeaconing_Result

EnableBeaconing

启用硬件信标。

在启用信标功能时无法调用此方法,因此如果启用了信标功能,则必须在此方法之前调用 DisableBeaconing。

所有请求字段均为必填字段。

常见错误包括:

  • ZX_ERR_NOT_SUPPORTED:设备不支持硬件信标。
  • ZX_ERR_INVALID_ARGS:设备无法传输请求的信标。
  • ZX_ERR_BAD_STATE:设备已在发送信标。

请求

名称类型
payload WlanSoftmacBaseEnableBeaconingRequest

响应

名称类型
payload WlanSoftmacBase_EnableBeaconing_Result

InstallKey

安装用于在传输或接收受保护帧时进行加密的密钥。

常见错误包括: ZX_ERR_INVALID_ARGS:给定配置未指定有效密钥。 ZX_ERR_NOT_SUPPORTED:设备不支持给定的密码。

请求

名称类型
payload WlanKeyConfiguration

响应

名称类型
payload WlanSoftmacBase_InstallKey_Result

JoinBss

加入我们将参与的特定 BSS。 无论我们是托管 BSS 还是加入 BSS(由 JoinBssRequest 中的 remote 标志指示),此操作都适用。如果成功,设备将切换到正确的信道,并执行加入 BSS 所需的任何内部过滤/计时操作。对于客户端 STA,这是进行身份验证之前的第一步。

常见错误包括:
ZX_ERR_NOT_SUPPORTED:设备不支持给定的 bss 配置。

请求

名称类型
join_request fuchsia.wlan.driver/JoinBssRequest

响应

名称类型
payload WlanSoftmacBase_JoinBss_Result

NotifyAssociationComplete

通知设备关联成功,并配置参与该关联所需的其他参数。

错误

常见错误包括:

  • ZX_ERR_BAD_STATE:设备之前未通过 WlanSoftmac.JoinBss 收到有关此 BSS 的通知。

请求

名称类型
assoc_cfg WlanAssociationConfig

响应

名称类型
payload WlanSoftmacBase_NotifyAssociationComplete_Result

查询

获取有关设备及其支持的功能的一般信息。 即使 SoftMAC 尚未启动,也可以安全地调用此方法。

注意:此方法的实现不得依赖于以太网驱动程序的响应,否则存在死锁风险。 wlansoftmac 驱动程序在处理 fuchsia.hardware.ethernet/EthernetImpl.Query 方法时会同步调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_Query_Result

QueryDiscoverySupport

获取有关设备支持的基站发现(例如扫描和探测)功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryDiscoverySupport_Result

QueryMacSublayerSupport

获取有关设备支持的 MAC 功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

注意:此方法的实现不得依赖于以太网驱动程序的响应,否则存在死锁风险。 wlansoftmac 驱动程序在处理 fuchsia.hardware.ethernet/EthernetImpl.Query 方法时会同步调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryMacSublayerSupport_Result

QuerySecuritySupport

获取有关设备支持的安全功能的信息。 即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySecuritySupport_Result

QuerySpectrumManagementSupport

获取有关设备支持的频谱使用(例如 DFS)功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySpectrumManagementSupport_Result

SetChannel

设置主无线电信道,例如响应信道切换事件。 如果成功,这将立即触发频道切换。这可能会影响正在传输的任何帧的传输,还可能会干扰正在进行的扫描请求。

常见错误包括:
ZX_ERR_NOT_SUPPORTED:设备无法切换到请求的频道。

请求

名称类型
payload WlanSoftmacBaseSetChannelRequest

响应

名称类型
payload WlanSoftmacBase_SetChannel_Result

StartActiveScan

启动主动扫描。服务器将使用 WlanSoftmacIfc.Recv() 以信标或探测响应帧的形式提供扫描结果。完成后,服务器将使用 StartActiveScan() 返回的相同 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

设备驱动程序使用 fuchsia.wlan.common/ProbeRequestOffloadExtension.supported 指示对 StartActiveScan() 的支持。

常见错误包括: ZX_ERR_INVALID_ARGS:设备无法执行请求的扫描,例如,因为请求了不兼容的信道。 ZX_ERR_UNAVAILABLE:设备目前无法执行扫描。 ZX_ERR_SHOULD_WAIT:另一项扫描已在进行中。

请求

名称类型
payload WlanSoftmacStartActiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartActiveScan_Result

StartPassiveScan

启动被动扫描。服务器将使用 WlanSoftmacIfc.Recv() 以信标帧的形式提供扫描结果。完成后,服务器将使用 StartPassiveScan() 返回的相同 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

服务器使用 fuchsia.wlan.common/ScanOffloadExtension.supported 表示支持 StartPassiveScan()。

常见错误包括: ZX_ERR_INVALID_ARGS:设备无法执行请求的扫描,例如,因为请求了不兼容的信道。 ZX_ERR_UNAVAILABLE:设备目前无法执行扫描。 ZX_ERR_SHOULD_WAIT:另一项扫描已在进行中。

请求

名称类型
payload WlanSoftmacBaseStartPassiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartPassiveScan_Result

UpdateWmmParameters

指示特定访问类别 (AC) 的已修改 WiFi 多媒体 (WMM) 参数的设备。

请求

名称类型
payload WlanSoftmacBaseUpdateWmmParametersRequest

响应

名称类型
payload WlanSoftmacBase_UpdateWmmParameters_Result

WlanSoftmacBridge

在 fuchsia.wlan.softmac/softmac.fidl 中定义

WlanSoftmacBridge 是 wlansoftmac 驱动程序为桥接驱动程序提供的协议。供应商驱动程序不应实现此协议。

CancelScan

取消与 scan_id 对应的正在进行的扫描,其中 scan_id 是 StartPassiveScan() 或 StartActiveScan() 返回的标识符。如果取消成功,服务器很快会使用相同的 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

设备驱动程序使用 fuchsia.wlan.common/ScanOffloadExtension.scan_cancel_supported 指示对 CancelScan() 的支持。

常见错误包括:

  • ZX_ERR_NOT_FOUND:scan_id 与正在进行的扫描不匹配。
  • ZX_ERR_NOT_SUPPORTED:服务器不支持取消扫描。

请求

名称类型
payload WlanSoftmacBaseCancelScanRequest

响应

名称类型
payload WlanSoftmacBase_CancelScan_Result

ClearAssociation

通知 MAC 和 PHY,对等设备已解除关联。

请求

名称类型
payload WlanSoftmacBaseClearAssociationRequest

响应

名称类型
payload WlanSoftmacBase_ClearAssociation_Result

DisableBeaconing

停用硬件信标。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_DisableBeaconing_Result

EnableBeaconing

启用硬件信标。

在启用信标功能时无法调用此方法,因此如果启用了信标功能,则必须在此方法之前调用 DisableBeaconing。

所有请求字段均为必填字段。

常见错误包括:

  • ZX_ERR_NOT_SUPPORTED:设备不支持硬件信标。
  • ZX_ERR_INVALID_ARGS:设备无法传输请求的信标。
  • ZX_ERR_BAD_STATE:设备已在发送信标。

请求

名称类型
payload WlanSoftmacBaseEnableBeaconingRequest

响应

名称类型
payload WlanSoftmacBase_EnableBeaconing_Result

InstallKey

安装用于在传输或接收受保护帧时进行加密的密钥。

常见错误包括: ZX_ERR_INVALID_ARGS:给定配置未指定有效密钥。 ZX_ERR_NOT_SUPPORTED:设备不支持给定的密码。

请求

名称类型
payload WlanKeyConfiguration

响应

名称类型
payload WlanSoftmacBase_InstallKey_Result

JoinBss

加入我们将参与的特定 BSS。 无论我们是托管 BSS 还是加入 BSS(由 JoinBssRequest 中的 remote 标志指示),此操作都适用。如果成功,设备将切换到正确的信道,并执行加入 BSS 所需的任何内部过滤/计时操作。对于客户端 STA,这是进行身份验证之前的第一步。

常见错误包括:
ZX_ERR_NOT_SUPPORTED:设备不支持给定的 bss 配置。

请求

名称类型
join_request fuchsia.wlan.driver/JoinBssRequest

响应

名称类型
payload WlanSoftmacBase_JoinBss_Result

NotifyAssociationComplete

通知设备关联成功,并配置参与该关联所需的其他参数。

错误

常见错误包括:

  • ZX_ERR_BAD_STATE:设备之前未通过 WlanSoftmac.JoinBss 收到有关此 BSS 的通知。

请求

名称类型
assoc_cfg WlanAssociationConfig

响应

名称类型
payload WlanSoftmacBase_NotifyAssociationComplete_Result

查询

获取有关设备及其支持的功能的一般信息。 即使 SoftMAC 尚未启动,也可以安全地调用此方法。

注意:此方法的实现不得依赖于以太网驱动程序的响应,否则存在死锁风险。 wlansoftmac 驱动程序在处理 fuchsia.hardware.ethernet/EthernetImpl.Query 方法时会同步调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_Query_Result

QueryDiscoverySupport

获取有关设备支持的基站发现(例如扫描和探测)功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryDiscoverySupport_Result

QueryMacSublayerSupport

获取有关设备支持的 MAC 功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

注意:此方法的实现不得依赖于以太网驱动程序的响应,否则存在死锁风险。 wlansoftmac 驱动程序在处理 fuchsia.hardware.ethernet/EthernetImpl.Query 方法时会同步调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryMacSublayerSupport_Result

QuerySecuritySupport

获取有关设备支持的安全功能的信息。 即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySecuritySupport_Result

QuerySpectrumManagementSupport

获取有关设备支持的频谱使用(例如 DFS)功能的信息。即使 SoftMAC 尚未启动,也可以安全地调用此方法。

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySpectrumManagementSupport_Result

SetChannel

设置主无线电信道,例如响应信道切换事件。 如果成功,这将立即触发频道切换。这可能会影响正在传输的任何帧的传输,还可能会干扰正在进行的扫描请求。

常见错误包括:
ZX_ERR_NOT_SUPPORTED:设备无法切换到请求的频道。

请求

名称类型
payload WlanSoftmacBaseSetChannelRequest

响应

名称类型
payload WlanSoftmacBase_SetChannel_Result

SetEthernetStatus

将包含 ETHERNET_STATUS_* 标志的状态转发到由 wlansoftmac 的 C++ 部分拥有的 fuchsia.hardware.ethernet/EthernetImplIfc 代理。

如文档所述,status 的值由 ETHERNET_STATUS_* 标志中定义的位设置。不过,只有一个名为 ETHERNET_STATUS_ONLINE 的标志,并且没有说明不指定任何标志的含义。实际上,0x1 表示状态为“正常”,0x0 表示状态为“异常”。

虽然此方法应属于“EthernetImplIfcBridge 协议”之类的内容,但为方便起见,它包含在 WlanSoftmacBridge 协议中。wlansoftmac 驱动程序最终将停止使用 fuchsia.hardware.ethernet/EthernetImplIfc 代理,并改用 fuchsia.hardware.network.driver/NetworkDeviceIfc 代理。届时,应将此方法的等效方法重构为单独的桥接。

请求

名称类型
status uint32

响应

<EMPTY>

开始

向服务器发出信号,表明 iface 的 MLME 已准备好发送和接收帧。

客户端提供以下参数:

  • ifc_bridge:WlanSoftmacIfcBridge 服务器的客户端,wlansoftmac 驱动程序将使用该客户端将 WlanSoftmacIfc 事件转发到桥接驱动程序。
  • ethernet_tx:转换为 uint64 的 ethernet_tx_t*。在 //src/connectivity/wlan/drivers/wlansoftmac/rust_driver/c-binding/bindings.h 中定义 ethernet_tx_t。
  • wlan_rx:转换为 uint64 的 wlan_rx_t*。在 //src/connectivity/wlan/drivers/wlansoftmac/rust_driver/c-binding/bindings.h 中定义 wlan_rx_t。

服务器必须先复制 ethernet_tx_t 和 wlan_rx_t 的内容,然后才能从此方法返回。ethernet_tx_t* 和 wlan_rx_t* 的生命周期仅与此方法调用一样长,但 ethernet_tx_t 和 wlan_rx_t 的内容将一直存在,直到服务器停止 MLME。

服务器会返回 fuchsia.wlan.mlme/MLME 协议的服务器端。iface 的 SME 负责客户端。因此,此通道用于 SME <-> MLME 通信。

WlanSoftmacBridge.Start 方法与 WlanSoftmac.Start 的不同之处在于以下两点。首先,驱动程序传输的协议不存在 Rust 绑定,因此 WlanSoftmacIfcBridge 协议必须是 Zircon 传输的协议,才能供桥接驱动程序使用。其次,与 Driver 传输相比,Zircon 传输会增加显著的延迟。因此,ethernet_tx 和 wlan_rx 参数为 wlansoftmac 驱动程序提供了一个 FFI,用于向桥接驱动程序发送以太网数据包和接收 WLAN 数据包,其延迟时间与驱动程序传输协议相当或更短。

除非另有说明,否则只有在成功调用 WlanSoftmacBridge.Start 后,才能调用 WlanSoftmacBridge 方法。

常见错误包括:

  • ZX_ERR_ALREADY_BOUND:已在此 softmac 上调用 Start。

请求

名称类型
ifc_bridge client_end:WlanSoftmacIfcBridge
ethernet_tx uint64
wlan_rx uint64

响应

名称类型
payload WlanSoftmacBridge_Start_Result

StartActiveScan

启动主动扫描。服务器将使用 WlanSoftmacIfc.Recv() 以信标或探测响应帧的形式提供扫描结果。完成后,服务器将使用 StartActiveScan() 返回的相同 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

设备驱动程序使用 fuchsia.wlan.common/ProbeRequestOffloadExtension.supported 指示对 StartActiveScan() 的支持。

常见错误包括: ZX_ERR_INVALID_ARGS:设备无法执行请求的扫描,例如,因为请求了不兼容的信道。 ZX_ERR_UNAVAILABLE:设备目前无法执行扫描。 ZX_ERR_SHOULD_WAIT:另一项扫描已在进行中。

请求

名称类型
payload WlanSoftmacStartActiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartActiveScan_Result

StartPassiveScan

启动被动扫描。服务器将使用 WlanSoftmacIfc.Recv() 以信标帧的形式提供扫描结果。完成后,服务器将使用 StartPassiveScan() 返回的相同 scan_id 调用 WlanSoftmacIfc.ScanComplete()。

服务器使用 fuchsia.wlan.common/ScanOffloadExtension.supported 表示支持 StartPassiveScan()。

常见错误包括: ZX_ERR_INVALID_ARGS:设备无法执行请求的扫描,例如,因为请求了不兼容的信道。 ZX_ERR_UNAVAILABLE:设备目前无法执行扫描。 ZX_ERR_SHOULD_WAIT:另一项扫描已在进行中。

请求

名称类型
payload WlanSoftmacBaseStartPassiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartPassiveScan_Result

UpdateWmmParameters

指示特定访问类别 (AC) 的已修改 WiFi 多媒体 (WMM) 参数的设备。

请求

名称类型
payload WlanSoftmacBaseUpdateWmmParametersRequest

响应

名称类型
payload WlanSoftmacBase_UpdateWmmParameters_Result

WlanSoftmacIfc

在 fuchsia.wlan.softmac/softmac.fidl 中定义

Added: HEAD

NotifyScanComplete

报告与唯一 scan_id 关联的扫描完成情况。status 指示扫描是成功完成、因错误而失败还是已取消。

返回状态表示扫描完成的原因: ZX_OK:所有信道均已成功扫描。 ZX_ERR_CANCELLED:扫描因用户请求而终止,可能是显式 WlanSoftmac.CancelScan() 或启动了不兼容的请求(例如连接)。 ZX_ERR_OUT_OF_RANGE:扫描请求包含禁止的频道。 这可能是因为当前的国家/地区设置。

请求

名称类型
payload WlanSoftmacIfcBaseNotifyScanCompleteRequest

响应

<EMPTY>

Recv

向上转发通过无线介质接收的数据包。

请求

名称类型
packet WlanRxPacket

响应

<EMPTY>

ReportTxResult

报告尝试传输的结果。

设备驱动程序使用 fuchsia.wlan.common/DeviceExtension.report_tx_result_supported 指示对 ReportTxResult() 的支持。

请求

名称类型
tx_result WlanTxResult

响应

<EMPTY>

WlanSoftmacIfcBase

在 fuchsia.wlan.softmac/softmac.fidl 中定义

包含 WlanSoftmacIfc 和 WlanSoftmacIfcBridge 常用方法的协议。

WlanSoftmacIfc 和 WlanSoftmacIfcBridge 协议具有通用方法,因为后者通常会将 wlansoftmac 驱动程序中收到的 WlanSoftmacIfc 请求转发到桥接驱动程序中的 WlanSoftmacIfcBridge 请求。将此协议组合到 WlanSoftmacIfc 和 WlanSoftmacIfcBridge 中可最大限度地减少方法定义的重复(以及此类重复会导致的相关请求转换)。

任何组件都不会直接实现此协议。它由 WlanSoftmacIfc 和 WlanSoftmacIfcBridge 组成。

Added: HEAD

NotifyScanComplete

报告与唯一 scan_id 关联的扫描完成情况。status 指示扫描是成功完成、因错误而失败还是已取消。

返回状态表示扫描完成的原因: ZX_OK:所有信道均已成功扫描。 ZX_ERR_CANCELLED:扫描因用户请求而终止,可能是显式 WlanSoftmac.CancelScan() 或启动了不兼容的请求(例如连接)。 ZX_ERR_OUT_OF_RANGE:扫描请求包含禁止的频道。 这可能是因为当前的国家/地区设置。

请求

名称类型
payload WlanSoftmacIfcBaseNotifyScanCompleteRequest

响应

<EMPTY>

ReportTxResult

报告尝试传输的结果。

设备驱动程序使用 fuchsia.wlan.common/DeviceExtension.report_tx_result_supported 指示对 ReportTxResult() 的支持。

请求

名称类型
tx_result WlanTxResult

响应

<EMPTY>

WlanSoftmacIfcBridge

在 fuchsia.wlan.softmac/softmac.fidl 中定义

将 WlanSoftmacIfc 请求从 wlansoftmac 驱动程序传输到桥接驱动程序的协议。

此协议应始终在 HEAD 处可用,因为它旨在作为仅限树内协议。 此协议之所以存在,是因为 wlansoftmac 无法在 Rust 中实现,并且必须与 wlansoftmac-c、wlansoftmac-rust 和 wlan-mlme Rust crate 交互。

Added: HEAD

NotifyScanComplete

报告与唯一 scan_id 关联的扫描完成情况。status 指示扫描是成功完成、因错误而失败还是已取消。

返回状态表示扫描完成的原因: ZX_OK:所有信道均已成功扫描。 ZX_ERR_CANCELLED:扫描因用户请求而终止,可能是显式 WlanSoftmac.CancelScan() 或启动了不兼容的请求(例如连接)。 ZX_ERR_OUT_OF_RANGE:扫描请求包含禁止的频道。 这可能是因为当前的国家/地区设置。

请求

名称类型
payload WlanSoftmacIfcBaseNotifyScanCompleteRequest

响应

<EMPTY>

ReportTxResult

报告尝试传输的结果。

设备驱动程序使用 fuchsia.wlan.common/DeviceExtension.report_tx_result_supported 指示对 ReportTxResult() 的支持。

请求

名称类型
tx_result WlanTxResult

响应

<EMPTY>

StopBridgedDriver

停止桥接驱动程序。

调用此方法会导致此协议的服务器端 (WlanSoftmacIfcBridge) 和 WlanSoftmacBridge 的客户端都关闭。在处理完所有已加入队列的事件之前,服务器不会从此方法返回响应。

在实践中,wlansoftmac 驱动程序会在解除绑定期间调用此方法。

请求

<EMPTY>

响应

<EMPTY>

WlanTx

在 fuchsia.wlan.softmac/softmac.fidl 中定义

用于将 WLAN 帧从桥接 wlansoftmac 驱动程序发送到 wlansoftmac 驱动程序的协议。

实验性

此协议作为 wlansoftmac 驱动程序和桥接驱动程序之间的外部函数接口 (FFI) 实现,其唯一目的是提高通过 wlan-mlme 库处理数据帧的性能。

转移

请求

名称类型
payload WlanTxTransferRequest

响应

名称类型
payload WlanTx_Transfer_Result

STRUCTS

EthernetRx_Transfer_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

EthernetTx_Transfer_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanRxInfo

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
rx_flags WlanRxInfoFlags

接收标志。这些表示布尔值标志,而不是枚举或基于值的信息(如下所示)。值应取自 WLAN_RX_INFO_FLAGS_* 枚举。

无默认应用
valid_fields WlanRxInfoValid

位掩码,用于指示此结构体中哪些字段有效。预留标志必须为零。

无默认应用
phy fuchsia.wlan.ieee80211/WlanPhyType

操作时设备的 PHY 格式。

无默认应用
data_rate uint32

设备的数据速率,以 0.5 Mb/s 为单位。

无默认应用
primary fuchsia.wlan.ieee80211/ChannelNumber

操作时设备所在的渠道。此字段必须包含在内。

无默认应用
bandwidth fuchsia.wlan.ieee80211/ChannelBandwidth

操作时信道的带宽。

无默认应用
vht_secondary_80_channel fuchsia.wlan.ieee80211/ChannelNumber

次要 80 MHz 信道段(如果适用)。

无默认应用
mcs uint8

操作时设备的调制和编码方案索引。取决于 PHY 格式和信道宽度。

无默认应用
rssi_dbm int8

接收信号强度指示器。

无默认应用
snr_dbh int16

信噪比,以 0.5 dB 为单位。

无默认应用

WlanRxPacket

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
mac_frame vector<uint8> 无默认应用
info WlanRxInfo 无默认应用

WlanSoftmacBase_CancelScan_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_ClearAssociation_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_DisableBeaconing_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_EnableBeaconing_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_InstallKey_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_JoinBss_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_NotifyAssociationComplete_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_QueryDiscoverySupport_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
resp DiscoverySupport 无默认应用

WlanSoftmacBase_QueryMacSublayerSupport_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
resp fuchsia.wlan.common/MacSublayerSupport 无默认应用

WlanSoftmacBase_QuerySecuritySupport_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
resp fuchsia.wlan.common/SecuritySupport 无默认应用

WlanSoftmacBase_QuerySpectrumManagementSupport_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
resp fuchsia.wlan.common/SpectrumManagementSupport 无默认应用

WlanSoftmacBase_SetChannel_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBase_UpdateWmmParameters_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmacBridge_Start_Response 资源

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
sme_channel handle<channel> 无默认应用

WlanSoftmac_QueueTx_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

WlanSoftmac_Start_Response 资源

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
sme_channel handle<channel> 无默认应用

WlanTxInfo

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
tx_flags uint32

传输标志。这些选项表示布尔值选项,而不是枚举或其他基于值的信息(如下所示)。值应取自 WLAN_TX_INFO_FLAGS_* 枚举。

无默认应用
valid_fields uint32

位掩码,用于指示此结构体中哪些字段有效。预留标志必须为零。未由标志指示的字段的值可由 softmac 驱动程序自行选择。

无默认应用
tx_vector_idx uint16 无默认应用
phy fuchsia.wlan.ieee80211/WlanPhyType 无默认应用
bandwidth fuchsia.wlan.ieee80211/ChannelBandwidth 无默认应用
mcs uint8

此数据包的调制和编码方案索引。取决于 PHY 格式和信道宽度。

无默认应用

WlanTxPacket

在 fuchsia.wlan.softmac/softmac.fidl 中定义

字段类型说明默认
mac_frame vector<uint8> 无默认应用
info WlanTxInfo

传输数据包所需的额外数据。 TODO(https://fxbug.dev/42056823):iwlwifi 会忽略此字段。

无默认应用

WlanTxResult

在 fuchsia.wlan.softmac/tx.fidl 中定义

Minstrel 速率选择算法会使用 TX 状态报告 测试应使用 //src/connectivity/wlan/testing/hw-sim/src/lib.rs 中的默认值

Added: HEAD

字段类型说明默认
tx_result_entry array<WlanTxResultEntry, 8>

一个 PPDU 帧最多可有 8 个不同的 tx_result_entry。 WLAN_TX_VECTOR_IDX_INVALID 表示没有更多条目。

无默认应用
peer_addr fuchsia.wlan.ieee80211/MacAddr

目标 MAC 地址,或数据包 NEXTer 中的 addr1。

无默认应用
result_code WlanTxResultCode 无默认应用

WlanTxResultEntry

在 fuchsia.wlan.softmac/tx.fidl 中定义

WlanTxResult 报告中的一个条目。表示在特定 tx 向量上尝试传输的次数,但不表示传输成功。

Added: HEAD

字段类型说明默认
tx_vector_idx uint16 无默认应用
attempts uint8

使用此特定 tx 向量的总尝试次数,包括成功尝试。 DDK 假定每个数据包的尝试次数不会超过 255 次。(通常 <= 8)

无默认应用

WlanTx_Transfer_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

<EMPTY>

枚举

WlanProtection strict

类型:uint8

在 fuchsia.wlan.softmac/softmac.fidl 中定义

名称值说明
0
1
2
3

WlanTxResultCode flexible

类型:uint8

在 fuchsia.wlan.softmac/tx.fidl 中定义

数据包传输的结果。

Added: HEAD

名称值说明
0

未收到 ACK 或传输失败。

1

已从对等网关收到 ACK。

TABLES

DiscoverySupport

在 fuchsia.wlan.softmac/features.fidl 中定义

与发现潜在 BSS 相关的功能。 请参阅 IEEE 802.11-2016 11.1.4.2 和 11.1.4.3。

Added: HEAD

序数字段类型说明
scan_offload ScanOffloadExtension
probe_response_offload ProbeResponseOffloadExtension

EthernetRxTransferRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
packet_address uint64
packet_size uint64

EthernetTxTransferRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
packet_address uint64
packet_size uint64
async_id uint64
borrowed_operation uint64
complete_borrowed_operation uint64

ProbeResponseOffloadExtension

在 fuchsia.wlan.softmac/features.fidl 中定义

指明探测响应的处理位置和方式。 请参阅 IEEE 802.11-2016 11.1.4.3。 这是一个发现扩展程序,预计仅用于 softmac。

Added: HEAD

序数字段类型说明
supported bool

如果为 true,则驱动程序会响应探测请求;否则,MLME 必须响应。

ScanOffloadExtension

在 fuchsia.wlan.softmac/features.fidl 中定义

指明扫描逻辑的编排位置和方式。 请参阅 IEEE 802.11-2016 11.1.4.2 和 11.1.4.3。 这是一个发现扩展程序,预计仅用于 softmac。

Added: HEAD

序数字段类型说明
supported bool

如果为 true,则驱动程序会编排扫描;否则,MLME 必须执行此操作。

scan_cancel_supported bool

WlanAssociationConfig

在 fuchsia.wlan.softmac/softmac.fidl 中定义

要作为单个参数传递给 WlanSoftmac.NotifyAssociationComplete 的参数表。 此处的所有信息仅在与给定 peer_addr 关联的上下文中相关。除非另有说明,否则此表中的所有字段均为必填字段。

序数字段类型说明
bssid fuchsia.wlan.ieee80211/MacAddr

我们现在关联的对等设备的 MAC 地址。

aid uint16

此特定关联的唯一标识符。此 ID 在有效关联中是唯一的,但在历史关联中不一定唯一。

listen_interval uint16
primary fuchsia.wlan.ieee80211/ChannelNumber

我们与此对等方关联的渠道。

qos bool

支持 QoS 及其参数

wmm_params fuchsia.wlan.driver/WlanWmmParameters

WFA WMM v1.2、2.2.2

rates vector<uint8>:263

SupportedRates 和 ExtendedSupportedRates 的串联 IEEE Std 802.11-2016、9.4.2.3 和 9.4.2.13

capability_info uint16

IEEE Std 802.11-2016, 9.4.1.4

ht_cap fuchsia.wlan.ieee80211/HtCapabilities

IEEE Std 802.11-2016, 9.4.2.56, 57 “Supported MCS Set”字段中的“Rx MCS Bitmask”表示对等设备可以从此设备接收的 MCS 集,同时考虑此设备的 Tx 功能。

ht_op fuchsia.wlan.ieee80211/HtOperation
vht_cap fuchsia.wlan.ieee80211/VhtCapabilities

IEEE Std 802.11-2016、9.4.2.158、159

vht_op fuchsia.wlan.ieee80211/VhtOperation
bandwidth fuchsia.wlan.ieee80211/ChannelBandwidth
vht_secondary_80_channel fuchsia.wlan.ieee80211/ChannelNumber

WlanKeyConfiguration

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
protection WlanProtection

要保护的路径:无、TX、RX 或 TX 和 RX。

cipher_oui array<uint8, 3>

IEEE 加密套件选择器。 请参阅 IEEE Std 802.11-2016、9.4.2.25.2、表 9-131

cipher_type uint8
key_type fuchsia.wlan.ieee80211/KeyType

此密钥是成对密钥、群组密钥还是对等密钥。

peer_addr fuchsia.wlan.ieee80211/MacAddr

成对密钥和对等密钥的对等 MAC 地址。 对于群组密钥,此值始终为广播地址。

key_idx uint8

轮替密钥(例如群组密钥)的索引。 对于不轮替的密钥类型(例如成对密钥),此值始终为 0。

key vector<uint8>:32
rsc uint64

仅针对群组密钥接收序列计数器。 在所有其他情况下,RSC 将为 0。

WlanRxTransferRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
packet_address uint64
packet_size uint64
packet_info WlanRxInfo
async_id uint64
arena uint64

WlanSoftmacBandCapability

在 fuchsia.wlan.softmac/softmac.fidl 中定义

描述 SoftMAC 在特定频段上的功能。

序数字段类型说明
band fuchsia.wlan.ieee80211/WlanBand

此数据报描述的功能适用的频段。

ht_caps fuchsia.wlan.ieee80211/HtCapabilities

如果设备支持 HT PHY 模式,服务器(即驱动程序)应设置 ht_caps;如果设备不支持,则应取消设置 ht_caps。

vht_caps fuchsia.wlan.ieee80211/VhtCapabilities

如果设备支持 VHT PHY 模式,服务器(即驱动程序)应设置 vht_caps;如果设备不支持,则应取消设置 vht_caps。

basic_rates vector<uint8>:12

一组受支持的基本速率,以 500 Kbit/s 为单位(如 IEEE Std 802.11-2016, 9.4.2.3 中所定义),例如,0x02 表示 1 Mbps。此集合表示设备在传输和接收时支持的所有非 HT 速率。

primary_channels vector<fuchsia.wlan.ieee80211/ChannelNumber>:256

在创建 iface 期间,由设备驱动程序根据监管信息确定的一组有效主信道。主信道是指 AP 可在其中传输信标帧的信道。

客户端必须使用此集合来确定后续请求使用 iface 扫描信道子集的有效性,或确定在启动 AP 时要使用哪个主信道。

WlanSoftmacBaseCancelScanRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
scan_id uint64

WlanSoftmacBaseClearAssociationRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
peer_addr fuchsia.wlan.ieee80211/MacAddr

WlanSoftmacBaseEnableBeaconingRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
packet_template WlanTxPacket

信标模板。由于这是一个模板,因此某些数据包内容只能包含最少的有效信息,因为这些内容稍后会被硬件、固件或软件修改。

tim_ele_offset uint64

TIM 偏移量(以字节为单位),指向 packet_template 字段的开头。此值必须为 TIM IE 的第一个字节(即标记 ID)编制索引。

beacon_interval uint16

信标间隔时间(以 TU 为单位)。

WlanSoftmacBaseSetChannelRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
primary fuchsia.wlan.ieee80211/ChannelNumber
bandwidth fuchsia.wlan.ieee80211/ChannelBandwidth
vht_secondary_80_channel fuchsia.wlan.ieee80211/ChannelNumber

WlanSoftmacBaseStartPassiveScanRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
channels vector<fuchsia.wlan.ieee80211/ChannelNumber>:256

要扫描的频道列表。如果频道列表为空,扫描请求会立即返回 ZX_ERR_INVALID_ARGS。

系统会忽略无效的频道号,且不会发出提示。信道号的有效性取决于当前的监管区域,而 SoftMAC 驱动程序不一定能确定区域设置。当固件动态更改区域设置时,尤其如此。

这是一个必需的参数。

min_channel_time zx/Duration

扫描期间在每个频道上停留的最短时长。

max_channel_time zx/Duration

扫描期间在每个频道上花费的最长时间。

min_home_time zx/Duration

在每个信道上的停留时间之间,在主信道上花费的最短时长,其中主信道对应于设备在不扫描时应存在的信道。

WlanSoftmacBaseUpdateWmmParametersRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
ac fuchsia.wlan.ieee80211/WlanAccessCategory
params fuchsia.wlan.driver/WlanWmmParameters

WlanSoftmacBase_StartActiveScan_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
scan_id uint64

WlanSoftmacBase_StartPassiveScan_Response

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
scan_id uint64

WlanSoftmacIfcBaseNotifyScanCompleteRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
status zx/Result
scan_id uint64

WlanSoftmacQueryResponse

在 fuchsia.wlan.softmac/softmac.fidl 中定义

描述运行中 softmac 状态的高级信息。 此响应中的所有字段均为必填字段。

序数字段类型说明
sta_addr fuchsia.wlan.ieee80211/MacAddr

充电站地址。

mac_role fuchsia.wlan.common/WlanMacRole

MAC 角色

supported_phys vector<fuchsia.wlan.ieee80211/WlanPhyType>:64

表示硬件支持的 WlanInfoPhyType 值的位掩码。

hardware_capability fuchsia.wlan.driver/WlanSoftmacHardwareCapability

表示已启用的 WlanInfoHardwareCapability 值的位掩码。定义为 fuchsia.wlan.driver.WlanSoftmacHardwareCapability 的值

band_caps vector<WlanSoftmacBandCapability>:16

支持的频段。

factory_addr fuchsia.wlan.ieee80211/MacAddr

设备在出厂时分配的 MAC 地址。

WlanSoftmacStartActiveScanRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

要作为单个实参传递给 WlanSoftmac.StartActiveScan 的实参结构体

序数字段类型说明
channels vector<fuchsia.wlan.ieee80211/ChannelNumber>:256

要扫描的频道列表。如果频道列表为空,扫描请求会立即返回 ZX_ERR_INVALID_ARGS。

系统会忽略无效的频道号,且不会发出提示。信道号的有效性取决于当前的监管区域,而 SoftMAC 驱动程序不一定能确定区域设置。当固件动态更改区域设置时,尤其如此。

ssids vector<fuchsia.wlan.ieee80211/CSsid>:84

要扫描的 SSID 列表。对于包含单个 SSID 的列表,该 SSID 将放置在探测请求帧中的 SSID 元素中。对于包含多个 SSID 的列表,所有 SSID 都将放置在探测请求帧的 SSID 列表元素中,而列表中的第一个 SSID 位于必需的 SSID 元素中。空列表与指定仅包含通配符 SSID 的列表相同。

mac_header vector<uint8>:28

包含 MAC 标头(如 IEEE Std 802.11-2016, 9.3.3.2 中所定义)的缓冲区,要包含在每个探测请求帧中。

ies vector<uint8>:11454

包含要添加到每个探测请求帧中的 IE 字节的缓冲区。

指定的 IE 不得导致探测请求 MMPDU 超过 IEEE Std 802.11-2016, 9.2.4.7 定义的限制。MMPDU 限制常量可在 ieee80211 中找到。这些限制非常大,通过指定探测请求帧中最常见的 IE,可能不会超出这些限制。

min_channel_time zx/Duration

扫描期间在每个频道上停留的最短时长。

max_channel_time zx/Duration

扫描期间在每个频道上花费的最长时间。

min_home_time zx/Duration

在每个信道上的停留时间之间,在主信道上花费的最短时长,其中主信道对应于设备在不扫描时应存在的信道。

min_probes_per_channel uint8

扫描期间每次访问信道时要传输的探测请求帧数下限。 信道访问的定义可能因设备驱动程序而异,但大致是指在扫描期间在特定信道上花费的时间间隔。

在一个信道上发送多个探测请求帧可能会增加在嘈杂环境中接收到该帧的概率。

max_probes_per_channel uint8

扫描期间,每次访问信道时可传输的探测请求帧数上限。 信道访问的定义可能因设备驱动程序而异,但大致是指在扫描期间在特定信道上花费的时间间隔。指定 0 是无效的,因为必须至少传输一个探测请求帧才能进行主动扫描。

限制在信道上发送的探测请求帧的数量可减少传输帧所花费的时间,从而增加扫描时接收帧所花费的时间。

WlanTxTransferRequest

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数字段类型说明
packet_address uint64
packet_size uint64
packet_info WlanTxInfo
async_id uint64
arena uint64

UNIONS

EthernetRx_Transfer_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response EthernetRx_Transfer_Response
err zx/Status

EthernetTx_Transfer_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response EthernetTx_Transfer_Response
err zx/Status

WlanSoftmacBase_CancelScan_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_CancelScan_Response
err zx/Status

WlanSoftmacBase_ClearAssociation_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_ClearAssociation_Response
err zx/Status

WlanSoftmacBase_DisableBeaconing_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_DisableBeaconing_Response
err zx/Status

WlanSoftmacBase_EnableBeaconing_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_EnableBeaconing_Response
err zx/Status

WlanSoftmacBase_InstallKey_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_InstallKey_Response
err zx/Status

WlanSoftmacBase_JoinBss_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_JoinBss_Response
err zx/Status

WlanSoftmacBase_NotifyAssociationComplete_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_NotifyAssociationComplete_Response
err zx/Status

WlanSoftmacBase_QueryDiscoverySupport_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_QueryDiscoverySupport_Response
err zx/Status

WlanSoftmacBase_QueryMacSublayerSupport_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_QueryMacSublayerSupport_Response
err zx/Status

WlanSoftmacBase_QuerySecuritySupport_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_QuerySecuritySupport_Response
err zx/Status

WlanSoftmacBase_QuerySpectrumManagementSupport_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_QuerySpectrumManagementSupport_Response
err zx/Status

WlanSoftmacBase_Query_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacQueryResponse
err zx/Status

WlanSoftmacBase_SetChannel_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_SetChannel_Response
err zx/Status

WlanSoftmacBase_StartActiveScan_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_StartActiveScan_Response
err zx/Status

WlanSoftmacBase_StartPassiveScan_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_StartPassiveScan_Response
err zx/Status

WlanSoftmacBase_UpdateWmmParameters_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBase_UpdateWmmParameters_Response
err zx/Status

WlanSoftmacBridge_Start_Result strict resource

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmacBridge_Start_Response
err zx/Status

WlanSoftmac_QueueTx_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmac_QueueTx_Response
err zx/Status

WlanSoftmac_Start_Result strict resource

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanSoftmac_Start_Response
err zx/Status

WlanTx_Transfer_Result strict

在 fuchsia.wlan.softmac/softmac.fidl 中定义

序数变体类型说明
response WlanTx_Transfer_Response
err zx/Status

BITS

WlanRxInfoFlags 灵活

类型:uint32

在 fuchsia.wlan.softmac/softmac.fidl 中定义

名称值说明
1

收到的帧的 FCS 无效。

2

在 MAC 标头后添加了内边距,以使帧正文与 4 字节对齐。

WlanRxInfoValid 灵活

类型:uint32

在 fuchsia.wlan.softmac/softmac.fidl 中定义

名称值说明
1
2
4
8
16
32

WlanTxInfoFlags flexible

类型:uint32

在 fuchsia.wlan.softmac/softmac.fidl 中定义

名称值说明
1

指明此数据包应受到保护。

2

对于速率控制:指示重要的数据帧(例如 EAPOL),这些数据帧应可靠而非快速地发送,并且免于速率探测

4

指明应尽可能使用 QoS 标头发送此数据包 (11n+)。

WlanTxInfoValid 灵活

类型:uint32

在 fuchsia.wlan.softmac/softmac.fidl 中定义

名称值说明
1
2
4
8
16

常量

名称值类型说明
WLAN_MAC_MAX_RATES 263 uint32
WLAN_TX_RESULT_MAX_ENTRY 8 uint32
Added: HEAD
WLAN_TX_VECTOR_IDX_INVALID 0 uint16
Added: HEAD

服务

服务

在 fuchsia.wlan.softmac/softmac.fidl 中定义

名称类型传输
wlan_softmac fuchsia.wlan.softmac/WlanSoftmac 驱动程序