fuchsia.wlan.softmac

新增: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() 傳回的 ID。如果取消成功,伺服器很快就會使用相同的 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(),以信標或探測回應框架的形式傳送掃描結果。完成後,伺服器會呼叫 WlanSoftmacIfc.ScanComplete(),並傳回與 StartActiveScan() 相同的 scan_id。

裝置驅動程式庫會使用 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(),以信標框架的形式傳送掃描結果。完成後,伺服器會呼叫 WlanSoftmacIfc.ScanComplete(),並傳回與 StartPassiveScan() 相同的 scan_id。

伺服器會使用 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() 傳回的 ID。如果取消成功,伺服器很快就會使用相同的 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(),以信標或探測回應框架的形式傳送掃描結果。完成後,伺服器會呼叫 WlanSoftmacIfc.ScanComplete(),並傳回與 StartActiveScan() 相同的 scan_id。

裝置驅動程式庫會使用 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(),以信標框架的形式傳送掃描結果。完成後,伺服器會呼叫 WlanSoftmacIfc.ScanComplete(),並傳回與 StartPassiveScan() 相同的 scan_id。

伺服器會使用 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() 傳回的 ID。如果取消成功,伺服器很快就會使用相同的 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 Proxy。

如說明文件所述,status 的值是由 ETHERNET_STATUS_* 旗標中定義的位元設定。不過,只有一個名為 ETHERNET_STATUS_ONLINE 的旗標,且未指定不指定旗標的意義。在實際操作中,0x1 表示狀態為啟動,0x0 表示狀態為關閉。

雖然這個方法應屬於「EthernetImplIfcBridge 通訊協定」之類的項目,但為了方便起見,我們將其納入 WlanSoftmacBridge 通訊協定。wlansoftmac 驅動程式庫最終會停止使用 fuchsia.hardware.ethernet/EthernetImplIfc Proxy,並改用 fuchsia.hardware.network.driver/NetworkDeviceIfc Proxy。屆時,應將這個方法的等效方法重構為獨立橋接。

要求

名稱類型
status uint32

回應

<EMPTY>

開始

向伺服器發出信號,表示 iface 的 MLME 已準備好傳送及接收框架。

用戶端會提供下列引數:

  • ifc_bridge:WlanSoftmacIfcBridge 伺服器的用戶端,wlansoftmac 驅動程式會使用該用戶端將 WlanSoftmacIfc 事件轉送至橋接驅動程式庫。
  • ethernet_tx:ethernet_tx_t* 轉換為 uint64。ethernet_tx_t 定義於 //src/connectivity/wlan/drivers/wlansoftmac/rust_driver/c-binding/bindings.h。
  • wlan_rx:wlan_rx_t* 轉換為 uint64。wlan_rx_t 定義於 //src/connectivity/wlan/drivers/wlansoftmac/rust_driver/c-binding/bindings.h。

伺服器必須先複製 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 引數會提供 FFI,讓 wlansoftmac 驅動程式將乙太網路傳送至橋接驅動程式庫,並接收 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(),以信標或探測回應框架的形式傳送掃描結果。完成後,伺服器會呼叫 WlanSoftmacIfc.ScanComplete(),並傳回與 StartActiveScan() 相同的 scan_id。

裝置驅動程式庫會使用 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(),以信標框架的形式傳送掃描結果。完成後,伺服器會呼叫 WlanSoftmacIfc.ScanComplete(),並傳回與 StartPassiveScan() 相同的 scan_id。

伺服器會使用 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

新增: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 組成。

新增: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 互動。

新增: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 中的預設值

新增: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 報表中的一個項目。表示在特定傳輸向量上嘗試傳輸的次數,但不代表傳輸成功。

新增: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 彈性

類型:uint8

定義於 fuchsia.wlan.softmac/tx.fidl

封包傳輸結果。

新增: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。

新增: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。

新增:HEAD

序數欄位類型說明
supported bool

如果為 true,驅動程式庫會回應探測要求;否則 MLME 必須回應。

ScanOffloadExtension

定義於 fuchsia.wlan.softmac/features.fidl

指出掃描邏輯的協調位置和方式。請參閱 IEEE 802.11-2016 11.1.4.2 和 11.1.4.3。這是探索擴充功能,預期僅用於 Softmac。

新增: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 「支援的 MCS 集」欄位中的 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
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

序數Variant類型說明
response EthernetRx_Transfer_Response
err zx/Status

EthernetTx_Transfer_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response EthernetTx_Transfer_Response
err zx/Status

WlanSoftmacBase_CancelScan_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_CancelScan_Response
err zx/Status

WlanSoftmacBase_ClearAssociation_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_ClearAssociation_Response
err zx/Status

WlanSoftmacBase_DisableBeaconing_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_DisableBeaconing_Response
err zx/Status

WlanSoftmacBase_EnableBeaconing_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_EnableBeaconing_Response
err zx/Status

WlanSoftmacBase_InstallKey_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_InstallKey_Response
err zx/Status

WlanSoftmacBase_JoinBss_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_JoinBss_Response
err zx/Status

WlanSoftmacBase_NotifyAssociationComplete_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_NotifyAssociationComplete_Response
err zx/Status

WlanSoftmacBase_QueryDiscoverySupport_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_QueryDiscoverySupport_Response
err zx/Status

WlanSoftmacBase_QueryMacSublayerSupport_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_QueryMacSublayerSupport_Response
err zx/Status

WlanSoftmacBase_QuerySecuritySupport_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_QuerySecuritySupport_Response
err zx/Status

WlanSoftmacBase_QuerySpectrumManagementSupport_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_QuerySpectrumManagementSupport_Response
err zx/Status

WlanSoftmacBase_Query_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacQueryResponse
err zx/Status

WlanSoftmacBase_SetChannel_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_SetChannel_Response
err zx/Status

WlanSoftmacBase_StartActiveScan_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_StartActiveScan_Response
err zx/Status

WlanSoftmacBase_StartPassiveScan_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_StartPassiveScan_Response
err zx/Status

WlanSoftmacBase_UpdateWmmParameters_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBase_UpdateWmmParameters_Response
err zx/Status

WlanSoftmacBridge_Start_Result strict resource

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmacBridge_Start_Response
err zx/Status

WlanSoftmac_QueueTx_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmac_QueueTx_Response
err zx/Status

WlanSoftmac_Start_Result strict resource

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
response WlanSoftmac_Start_Response
err zx/Status

WlanTx_Transfer_Result strict

定義於 fuchsia.wlan.softmac/softmac.fidl

序數Variant類型說明
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 彈性

類型: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
新增:HEAD
WLAN_TX_VECTOR_IDX_INVALID 0 uint16
新增:HEAD

服務

服務

定義於 fuchsia.wlan.softmac/softmac.fidl

名稱類型傳輸
wlan_softmac fuchsia.wlan.softmac/WlanSoftmac 駕駛