通訊協定
AccessPointController
定義於 fuchsia.wlan.policy/access_point_provider.fidl
AccessPointControllers 可讓呼叫端觸發 Wlan 狀態變更。包括是否要讓裝置做為存取點,並為其他共置裝置提供彈性網路。
StartAccessPoint
允許使用提供的網路設定、連線模式和頻帶啟動 AccessPoint 作業。
要求
| 名稱 | 類型 | 
|---|---|
| config | NetworkConfig | 
| mode | ConnectivityMode | 
| band | OperatingBand | 
回應
| 名稱 | 類型 | 
|---|---|
| status | fuchsia.wlan.common/RequestStatus | 
StopAccessPoint
針對指定的網路設定停用 AccessPoint 作業。
要求
| 名稱 | 類型 | 
|---|---|
| config | NetworkConfig | 
回應
| 名稱 | 類型 | 
|---|---|
| status | fuchsia.wlan.common/RequestStatus | 
StopAllAccessPoints
停用裝置上目前運作的所有 AccessPoint。
要求
<空白>
AccessPointListener
定義於 fuchsia.wlan.policy/access_point_provider.fidl
AccessPointListener API 提供一種機制,可讓呼叫端接收 Wlan 存取點作業的狀態變更更新資訊。
GetListener
註冊呼叫端,以接收存取點 (ap) 模式狀態更新。
要求
| 名稱 | 類型 | 
|---|---|
| updates | AccessPointStateUpdates | 
AccessPointProvider
定義於 fuchsia.wlan.policy/access_point_provider.fidl
AccessPointProvider API 提供存取點控制項的機制,這個機制是由代表使用者的應用程式或實體 (例如設定) 所呼叫。其他應用程式不應由其他應用程式呼叫這個 API,以便在使用者未明確控制的情況下變更 Wlan 狀態。
本 API 設計的第二項目標,是限制控制應用程式的數量,藉此消除「最後呼叫者勝出」的模式。一次單一呼叫端可發出會影響 Wlan 狀態的 API 呼叫。
GetController
單一呼叫端使用的控制管道,可觸發所有存取點 (ap) 模式狀態變更。呼叫端也會提供可接收 WLAN 最新資訊的管道。一次只能開啟一位來電者。如果使用者在註冊有效的控制項時嘗試註冊為控制器,新呼叫端提供的管道就會關閉。
要求
| 名稱 | 類型 | 
|---|---|
| requests | server_end<AccessPointController> | 
| updates | AccessPointStateUpdates | 
AccessPointStateUpdates
定義於 fuchsia.wlan.policy/access_point_provider.fidl
AccessPoint 作業狀態變更以及相關聯的連線狀態。
OnAccessPointStateUpdate
使用 WLAN 存取點運作狀態的目前摘要更新已註冊的事件監聽器。當有效存取點網路發生變更 (包括存取點的數量和其個別活動) 時,系統就會呼叫此方法。已註冊的監聽器會負責決定哪些資訊變更 (取決於最近一次確認更新的時間)。
要求
| 名稱 | 類型 | 
|---|---|
| access_points | vector<AccessPointState> | 
回應
<空白>
用戶端控制器
定義於 fuchsia.wlan.policy/client_provider.fidl中
ClientControllers 可讓呼叫端觸發 WLAN 狀態變更。這包括是否要嘗試連線、掃描觸發條件,以及已儲存的網路設定變更。
透過 OpenControlChannel 呼叫向 wlan ClientProvider 註冊後,就會觸發 API 提供的個別呼叫。
連線
要求嘗試連線至指定網路。連線呼叫的目標必須已經是已儲存的網路。此呼叫並非在連線嘗試期間的阻斷呼叫。如果無法立即嘗試呼叫,會傳回失敗狀態。如果嘗試連線要求,系統會傳回確認狀態。連線狀態的更新會透過 ClientStateUpdates 通訊協定發布。如果連線嘗試失敗,服務會恢復為預設行為,也就是透過網路選擇進行掃描和連線。
要求
| 名稱 | 類型 | 
|---|---|
| id | NetworkIdentifier | 
回應
| 名稱 | 類型 | 
|---|---|
| status | fuchsia.wlan.common/RequestStatus | 
GetSavedNetworks
使用提供的疊代器擷取目前儲存的網路。
要求
| 名稱 | 類型 | 
|---|---|
| iterator | server_end<NetworkConfigIterator> | 
移除網路
移除已儲存的網路設定 (如果有的話)。這個方法若使用 NetworkConfig 建立連線,就會自動觸發連線中斷。
要求
| 名稱 | 類型 | 
|---|---|
| config | NetworkConfig | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | ClientController_RemoveNetwork_Result | 
儲存網路
儲存網路以及連線所需的任何憑證資訊。如果憑證不同,同一個 NetworkIdentifier 就會存在多個項目。如果呼叫端嘗試儲存 NetworkConfig 時,使用的 NetworkIdentifier 和憑證與先前儲存的網路相同,該方法實際上是免人工管理。
要求
| 名稱 | 類型 | 
|---|---|
| config | NetworkConfig | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | ClientController_SaveNetwork_Result | 
ScanForNetwork
觸發網路掃描作業。請注意,即使在正常作業中,部分掃描要求可能會因為連線建立時間或其他關鍵連線維護作業而遭到拒絕。如果掃描取消或發生錯誤,系統會透過 ScanResultIterator 中的狀態更新通知呼叫者。在目前的實作中,必須啟動用戶端連線,才能執行掃描作業。
要求
| 名稱 | 類型 | 
|---|---|
| iterator | server_end<ScanResultIterator> | 
啟動用戶端連線
啟用 VPN 以啟動網路連線 (自動連線至已儲存的網路,或對觸發連線的來電執行動作)。視裝置的基礎功能而定,這個呼叫可能會影響其他裝置作業 (例如做為存取點)。傳回的狀態代表確認要求。您應監控 ClientListener 通訊協定,以瞭解用戶端功能何時啟用。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| status | fuchsia.wlan.common/RequestStatus | 
停止用戶端連線
刪除任何連至網路的現有連線,並停用新連線的啟動功能。傳回的狀態代表要求的確認訊息。您應監控 ClientListener 通訊協定,藉此瞭解用戶端功能停用的時機。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| status | fuchsia.wlan.common/RequestStatus | 
ClientListener
定義於 fuchsia.wlan.policy/client_provider.fidl中
ClientListener API 提供一種機制,可讓呼叫端接收 Wlan 作業的狀態變更更新。
GetListener
註冊呼叫端以接收用戶端模式狀態更新。
要求
| 名稱 | 類型 | 
|---|---|
| updates | ClientStateUpdates | 
ClientProvider
定義於 fuchsia.wlan.policy/client_provider.fidl中
ClientProvider API 提供專屬的控管機制,由代表使用者的應用程式或實體 (例如「設定」) 呼叫。這個 API 不應由其他應用程式呼叫這個 API,以便在使用者未明確控制的情況下變更 UI 狀態。
本 API 設計的第二項目標,是限制控制應用程式的數量,藉此消除「最後呼叫者勝出」的模式。一次單一呼叫端可發出會影響 Wlan 狀態的 API 呼叫。
GetController
單一呼叫端使用的控制管道,可觸發用戶端模式狀態變更。呼叫端也會提供可接收最新消息的管道。一次只能開啟一位來電者。如果使用者在註冊有效的控制項時嘗試註冊為控制器,新呼叫端提供的管道就會關閉。
要求
| 名稱 | 類型 | 
|---|---|
| requests | server_end<ClientController> | 
| updates | ClientStateUpdates | 
ClientStateUpdates
定義於 fuchsia.wlan.policy/client_provider.fidl中
用戶端連線和相關聯的網路狀態會變更 WLA 狀態。 這些更新包含裝置是否嘗試連線到網路、已儲存的網路設定變更資訊、NetworkIdentifier 中顯示的個別連線狀態資訊,以及連線嘗試資訊。連線和網路相關呼叫會以 NetworkIdentifier 為基礎,允許在支援的裝置上同時進行多個連線。
OnClientStateUpdate
使用 Wlan 用戶端狀態的目前摘要更新已註冊的監聽器。 當狀態發生變更,且已註冊的事件監聽器會負責決定哪些資訊變更時,系統就會呼叫此方法 (因為這個狀態取決於最近一次確認更新的時間)。
要求
| 名稱 | 類型 | 
|---|---|
| summary | ClientStateSummary | 
回應
<空白>
NetworkConfigIterator
定義於 fuchsia.wlan.policy/client_provider.fidl中
呼叫端所使用的疊代器,擷取已儲存的網路資訊。
取得下一步
允許處理下一個已儲存的網路區塊的方法。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| configs | vector<NetworkConfig> | 
ScanResultIterator
定義於 fuchsia.wlan.policy/client_provider.fidl中
用於將掃描結果傳回呼叫端的疊代器。對應的管道會在掃描完成後關閉,並傳回或因錯誤而失敗。
取得下一步
允許呼叫端要求下一組掃描結果。傳送所有掃描結果後,下一個呼叫 GetNext 將傳回空白向量,且管道會關閉。如果掃描期間發生錯誤,系統會傳回錯誤並關閉管道。系統不會提供任何掃描結果。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | ScanResultIterator_GetNext_Result | 
結構
ClientController_RemoveNetwork_Response
定義於 fuchsia.wlan.policy/client_provider.fidl中
<空白>
ClientController_儲存網路回應
定義於 fuchsia.wlan.policy/client_provider.fidl中
<空白>
空白
定義於 fuchsia.wlan.policy/types.fidl
用於取代選用值的空白結構。
<空白>
網路 ID
定義於 fuchsia.wlan.policy/types.fidl
區分可用網路的主要方式,也就是 (大部分) 可辨識的名稱和安全性類型。安全性類型用於區分不同的網路保護 (或缺乏) 類型。
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| ssid | fuchsia.wlan.ieee80211/Ssid | 網路名稱,通常供使用者在使用者介面中選擇聯播網。 | 沒有預設值 | 
| type | SecurityType | 聯播網的保護措施類型 (或非如此)。 | 沒有預設值 | 
ScanResultIterator_GetNext_Response
定義於 fuchsia.wlan.policy/client_provider.fidl中
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| scan_results | vector<ScanResult> | 沒有預設值 | 
簡報
相容性嚴格
類型:uint32
定義於 fuchsia.wlan.policy/client_provider.fidl中
掃描結果的高層級相容性。系統只支援部分網路安全性通訊協定。系統可能會先偵測到新的通訊協定,才能夠連線,也可能因為安全性和隱私權方面的疑慮,而明確不支援該通訊協定。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 支援 | 1 | 表示該網路受支援,而且可以嘗試連線 (如有需要,請提供適當的憑證)。 | 
| 不允許安全 | 2 | 網路使用已淘汰的安全性通訊協定,而且未明確受到支援。 | 
| 不支援 | 3 | 網路使用目前不支援的安全性通訊協定。 | 
ConnectionState 嚴格
類型:uint32
定義於 fuchsia.wlan.policy/client_provider.fidl中
用於更新已註冊 Wlan 觀察器的連線狀態。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 失敗 | 1 | 發生錯誤,連線嘗試已終止。 | 
| 連線中斷 | 2 | 網路已中斷連線, | 
| 連線中 | 3 | 裝置正嘗試連上網路。 | 
| 已連線 | 4 | 現已建立連線。注意:這並不保證一定能提高網路可連性。 | 
ConnectivityMode 嚴格
類型:uint32
定義於 fuchsia.wlan.policy/access_point_provider.fidl
存取點的連線操作模式。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 僅限本地 | 1 | 允許與共置裝置建立連線。僅限本機存取點不會將流量轉送至其他網路連線。 | 
| 未設定 | 2 | 允許將流量的完整連線轉送至其他網路連線 (例如網路共用模式)。 | 
ConnectionStatus (嚴格)
類型:uint32
定義於 fuchsia.wlan.policy/client_provider.fidl中
中斷連線和連線嘗試失敗狀態碼
| 名稱 | 值 | 說明 | 
|---|---|---|
| 逾時 | 1 | 您要求的連線嘗試因逾時而失敗。 | 
| 「CREDENTIALS_FAILED」 | 2 | 發生憑證疑似失敗,因此要求的連線嘗試失敗。 | 
| 連線停止 | 3 | 這部裝置上的 Wi-Fi 服務操作已明確中斷現有連線。這可能是停用連線、移除網路設定,或嘗試連線至其他網路 (例如範例) 所致。 | 
| 連線失敗 | 4 | 現有連線意外失敗,原因可能是裝置 (或使用者) 未明確觸發連線中斷。意外中斷連線的例子包括:潛在錯誤 (驅動程式庫、韌體等)、信標遺失、存取點故障。 | 
NetworkConfigChangeError strict
類型:uint32
定義於 fuchsia.wlan.policy/client_provider.fidl中
儲存和移除網路設定的潛在錯誤情況。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 一般錯誤 | 1 | |
| NETWORK_CONFIG_MISSING_FIELD_ERROR | 2 | |
| NETWORK_CONFIG_WRITE_ERROR | 3 | |
| SSID_EMPTY_ERROR | 4 | |
| CREDENTIAL_LEN_ERROR | 6 | |
| INVALID_SECURITY_CREDENTIAL_ERROR | 7 | |
| UNSUPPORTED_CREDENTIAL_ERROR | 8 | 
作業系統嚴格
類型:uint32
定義於 fuchsia.wlan.policy/types.fidl
用於處理控制要求和狀態更新作業的頻帶。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 下列任一項目 | 1 | 可根據裝置操作模式和環境切換頻帶。 | 
| 僅限_2_4GHZ | 2 | 僅限 2.4 GHz 頻帶。 | 
| 僅限 5 GHZ | 3 | 僅限 5 GHz 頻帶。 | 
營運狀態嚴格
類型:uint32
定義於 fuchsia.wlan.policy/access_point_provider.fidl
存取點目前的詳細作業狀態。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 失敗 | 1 | 存取點作業失敗。進入失敗狀態的存取點將有一個更新,用於通知已註冊的失敗監聽器,隨後另一個更新也會從清單中移除該存取點。 | 
| 啟動中 | 2 | 正在啟動存取點作業。 | 
| 有效 | 3 | 已啟用存取點作業。 | 
ScanErrorCode 嚴格
類型:uint32
定義於 fuchsia.wlan.policy/client_provider.fidl中
Wlan 掃描錯誤代碼。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 一般錯誤 | 1 | 非預期的掃描錯誤,但沒有特定原因。 | 
| 已取消 | 2 | 已取消並停止掃描。這可能是因為作業狀態變更、優先順序較高的作業或要求發生衝突。 | 
SecurityType 嚴格
類型:uint32
定義於 fuchsia.wlan.policy/types.fidl
網路的高階防護類型。這不會傳達連線機制所需的所有詳細資料,但主要用於將目標網路對應至適當的掃描結果。
| 名稱 | 值 | 說明 | 
|---|---|---|
| NONE | 1 | |
| WEP | 2 | |
| WPA | 3 | |
| WPA2 | 4 | |
| WPA3 | 5 | 
WlanClientState 嚴格
類型:uint32
定義於 fuchsia.wlan.policy/client_provider.fidl中
用戶端連線的 WLAN 運作狀態
| 名稱 | 值 | 說明 | 
|---|---|---|
| 中斷連線 | 1 | |
| 已啟用 CONNECTIONS | 2 | 
資料表
AccessPointState
定義於 fuchsia.wlan.policy/access_point_provider.fidl
個別作業存取點的相關資訊。其中包括任何已連線用戶端的相關資訊。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | state | OperatingState | 目前存取點運作狀態 | 
| 2 | mode | ConnectivityMode | 要求的運作連線模式 | 
| 3 | band | OperatingBand | 存取點操作錶帶。 | 
| 4 | frequency | uint32 | 存取點作業頻率 (以 MHz 為單位)。 | 
| 5 | clients | ConnectedClientInformation | 已連線用戶端的相關資訊 | 
| 6 | id | NetworkIdentifier | 找出狀態已變更的存取點資訊。 | 
BS
定義於 fuchsia.wlan.policy/client_provider.fidl中
特定 ScanResult 項目的資訊。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | bssid | fuchsia.wlan.ieee80211/MacAddr | AP 介面的 MAC 位址。 | 
| 2 | rssi | int8 | 計算出來的信標/探測回應接收訊號強度。 | 
| 3 | frequency | uint32 | 此網路的作業頻率 (以 MHz 為單位)。 | 
| 4 | timestamp_nanos | zx/Time | 掃描結果的時間 (與系統開機的時間相比)。 詳情請參閱 https://fuchsia.dev/fuchsia-src/concepts/time/language_support#monotonic_time | 
ClientStateSummary
定義於 fuchsia.wlan.policy/client_provider.fidl中
裝置目前用戶端狀態的相關資訊。這包括裝置是否嘗試連線至存取點 (如適用)、任何現有連線和有效連線嘗試,以及這些結果的結果。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | state | WlanClientState | 這個狀態會指出 WLA 是否要嘗試連線到網路。 | 
| 2 | networks | vector<NetworkState> | 有效連線、連線嘗試或失敗的連線。 | 
ConnectedClientInformation
定義於 fuchsia.wlan.policy/access_point_provider.fidl
已連結的用戶端資訊。這最初僅限於已連線的用戶端數量。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | count | uint8 | 已連線的用戶端數量 | 
聯播網設定
定義於 fuchsia.wlan.policy/types.fidl
用於建立連線的網路資訊。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | id | NetworkIdentifier | 代表特定網路的 ID。不保證獨特性。 | 
| 2 | credential | Credential | 加入聯播網所需的資訊。 | 
網路狀態
定義於 fuchsia.wlan.policy/client_provider.fidl中
目前網路連線和嘗試次數的相關資訊。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | id | NetworkIdentifier | 目前連線 (或嘗試) 的網路 ID。 | 
| 2 | state | ConnectionState | 連線目前的狀態。 | 
| 3 | status | DisconnectStatus | 偵錯或設定顯示的額外資訊 | 
掃描結果
定義於 fuchsia.wlan.policy/client_provider.fidl中
由觀察到的 WLAN 網路提供的資訊。包括網路名稱、安全性類型、偵測到的存取點資訊和網路相容性資訊。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | id | NetworkIdentifier | 用於區分聯播網和將個別 AP 分組的聯播網屬性。 | 
| 2 | entries | vector<Bss> | 提供指定網路的個別存取點。 | 
| 3 | compatibility | Compatibility | 表示實作支援偵測到的網路。 | 
聯合國
ClientController_RemoveNetwork_Result 嚴格
定義於 fuchsia.wlan.policy/client_provider.fidl中
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | ClientController_RemoveNetwork_Response | |
| 2 | err | NetworkConfigChangeError | 
ClientController_SaveNetwork_Result 嚴格
定義於 fuchsia.wlan.policy/client_provider.fidl中
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | ClientController_SaveNetwork_Response | |
| 2 | err | NetworkConfigChangeError | 
憑證可彈性調整
定義於 fuchsia.wlan.policy/types.fidl
用於驗證目標網路存取權的資訊。
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | none | Empty | 網路不使用憑證 (開放式網路)。 | 
| 2 | password | vector<uint8> | 純文字密碼 (處理為二進位資料)。 | 
| 3 | psk | vector<uint8> | 網路通關密語的雜湊表示法 (處理為二進位資料)。 | 
ScanResultIterator_GetNext_Result 嚴格
定義於 fuchsia.wlan.policy/client_provider.fidl中
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | ScanResultIterator_GetNext_Response | |
| 2 | err | ScanErrorCode |