通訊協定
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
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_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 彈性
類型: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 「支援的 MCS 集」欄位中的 Rx MCS 位元遮罩代表對等互連裝置可從這部裝置接收的 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
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
EthernetRx_Transfer_Response
|
|
2 |
err |
zx/Status
|
EthernetTx_Transfer_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
EthernetTx_Transfer_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_CancelScan_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_CancelScan_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_ClearAssociation_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_ClearAssociation_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_DisableBeaconing_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_DisableBeaconing_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_EnableBeaconing_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_EnableBeaconing_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_InstallKey_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_InstallKey_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_JoinBss_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_JoinBss_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_NotifyAssociationComplete_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_NotifyAssociationComplete_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QueryDiscoverySupport_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QueryDiscoverySupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QueryMacSublayerSupport_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QueryMacSublayerSupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QuerySecuritySupport_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QuerySecuritySupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_QuerySpectrumManagementSupport_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_QuerySpectrumManagementSupport_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_Query_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacQueryResponse
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_SetChannel_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_SetChannel_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_StartActiveScan_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_StartActiveScan_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_StartPassiveScan_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_StartPassiveScan_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBase_UpdateWmmParameters_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBase_UpdateWmmParameters_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmacBridge_Start_Result strict resource
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmacBridge_Start_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmac_QueueTx_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmac_QueueTx_Response
|
|
2 |
err |
zx/Status
|
WlanSoftmac_Start_Result strict resource
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
WlanSoftmac_Start_Response
|
|
2 |
err |
zx/Status
|
WlanTx_Transfer_Result strict
定義於 fuchsia.wlan.softmac/softmac.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
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 | |
訊噪比 |
32 |
WlanTxInfoFlags 彈性
類型: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 |
新增:HEAD
|
| WLAN_TX_VECTOR_IDX_INVALID |
0
|
uint16 |
新增:HEAD
|
服務
服務
定義於 fuchsia.wlan.softmac/softmac.fidl
| 名稱 | 類型 | 傳輸 |
|---|---|---|
| wlan_softmac |
fuchsia.wlan.softmac/WlanSoftmac
|
駕駛 |