fuchsia.wlan.softmac

添加数量:15

协议

FrameProcessor

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

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

实验性功能

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

使用 FFI 后,通过此协议的消息永远不会进入 FIDL 通道,因此不会产生相关系统调用的成本。我们观察到,与使用 FIDL 通道实现此协议相比,实现 FFI 为每帧处理可节省大约 500 微秒。

添加了:HEAD

EthernetTx

请求

名称类型
payload FrameProcessorEthernetTxRequest

响应

名称类型
payload FrameProcessor_EthernetTx_Result

WlanRx

请求

名称类型
payload FrameProcessorWlanRxRequest

响应

<EMPTY>

FrameSender

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

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

实验性功能

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

使用 FFI 后,通过此协议的消息永远不会进入 FIDL 通道,因此不会产生相关系统调用的成本。我们观察到,与使用 FIDL 通道实现此协议相比,实现 FFI 为每帧处理可节省大约 500 微秒。

添加了:HEAD

EthernetRx

请求

名称类型
payload FrameSenderEthernetRxRequest

响应

名称类型
payload FrameSender_EthernetRx_Result

WlanTx

请求

名称类型
payload FrameSenderWlanTxRequest

响应

名称类型
payload FrameSender_WlanTx_Result

WlanSoftmac

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

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

添加数量:15

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:服务器不支持取消扫描。
添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseCancelScanRequest

响应

名称类型
payload WlanSoftmacBase_CancelScan_Result

ClearAssociation

通知 MAC 和 PHY 对等体已取消关联。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseClearAssociationRequest

响应

名称类型
payload WlanSoftmacBase_ClearAssociation_Result

DisableBeaconing

停用硬件信标。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_DisableBeaconing_Result

EnableBeaconing

启用硬件信标。

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

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

常见错误包括:

  • ZX_ERR_NOT_SUPPORTED:设备不支持硬件信标。
  • ZX_ERR_INVALID_ARGS:设备无法传输请求的信标。
  • ZX_ERR_BAD_STATE:设备已在设置信标。
添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseEnableBeaconingRequest

响应

名称类型
payload WlanSoftmacBase_EnableBeaconing_Result

InstallKey

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

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

添加了:HEAD

请求

名称类型
payload WlanKeyConfiguration

响应

名称类型
payload WlanSoftmacBase_InstallKey_Result

JoinBss

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

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

添加了:HEAD

请求

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

响应

名称类型
payload WlanSoftmacBase_JoinBss_Result

NotifyAssociationComplete

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

错误

常见错误包括:

  • ZX_ERR_BAD_STATE:设备之前未通过 WlanSoftmac.JoinBss 获知此 BSS。
添加了:HEAD

请求

名称类型
assoc_cfg WlanAssociationConfig

响应

名称类型
payload WlanSoftmacBase_NotifyAssociationComplete_Result

查询

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_Query_Result

QueryDiscoverySupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryDiscoverySupport_Result

QueryMacSublayerSupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryMacSublayerSupport_Result

QuerySecuritySupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySecuritySupport_Result

QuerySpectrumManagementSupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySpectrumManagementSupport_Result

QueueTx

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

如果未能将数据包加入队列进行传输,则会导致错误。 因此,OK 结果仅表示数据包已加入队列,而并不表示数据包已成功传输。

添加数量:15

请求

名称类型
packet WlanTxPacket

响应

名称类型
payload WlanSoftmac_QueueTx_Result

SetChannel

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

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

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseSetChannelRequest

响应

名称类型
payload WlanSoftmacBase_SetChannel_Result

开始

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

客户端提供以下参数:

  • ifcWlanSoftmaIfc 服务器的客户端,服务器将用它向客户端发送事件。

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

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

常见错误包括:

  • ZX_ERR_ALREADY_BOUND:已在此 softmac 上调用 Start
添加数量:15

请求

名称类型
ifc 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:另一项扫描已在进行中。

添加了:HEAD

请求

名称类型
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:另一项扫描已在进行中。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseStartPassiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartPassiveScan_Result

停止

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

添加数量:15

请求

<EMPTY>

响应

<EMPTY>

UpdateWmmParameters

针对特定访问类别 (AC),指明经过修改的 Wi-Fi 多媒体 (WMM) 参数的设备。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseUpdateWmmParametersRequest

响应

名称类型
payload WlanSoftmacBase_UpdateWmmParameters_Result

WlanSoftmacBase

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

WlanSoftmacBase 是一种模板协议,旨在由 WlanSoftmacBridgeWlanSoftmac 组成。WlanSoftmacBase 包含 WlanSoftmacBridgeWlanSoftmac 共有的所有方法。不应直接实现 WlanSoftmacBase

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

添加了:HEAD

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:服务器不支持取消扫描。
添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseCancelScanRequest

响应

名称类型
payload WlanSoftmacBase_CancelScan_Result

ClearAssociation

通知 MAC 和 PHY 对等体已取消关联。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseClearAssociationRequest

响应

名称类型
payload WlanSoftmacBase_ClearAssociation_Result

DisableBeaconing

停用硬件信标。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_DisableBeaconing_Result

EnableBeaconing

启用硬件信标。

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

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

常见错误包括:

  • ZX_ERR_NOT_SUPPORTED:设备不支持硬件信标。
  • ZX_ERR_INVALID_ARGS:设备无法传输请求的信标。
  • ZX_ERR_BAD_STATE:设备已在设置信标。
添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseEnableBeaconingRequest

响应

名称类型
payload WlanSoftmacBase_EnableBeaconing_Result

InstallKey

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

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

添加了:HEAD

请求

名称类型
payload WlanKeyConfiguration

响应

名称类型
payload WlanSoftmacBase_InstallKey_Result

JoinBss

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

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

添加了:HEAD

请求

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

响应

名称类型
payload WlanSoftmacBase_JoinBss_Result

NotifyAssociationComplete

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

错误

常见错误包括:

  • ZX_ERR_BAD_STATE:设备之前未通过 WlanSoftmac.JoinBss 获知此 BSS。
添加了:HEAD

请求

名称类型
assoc_cfg WlanAssociationConfig

响应

名称类型
payload WlanSoftmacBase_NotifyAssociationComplete_Result

查询

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_Query_Result

QueryDiscoverySupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryDiscoverySupport_Result

QueryMacSublayerSupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryMacSublayerSupport_Result

QuerySecuritySupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySecuritySupport_Result

QuerySpectrumManagementSupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySpectrumManagementSupport_Result

SetChannel

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

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

添加了:HEAD

请求

名称类型
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:另一项扫描已在进行中。

添加了:HEAD

请求

名称类型
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:另一项扫描已在进行中。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseStartPassiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartPassiveScan_Result

UpdateWmmParameters

针对特定访问类别 (AC),指明经过修改的 Wi-Fi 多媒体 (WMM) 参数的设备。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseUpdateWmmParametersRequest

响应

名称类型
payload WlanSoftmacBase_UpdateWmmParameters_Result

WlanSoftmacBridge

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

WlanSoftmacBridgewlansoftmac 驱动程序为桥接驱动程序提供的协议。此协议不应由供应商驱动程序实现。

添加数量:15

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:服务器不支持取消扫描。
添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseCancelScanRequest

响应

名称类型
payload WlanSoftmacBase_CancelScan_Result

ClearAssociation

通知 MAC 和 PHY 对等体已取消关联。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseClearAssociationRequest

响应

名称类型
payload WlanSoftmacBase_ClearAssociation_Result

DisableBeaconing

停用硬件信标。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_DisableBeaconing_Result

EnableBeaconing

启用硬件信标。

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

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

常见错误包括:

  • ZX_ERR_NOT_SUPPORTED:设备不支持硬件信标。
  • ZX_ERR_INVALID_ARGS:设备无法传输请求的信标。
  • ZX_ERR_BAD_STATE:设备已在设置信标。
添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseEnableBeaconingRequest

响应

名称类型
payload WlanSoftmacBase_EnableBeaconing_Result

InstallKey

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

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

添加了:HEAD

请求

名称类型
payload WlanKeyConfiguration

响应

名称类型
payload WlanSoftmacBase_InstallKey_Result

JoinBss

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

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

添加了:HEAD

请求

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

响应

名称类型
payload WlanSoftmacBase_JoinBss_Result

NotifyAssociationComplete

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

错误

常见错误包括:

  • ZX_ERR_BAD_STATE:设备之前未通过 WlanSoftmac.JoinBss 获知此 BSS。
添加了:HEAD

请求

名称类型
assoc_cfg WlanAssociationConfig

响应

名称类型
payload WlanSoftmacBase_NotifyAssociationComplete_Result

查询

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_Query_Result

QueryDiscoverySupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryDiscoverySupport_Result

QueryMacSublayerSupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QueryMacSublayerSupport_Result

QuerySecuritySupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySecuritySupport_Result

QuerySpectrumManagementSupport

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

添加了:HEAD

请求

<EMPTY>

响应

名称类型
payload WlanSoftmacBase_QuerySpectrumManagementSupport_Result

SetChannel

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

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

添加了:HEAD

请求

名称类型
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 代理。届时,此方法的等效项应重构为一个单独的桥。

添加了:HEAD

请求

名称类型
status uint32

响应

<EMPTY>

开始

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

客户端提供以下参数:

  • ifc_bridgeWlanSoftmacIfcBridge 服务器的客户端,wlansoftmac 驱动程序将使用该服务器将 WlanSoftmacIfc 事件转发到桥接驱动程序。
  • frame_processor:转换为 uint64frame_processor_t*frame_processor_t//src/connectivity/wlan/drivers/wlansoftmac/rust_driver/c-binding/bindings.h 中定义。

服务器必须先复制 frame_processor_t 的内容,然后再从此方法返回。frame_processor_t* 的生命周期与此方法调用的时间一样长,但 frame_processor_t 的内容将一直有效,直到服务器停止 MLME 为止。

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

WlanSoftmacBridge.Start 方法与 WlanSoftmac.Start 不同,原因有两个。首先,驱动程序传输的协议没有 Rust 绑定,因此必须传输 WlanSoftmacIfcBridge 协议,才能供桥接驱动程序使用。其次,与驱动程序传输相比,Zircon 传输会增加明显的延迟。因此,frame_processor 参数会提供 FFI,供 wlansoftmac 驱动程序向桥接驱动程序发送以太网和 WLAN 数据包,使延迟时间接近或优于驱动程序传输协议。

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

常见错误包括:

  • ZX_ERR_ALREADY_BOUND:已在此 softmac 上调用 Start
添加了:HEAD

请求

名称类型
ifc_bridge WlanSoftmacIfcBridge
frame_processor 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:另一项扫描已在进行中。

添加了:HEAD

请求

名称类型
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:另一项扫描已在进行中。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseStartPassiveScanRequest

响应

名称类型
payload WlanSoftmacBase_StartPassiveScan_Result

UpdateWmmParameters

针对特定访问类别 (AC),指明经过修改的 Wi-Fi 多媒体 (WMM) 参数的设备。

添加了:HEAD

请求

名称类型
payload WlanSoftmacBaseUpdateWmmParametersRequest

响应

名称类型
payload WlanSoftmacBase_UpdateWmmParameters_Result

WlanSoftmacIfc

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

添加数量:15

NotifyScanComplete

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

返回状态指示扫描完成的原因:ZX_OK:所有频道已成功扫描。ZX_ERR_CANCELLED:扫描因用户请求(显式 WlanSoftmac.CancelScan())或发起不兼容的请求(例如 connect)而终止。ZX_ERR_OUT_OF_RANGE:扫描请求包含禁止的频道。这可能与当前的国家/地区设置有关。

添加了:HEAD

请求

名称类型
payload WlanSoftmacIfcBaseNotifyScanCompleteRequest

响应

<EMPTY>

接收

转发通过无线介质收到的数据包。

请求

名称类型
packet WlanRxPacket

响应

<EMPTY>

ReportTxResult

报告尝试传输的结果。

设备驱动程序通过 fuchsia.wlan.common/DeviceExtension.report_tx_result_supported 指示支持 ReportTxResult()

添加了:HEAD

请求

名称类型
tx_result fuchsia.wlan.common/WlanTxResult

响应

<EMPTY>

WlanSoftmacIfcBase

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

包含 WlanSoftmacIfcWlanSoftmacIfcBridge 通用方法的协议。

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

此协议并非由任何组件直接实现。它由 WlanSoftmacIfcWlanSoftmacIfcBridge 组成。

添加了:HEAD

NotifyScanComplete

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

返回状态指示扫描完成的原因:ZX_OK:所有频道已成功扫描。ZX_ERR_CANCELLED:扫描因用户请求(显式 WlanSoftmac.CancelScan())或发起不兼容的请求(例如 connect)而终止。ZX_ERR_OUT_OF_RANGE:扫描请求包含禁止的频道。这可能与当前的国家/地区设置有关。

添加了:HEAD

请求

名称类型
payload WlanSoftmacIfcBaseNotifyScanCompleteRequest

响应

<EMPTY>

ReportTxResult

报告尝试传输的结果。

设备驱动程序通过 fuchsia.wlan.common/DeviceExtension.report_tx_result_supported 指示支持 ReportTxResult()

添加了:HEAD

请求

名称类型
tx_result fuchsia.wlan.common/WlanTxResult

响应

<EMPTY>

WlanSoftmacIfcBridge

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

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

此协议应始终在 HEAD 中提供,因为它旨在作为树内协议。此协议的存在只是因为 wlansoftmac 无法在 Rust 中实现,并且必须与 wlansoftmac-c、wlansoftmac-rust 和 wlan-mlme Rust crate 进行交互。

添加了:HEAD

NotifyScanComplete

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

返回状态指示扫描完成的原因:ZX_OK:所有频道已成功扫描。ZX_ERR_CANCELLED:扫描因用户请求(显式 WlanSoftmac.CancelScan())或发起不兼容的请求(例如 connect)而终止。ZX_ERR_OUT_OF_RANGE:扫描请求包含禁止的频道。这可能与当前的国家/地区设置有关。

添加了:HEAD

请求

名称类型
payload WlanSoftmacIfcBaseNotifyScanCompleteRequest

响应

<EMPTY>

ReportTxResult

报告尝试传输的结果。

设备驱动程序通过 fuchsia.wlan.common/DeviceExtension.report_tx_result_supported 指示支持 ReportTxResult()

添加了:HEAD

请求

名称类型
tx_result fuchsia.wlan.common/WlanTxResult

响应

<EMPTY>

StopBridgedDriver

停止桥接驱动程序。

调用此方法会导致此协议的服务器端 (WlanSoftmacIfcBridge) 关闭,而 WlanSoftmacBridge 的客户端端也会关闭。直到处理完所有排队的事件之后,服务器才会从此方法返回响应。

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

添加了:HEAD

请求

<EMPTY>

响应

<EMPTY>

结构

FrameProcessor_EthernetTx_Response

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

<EMPTY>

FrameSender_EthernetRx_Response

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

<EMPTY>

FrameSender_WlanTx_Response

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

<EMPTY>

WlanRxInfo

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

添加数量:15

野战类型说明默认
rx_flags WlanRxInfoFlags

接收标志。这些标志表示布尔值标志,与下面表示的枚举或基于值的信息不同。值应从 WLAN_RX_INFO_FLAGS_* 枚举中获取。

无默认取景方式
valid_fields WlanRxInfoValid

指示以下哪些字段在此结构体中有效的位掩码。预留标志必须为零。

无默认取景方式
phy fuchsia.wlan.common/WlanPhyType

执行操作时设备的 PHY 格式。

无默认取景方式
data_rate uint32

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

无默认取景方式
channel fuchsia.wlan.common/WlanChannel

执行操作时设备所用的声道。必须包含此字段。

无默认取景方式
mcs uint8

执行操作时设备的调制和编码架构索引。取决于 PHY 格式和通道宽度。

无默认取景方式
rssi_dbm int8

接收信号强度指示器。

无默认取景方式
snr_dbh int16

信噪比,以 0.5 dB 为单位。

无默认取景方式

WlanRxPacket

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

添加数量:15

野战类型说明默认
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 fuchsia.wlan.common/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 中定义

添加数量:15

野战类型说明默认
tx_flags uint32

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

无默认取景方式
valid_fields uint32

指示以下哪些字段在此结构体中有效的位掩码。预留标志必须为零。由 softmac 驱动程序自行决定的未用标记表示的字段的值可以由 softmac 驱动程序自行决定。

无默认取景方式
tx_vector_idx uint16 无默认取景方式
phy fuchsia.wlan.common/WlanPhyType 无默认取景方式
channel_bandwidth fuchsia.wlan.common/ChannelBandwidth 无默认取景方式
mcs uint8

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

无默认取景方式

WlanTxPacket

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

添加数量:15

野战类型说明默认
mac_frame vector<uint8> 无默认取景方式
info WlanTxInfo

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

无默认取景方式

枚举

WlanProtection 严格

类型:uint8

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

添加数量:15

名称说明
0
1
2
3

FrameProcessorEthernetTxRequest

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

序数野战类型说明
packet_address uint64
packet_size uint64
async_id uint64

FrameProcessorWlanRxRequest

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

序数野战类型说明
packet_address uint64
packet_size uint64
packet_info WlanRxInfo
async_id uint64

FrameSenderEthernetRxRequest

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

序数野战类型说明
packet_address uint64
packet_size uint64

FrameSenderWlanTxRequest

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

序数野战类型说明
packet_address uint64
packet_size uint64
packet_info WlanTxInfo
async_id uint64

WlanAssociationConfig

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

要作为单个参数传递给 WlanSoftmac.NotifyAssociationComplete 的参数表。 此处的所有信息仅适用于与指定的 Peer_addr 关联的情境。除非另有说明,否则此表中的所有字段均为必填字段。

添加数量:15

序数野战类型说明
bssid fuchsia.wlan.ieee80211/MacAddr

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

aid uint16

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

listen_interval uint16
channel fuchsia.wlan.common/WlanChannel

我们与此类似应用相关联的渠道。

qos bool

支持 QoS 和参数

wmm_params fuchsia.wlan.common/WlanWmmParameters

WFA WMM v1.2、2.2.2

rates vector<uint8>[263]

SupportRates 和 ExtendedSupportedRates IEEE 标准 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

“受支持 MCS 设置”字段中的 IEEE Std 802.11-2016、9.4.2.56、57 Rx MCS 位掩码表示对等设备可以从此设备接收的 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

WlanKeyConfiguration

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

添加数量:15

序数野战类型说明
protection WlanProtection

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

cipher_oui uint8[3]

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

cipher_type uint8
key_type fuchsia.wlan.common/WlanKeyType

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

peer_addr fuchsia.wlan.ieee80211/MacAddr

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

key_idx uint8

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

key vector<uint8>[32]
rsc uint64

仅接收组键的序列计数器。 在所有其他情况下,RSC 均为 0。

WlanSoftmacBandCapability

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

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

添加数量:15

序数野战类型说明
band fuchsia.wlan.common/WlanBand

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

basic_rate_count uint8

支持的基本费率的计数。如果存在 basic_rate_list 字段,则此字段也必须存在,且必须basic_rate_list 字段一致。

弃用

此字段已替换为 basic_rates。如果服务器(即驱动程序)以废弃了 basic_rate_count 的平台版本为目标平台版本,则应省略该参数,并将基本费率写入 basic_rates 字段。客户端会在 basic_rate_count 之前尝试读取 basic_rates

已弃用:15
basic_rate_list uint8[12]

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

此字段中显示的费率计数必须basic_rate_count 字段(如果存在)一致。

弃用

此字段已替换为 basic_rates。如果服务器(即驱动程序)以废弃了 basic_rate_list 的平台版本为目标平台版本,则应省略该参数,并将基本费率写入 basic_rates 字段。客户端会在 basic_rate_list 之前尝试读取 basic_rates

已弃用:15
ht_supported bool

确定客户端是否应读取 ht_caps 字段。如果设备支持 HT PHY 模式,则 ht_supported 必须为 true,且必须设置 ht_caps 字段,并提供描述 HT 功能的数据。这些字段的任何其他配置均意味着设备不支持 HT PHY 模式。请参阅 HtCapabilities

弃用

此字段用于确定客户端是否读取 ht_caps 字段,但并非绝对必需,因为可能会设置或取消设置 ht_caps 等表字段。如果服务器(即驱动程序)以废弃了 ht_supported 的平台版本为目标,则应始终将此字段设为 true,并在设备支持 HT PHY 模式时设置 ht_caps,如果设备不支持,则取消设置 ht_caps

已弃用:15
ht_caps fuchsia.wlan.ieee80211/HtCapabilities
vht_supported bool

确定客户端是否应读取 vht_caps 字段。如果设备支持 VHT PHY 模式,则 vht_supported 必须为 true,且必须设置 vht_caps 字段并提供描述 VHT 功能的数据。这些字段的任何其他配置均意味着设备不支持 VHT PHY 模式。请参阅 VhtCapabilities

弃用

此字段用于确定客户端是否读取 vht_caps 字段,但并非绝对必需,因为可能会设置或取消设置 vht_caps 等表字段。如果服务器(即驱动程序)以废弃了 vht_supported 的平台版本为目标,则应始终将此字段设为 true,并在设备支持 VHT PHY 模式时设置 vht_caps,如果设备不支持,则取消设置 vht_caps

已弃用:15
vht_caps fuchsia.wlan.ieee80211/VhtCapabilities
operating_channel_count uint16

操作通道数。如果存在 operating_channel_list 字段,则此字段也必须存在,且必须operating_channel_list 字段一致。

弃用

此字段已替换为 operating_channels。如果服务器(即驱动程序)以废弃 operating_channel_count 的平台版本为目标,则应省略该参数,并将操作通道写入 operating_channels 字段。客户端会在 operating_channel_count 之前尝试读取 operating_channels

已弃用:15
operating_channel_list uint8[256]

各监管信息由设备驱动程序在 iface 创建期间确定的有效操作通道集。操作信道是指 AP 可在其上传输信标帧的信道。

此字段中显示的频道数必须operating_channel_count 字段(如果存在)一致。

弃用

此字段已替换为 operating_channels。如果服务器(即驱动程序)以废弃 operating_channel_list 的平台版本为目标,则应省略该参数,并将操作通道写入 operating_channels 字段。客户端会在 operating_channel_list 之前尝试读取 operating_channels

已弃用:15
basic_rates vector<uint8>[12]

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

添加数量:15
operating_channels vector<uint8>[256]

各监管信息由设备驱动程序在 iface 创建期间确定的有效操作通道集。操作信道是指 AP 可在其上传输信标帧的信道。

客户端必须使用此集合来确定后续请求通过 iface 扫描部分信道的有效性,或确定在启动 AP 时要使用的操作信道。

添加数量:15

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

packet_template 字段开头的 TIM 偏移量(以字节为单位)。这必须将 TIM IE 的第一个字节(即代码 ID)编入索引。

beacon_interval uint16

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

WlanSoftmacBaseSetChannelRequest

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

序数野战类型说明
channel fuchsia.wlan.common/WlanChannel

WlanSoftmacBaseStartPassiveScanRequest

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

序数野战类型说明
channels vector<uint8>[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.common/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/Status
scan_id uint64

WlanSoftmacQueryResponse

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

描述正在运行的 softmac 状态的概要信息。 此响应中的所有字段均为必填字段。

添加数量:15

序数野战类型说明
sta_addr fuchsia.wlan.ieee80211/MacAddr

车站地址。

mac_role fuchsia.wlan.common/WlanMacRole

MAC 角色

supported_phys vector<fuchsia.wlan.common/WlanPhyType>[64]

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

hardware_capability fuchsia.wlan.common/WlanSoftmacHardwareCapability

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

band_caps vector<WlanSoftmacBandCapability>[16]

支持的波段。

WlanSoftmacStartActiveScanRequest

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

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

添加数量:15

序数野战类型说明
channels vector<uint8>[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 标准 802.11-2016 和 9.3.3.2 中所定义)。

ies vector<uint8>[11454]

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

指定的 IE 不得导致探测请求 MMPDU 超出 IEEE 标准 802.11-2016、9.2.4.7 中规定的限制。您可以在 fuchsia.wlan.ieee80211 中找到 MMPDU 限制常量。这些限制非常大,通过指定探测请求帧中发现的最常见 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 是无效的,因为对于有效扫描,必须至少传输一个探测请求帧。

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

联合

FrameProcessor_EthernetTx_Result 严格

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

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

FrameSender_EthernetRx_Result 严格

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

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

FrameSender_WlanTx_Result 严格

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

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

WlanSoftmacBase_CancelScan_Result 严格

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

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

WlanSoftmacBase_ClearAssociation_Result 严格

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

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

WlanSoftmacBase_DisableBeaconing_Result 严格

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

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

WlanSoftmacBase_EnableBeaconing_Result 严格

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

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

WlanSoftmacBase_InstallKey_Result 严格

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

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

WlanSoftmacBase_JoinBss_Result 严格

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

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

WlanSoftmacBase_NotificationsAssociationComplete_Result 严格

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

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

WlanSoftmacBase_QueryDiscoverySupport_Result 严格

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

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

WlanSoftmacBase_QueryMacSublayerSupport_Result 严格

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

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

WlanSoftmacBase_QuerySecuritySupport_Result 严格

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

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

WlanSoftmacBase_QuerySpectrumManagementSupport_Result 严格

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

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

WlanSoftmacBase_Query_Result 严格

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

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

WlanSoftmacBase_SetChannel_Result 严格

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

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

WlanSoftmacBase_StartActiveScan_Result 严格

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

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

WlanSoftmacBase_StartPassiveScan_Result 严格

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

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

WlanSoftmacBase_UpdateWmmParameters_Result 严格

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

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

WlanSoftmacBridge_Start_Result strict 资源

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

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

WlanSoftmac_QueueTx_Result 严格

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

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

WlanSoftmac_Start_Result 严格 资源

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

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

BITS

WlanRxInfoFlags 灵活

类型:uint32

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

添加数量:15

名称说明
1

已接收帧的 FCS 无效。

2

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

WlanRxInfoValid 灵活

类型:uint32

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

添加数量:15

名称说明
1
2
4
8
16
32

WlanTxInfoFlags 灵活

类型:uint32

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

添加数量:15

名称说明
1

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

2

对于速率控制:指示重要数据帧(例如 EAPOL),系统应可靠以而不是快速的方式发送,并且不受速率探测限制

4

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

WlanTxInfoValid 灵活

类型:uint32

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

添加数量:15

名称说明
1
2
4
8
16

常量

名称类型说明
WLAN_MAC_MAX_RATES 263 uint32
添加数量:15

服务

服务

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

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