协议
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 中定义
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 组成。
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 交互。
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 中的默认值
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
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 向量上尝试传输的次数,但不表示传输成功。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
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 |
|
RX |
1 |
|
TX |
2 |
|
RX_TX |
3 |
WlanTxResultCode flexible
类型:uint8
在 fuchsia.wlan.softmac/tx.fidl 中定义
数据包传输的结果。
| 名称 | 值 | 说明 |
|---|---|---|
失败 |
0 |
未收到 ACK 或传输失败。 |
成功 |
1 |
已从对等网关收到 ACK。 |
TABLES
DiscoverySupport
在 fuchsia.wlan.softmac/features.fidl 中定义
与发现潜在 BSS 相关的功能。 请参阅 IEEE 802.11-2016 11.1.4.2 和 11.1.4.3。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
scan_offload |
ScanOffloadExtension
|
|
2 |
probe_response_offload |
ProbeResponseOffloadExtension
|
EthernetRxTransferRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
packet_address |
uint64
|
|
2 |
packet_size |
uint64
|
EthernetTxTransferRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
packet_address |
uint64
|
|
2 |
packet_size |
uint64
|
|
3 |
async_id |
uint64
|
|
4 |
borrowed_operation |
uint64
|
|
5 |
complete_borrowed_operation |
uint64
|
ProbeResponseOffloadExtension
在 fuchsia.wlan.softmac/features.fidl 中定义
指明探测响应的处理位置和方式。 请参阅 IEEE 802.11-2016 11.1.4.3。 这是一个发现扩展程序,预计仅用于 softmac。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
supported |
bool
|
如果为 true,则驱动程序会响应探测请求;否则,MLME 必须响应。 |
ScanOffloadExtension
在 fuchsia.wlan.softmac/features.fidl 中定义
指明扫描逻辑的编排位置和方式。 请参阅 IEEE 802.11-2016 11.1.4.2 和 11.1.4.3。 这是一个发现扩展程序,预计仅用于 softmac。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
supported |
bool
|
如果为 true,则驱动程序会编排扫描;否则,MLME 必须执行此操作。 |
2 |
scan_cancel_supported |
bool
|
WlanAssociationConfig
在 fuchsia.wlan.softmac/softmac.fidl 中定义
要作为单个参数传递给 WlanSoftmac.NotifyAssociationComplete 的参数表。 此处的所有信息仅在与给定 peer_addr 关联的上下文中相关。除非另有说明,否则此表中的所有字段均为必填字段。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
bssid |
fuchsia.wlan.ieee80211/MacAddr
|
我们现在关联的对等设备的 MAC 地址。 |
2 |
aid |
uint16
|
此特定关联的唯一标识符。此 ID 在有效关联中是唯一的,但在历史关联中不一定唯一。 |
3 |
listen_interval |
uint16
|
|
4 |
primary |
fuchsia.wlan.ieee80211/ChannelNumber
|
我们与此对等方关联的渠道。 |
5 |
qos |
bool
|
支持 QoS 及其参数 |
6 |
wmm_params |
fuchsia.wlan.driver/WlanWmmParameters
|
WFA WMM v1.2、2.2.2 |
7 |
rates |
vector<uint8>:263
|
SupportedRates 和 ExtendedSupportedRates 的串联 IEEE Std 802.11-2016、9.4.2.3 和 9.4.2.13 |
8 |
capability_info |
uint16
|
IEEE Std 802.11-2016, 9.4.1.4 |
9 |
ht_cap |
fuchsia.wlan.ieee80211/HtCapabilities
|
IEEE Std 802.11-2016, 9.4.2.56, 57 “Supported MCS Set”字段中的“Rx MCS Bitmask”表示对等设备可以从此设备接收的 MCS 集,同时考虑此设备的 Tx 功能。 |
10 |
ht_op |
fuchsia.wlan.ieee80211/HtOperation
|
|
11 |
vht_cap |
fuchsia.wlan.ieee80211/VhtCapabilities
|
IEEE Std 802.11-2016、9.4.2.158、159 |
12 |
vht_op |
fuchsia.wlan.ieee80211/VhtOperation
|
|
13 |
bandwidth |
fuchsia.wlan.ieee80211/ChannelBandwidth
|
|
14 |
vht_secondary_80_channel |
fuchsia.wlan.ieee80211/ChannelNumber
|
WlanKeyConfiguration
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
protection |
WlanProtection
|
要保护的路径:无、TX、RX 或 TX 和 RX。 |
2 |
cipher_oui |
array<uint8, 3>
|
IEEE 加密套件选择器。 请参阅 IEEE Std 802.11-2016、9.4.2.25.2、表 9-131 |
3 |
cipher_type |
uint8
|
|
4 |
key_type |
fuchsia.wlan.ieee80211/KeyType
|
此密钥是成对密钥、群组密钥还是对等密钥。 |
5 |
peer_addr |
fuchsia.wlan.ieee80211/MacAddr
|
成对密钥和对等密钥的对等 MAC 地址。 对于群组密钥,此值始终为广播地址。 |
6 |
key_idx |
uint8
|
轮替密钥(例如群组密钥)的索引。 对于不轮替的密钥类型(例如成对密钥),此值始终为 0。 |
7 |
key |
vector<uint8>:32
|
|
8 |
rsc |
uint64
|
仅针对群组密钥接收序列计数器。 在所有其他情况下,RSC 将为 0。 |
WlanRxTransferRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
packet_address |
uint64
|
|
2 |
packet_size |
uint64
|
|
3 |
packet_info |
WlanRxInfo
|
|
4 |
async_id |
uint64
|
|
5 |
arena |
uint64
|
WlanSoftmacBandCapability
在 fuchsia.wlan.softmac/softmac.fidl 中定义
描述 SoftMAC 在特定频段上的功能。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
band |
fuchsia.wlan.ieee80211/WlanBand
|
此数据报描述的功能适用的频段。 |
5 |
ht_caps |
fuchsia.wlan.ieee80211/HtCapabilities
|
如果设备支持 HT PHY 模式,服务器(即驱动程序)应设置 |
7 |
vht_caps |
fuchsia.wlan.ieee80211/VhtCapabilities
|
如果设备支持 VHT PHY 模式,服务器(即驱动程序)应设置 |
10 |
basic_rates |
vector<uint8>:12
|
一组受支持的基本速率,以 500 Kbit/s 为单位(如 IEEE Std 802.11-2016, 9.4.2.3 中所定义),例如,0x02 表示 1 Mbps。此集合表示设备在传输和接收时支持的所有非 HT 速率。 |
11 |
primary_channels |
vector<fuchsia.wlan.ieee80211/ChannelNumber>:256
|
在创建 iface 期间,由设备驱动程序根据监管信息确定的一组有效主信道。主信道是指 AP 可在其中传输信标帧的信道。 客户端必须使用此集合来确定后续请求使用 iface 扫描信道子集的有效性,或确定在启动 AP 时要使用哪个主信道。 |
WlanSoftmacBaseCancelScanRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
scan_id |
uint64
|
WlanSoftmacBaseClearAssociationRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
peer_addr |
fuchsia.wlan.ieee80211/MacAddr
|
WlanSoftmacBaseEnableBeaconingRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
packet_template |
WlanTxPacket
|
信标模板。由于这是一个模板,因此某些数据包内容只能包含最少的有效信息,因为这些内容稍后会被硬件、固件或软件修改。 |
2 |
tim_ele_offset |
uint64
|
TIM 偏移量(以字节为单位),指向 |
3 |
beacon_interval |
uint16
|
信标间隔时间(以 TU 为单位)。 |
WlanSoftmacBaseSetChannelRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
primary |
fuchsia.wlan.ieee80211/ChannelNumber
|
|
2 |
bandwidth |
fuchsia.wlan.ieee80211/ChannelBandwidth
|
|
3 |
vht_secondary_80_channel |
fuchsia.wlan.ieee80211/ChannelNumber
|
WlanSoftmacBaseStartPassiveScanRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
channels |
vector<fuchsia.wlan.ieee80211/ChannelNumber>:256
|
要扫描的频道列表。如果频道列表为空,扫描请求会立即返回 ZX_ERR_INVALID_ARGS。 系统会忽略无效的频道号,且不会发出提示。信道号的有效性取决于当前的监管区域,而 SoftMAC 驱动程序不一定能确定区域设置。当固件动态更改区域设置时,尤其如此。 这是一个必需的参数。 |
2 |
min_channel_time |
zx/Duration
|
扫描期间在每个频道上停留的最短时长。 |
3 |
max_channel_time |
zx/Duration
|
扫描期间在每个频道上花费的最长时间。 |
4 |
min_home_time |
zx/Duration
|
在每个信道上的停留时间之间,在主信道上花费的最短时长,其中主信道对应于设备在不扫描时应存在的信道。 |
WlanSoftmacBaseUpdateWmmParametersRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
ac |
fuchsia.wlan.ieee80211/WlanAccessCategory
|
|
2 |
params |
fuchsia.wlan.driver/WlanWmmParameters
|
WlanSoftmacBase_StartActiveScan_Response
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
scan_id |
uint64
|
WlanSoftmacBase_StartPassiveScan_Response
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
scan_id |
uint64
|
WlanSoftmacIfcBaseNotifyScanCompleteRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
status |
zx/Result
|
|
2 |
scan_id |
uint64
|
WlanSoftmacQueryResponse
在 fuchsia.wlan.softmac/softmac.fidl 中定义
描述运行中 softmac 状态的高级信息。 此响应中的所有字段均为必填字段。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
sta_addr |
fuchsia.wlan.ieee80211/MacAddr
|
充电站地址。 |
2 |
mac_role |
fuchsia.wlan.common/WlanMacRole
|
MAC 角色 |
3 |
supported_phys |
vector<fuchsia.wlan.ieee80211/WlanPhyType>:64
|
表示硬件支持的 WlanInfoPhyType 值的位掩码。 |
4 |
hardware_capability |
fuchsia.wlan.driver/WlanSoftmacHardwareCapability
|
表示已启用的 WlanInfoHardwareCapability 值的位掩码。定义为 fuchsia.wlan.driver.WlanSoftmacHardwareCapability 的值 |
5 |
band_caps |
vector<WlanSoftmacBandCapability>:16
|
支持的频段。 |
6 |
factory_addr |
fuchsia.wlan.ieee80211/MacAddr
|
设备在出厂时分配的 MAC 地址。 |
WlanSoftmacStartActiveScanRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
要作为单个实参传递给 WlanSoftmac.StartActiveScan 的实参结构体
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
channels |
vector<fuchsia.wlan.ieee80211/ChannelNumber>:256
|
要扫描的频道列表。如果频道列表为空,扫描请求会立即返回 ZX_ERR_INVALID_ARGS。 系统会忽略无效的频道号,且不会发出提示。信道号的有效性取决于当前的监管区域,而 SoftMAC 驱动程序不一定能确定区域设置。当固件动态更改区域设置时,尤其如此。 |
2 |
ssids |
vector<fuchsia.wlan.ieee80211/CSsid>:84
|
要扫描的 SSID 列表。对于包含单个 SSID 的列表,该 SSID 将放置在探测请求帧中的 SSID 元素中。对于包含多个 SSID 的列表,所有 SSID 都将放置在探测请求帧的 SSID 列表元素中,而列表中的第一个 SSID 位于必需的 SSID 元素中。空列表与指定仅包含通配符 SSID 的列表相同。 |
3 |
mac_header |
vector<uint8>:28
|
包含 MAC 标头(如 IEEE Std 802.11-2016, 9.3.3.2 中所定义)的缓冲区,要包含在每个探测请求帧中。 |
4 |
ies |
vector<uint8>:11454
|
包含要添加到每个探测请求帧中的 IE 字节的缓冲区。 指定的 IE 不得导致探测请求 MMPDU 超过 IEEE Std 802.11-2016, 9.2.4.7 定义的限制。MMPDU 限制常量可在 ieee80211 中找到。这些限制非常大,通过指定探测请求帧中最常见的 IE,可能不会超出这些限制。 |
5 |
min_channel_time |
zx/Duration
|
扫描期间在每个频道上停留的最短时长。 |
6 |
max_channel_time |
zx/Duration
|
扫描期间在每个频道上花费的最长时间。 |
7 |
min_home_time |
zx/Duration
|
在每个信道上的停留时间之间,在主信道上花费的最短时长,其中主信道对应于设备在不扫描时应存在的信道。 |
8 |
min_probes_per_channel |
uint8
|
扫描期间每次访问信道时要传输的探测请求帧数下限。 信道访问的定义可能因设备驱动程序而异,但大致是指在扫描期间在特定信道上花费的时间间隔。 在一个信道上发送多个探测请求帧可能会增加在嘈杂环境中接收到该帧的概率。 |
9 |
max_probes_per_channel |
uint8
|
扫描期间,每次访问信道时可传输的探测请求帧数上限。 信道访问的定义可能因设备驱动程序而异,但大致是指在扫描期间在特定信道上花费的时间间隔。指定 0 是无效的,因为必须至少传输一个探测请求帧才能进行主动扫描。 限制在信道上发送的探测请求帧的数量可减少传输帧所花费的时间,从而增加扫描时接收帧所花费的时间。 |
WlanTxTransferRequest
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
packet_address |
uint64
|
|
2 |
packet_size |
uint64
|
|
3 |
packet_info |
WlanTxInfo
|
|
4 |
async_id |
uint64
|
|
5 |
arena |
uint64
|
UNIONS
EthernetRx_Transfer_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
EthernetRx_Transfer_Response
|
|
2 |
err |
zx/Status
|
EthernetTx_Transfer_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
EthernetTx_Transfer_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_CancelScan_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_CancelScan_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_ClearAssociation_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_ClearAssociation_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_DisableBeaconing_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_DisableBeaconing_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_EnableBeaconing_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_EnableBeaconing_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_InstallKey_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_InstallKey_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_JoinBss_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_JoinBss_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_NotifyAssociationComplete_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_NotifyAssociationComplete_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QueryDiscoverySupport_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QueryDiscoverySupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QueryMacSublayerSupport_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QueryMacSublayerSupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QuerySecuritySupport_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QuerySecuritySupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QuerySpectrumManagementSupport_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QuerySpectrumManagementSupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_Query_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacQueryResponse
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_SetChannel_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_SetChannel_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_StartActiveScan_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_StartActiveScan_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_StartPassiveScan_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_StartPassiveScan_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_UpdateWmmParameters_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_UpdateWmmParameters_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBridge_Start_Result strict resource
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBridge_Start_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmac_QueueTx_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmac_QueueTx_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmac_Start_Result strict resource
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanSoftmac_Start_Response
|
|
2 |
err |
zx/Status
|
WlanTx_Transfer_Result strict
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
WlanTx_Transfer_Response
|
|
2 |
err |
zx/Status
|
BITS
WlanRxInfoFlags 灵活
类型:uint32
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 名称 | 值 | 说明 |
|---|---|---|
FCS_INVALID |
1 | 收到的帧的 FCS 无效。 |
FRAME_BODY_PADDING_4 |
2 | 在 MAC 标头后添加了内边距,以使帧正文与 4 字节对齐。 |
WlanRxInfoValid 灵活
类型:uint32
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 名称 | 值 | 说明 |
|---|---|---|
PHY |
1 | |
DATA_RATE |
2 | |
CHAN_WIDTH |
4 | |
MCS |
8 | |
RSSI |
16 | |
SNR |
32 |
WlanTxInfoFlags flexible
类型:uint32
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 名称 | 值 | 说明 |
|---|---|---|
PROTECTED |
1 | 指明此数据包应受到保护。 |
FAVOR_RELIABILITY |
2 | 对于速率控制:指示重要的数据帧(例如 EAPOL),这些数据帧应可靠而非快速地发送,并且免于速率探测 |
QOS |
4 | 指明应尽可能使用 QoS 标头发送此数据包 (11n+)。 |
WlanTxInfoValid 灵活
类型:uint32
在 fuchsia.wlan.softmac/softmac.fidl 中定义
| 名称 | 值 | 说明 |
|---|---|---|
DATA_RATE |
1 | |
TX_VECTOR_IDX |
2 | |
PHY |
4 | |
CHANNEL_BANDWIDTH |
8 | |
MCS |
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
|
驱动程序 |