fuchsia.wlan.policy

新增時間:7

通訊協定

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

您要求的連線嘗試因逾時而失敗。

2

發生憑證疑似失敗,因此要求的連線嘗試失敗。

3

這部裝置上的 Wi-Fi 服務操作已明確中斷現有連線。這可能是停用連線、移除網路設定,或嘗試連線至其他網路 (例如範例) 所致。

4

現有連線意外失敗,原因可能是裝置 (或使用者) 未明確觸發連線中斷。意外中斷連線的例子包括:潛在錯誤 (驅動程式庫、韌體等)、信標遺失、存取點故障。

NetworkConfigChangeError strict

類型:uint32

定義於 fuchsia.wlan.policy/client_provider.fidl

儲存和移除網路設定的潛在錯誤情況。

名稱說明
1
2
3
4
6
7
8

作業系統嚴格

類型:uint32

定義於 fuchsia.wlan.policy/types.fidl

用於處理控制要求和狀態更新作業的頻帶。

名稱說明
1

可根據裝置操作模式和環境切換頻帶。

2

僅限 2.4 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

網路的高階防護類型。這不會傳達連線機制所需的所有詳細資料,但主要用於將目標網路對應至適當的掃描結果。

名稱說明
1
2
3
4
5

WlanClientState 嚴格

類型:uint32

定義於 fuchsia.wlan.policy/client_provider.fidl

用戶端連線的 WLAN 運作狀態

名稱說明
1
2

資料表

AccessPointState

定義於 fuchsia.wlan.policy/access_point_provider.fidl

個別作業存取點的相關資訊。其中包括任何已連線用戶端的相關資訊。

序數欄位類型說明
state OperatingState

目前存取點運作狀態

mode ConnectivityMode

要求的運作連線模式

band OperatingBand

存取點操作錶帶。

frequency uint32

存取點作業頻率 (以 MHz 為單位)。

clients ConnectedClientInformation

已連線用戶端的相關資訊

id NetworkIdentifier

找出狀態已變更的存取點資訊。

BS

定義於 fuchsia.wlan.policy/client_provider.fidl

特定 ScanResult 項目的資訊。

序數欄位類型說明
bssid fuchsia.wlan.ieee80211/MacAddr

AP 介面的 MAC 位址。

rssi int8

計算出來的信標/探測回應接收訊號強度。

frequency uint32

此網路的作業頻率 (以 MHz 為單位)。

timestamp_nanos zx/Time

掃描結果的時間 (與系統開機的時間相比)。 詳情請參閱 https://fuchsia.dev/fuchsia-src/concepts/time/language_support#monotonic_time

ClientStateSummary

定義於 fuchsia.wlan.policy/client_provider.fidl

裝置目前用戶端狀態的相關資訊。這包括裝置是否嘗試連線至存取點 (如適用)、任何現有連線和有效連線嘗試,以及這些結果的結果。

序數欄位類型說明
state WlanClientState

這個狀態會指出 WLA 是否要嘗試連線到網路。

networks vector<NetworkState>

有效連線、連線嘗試或失敗的連線。

ConnectedClientInformation

定義於 fuchsia.wlan.policy/access_point_provider.fidl

已連結的用戶端資訊。這最初僅限於已連線的用戶端數量。

序數欄位類型說明
count uint8

已連線的用戶端數量

聯播網設定

定義於 fuchsia.wlan.policy/types.fidl

用於建立連線的網路資訊。

序數欄位類型說明
id NetworkIdentifier

代表特定網路的 ID。不保證獨特性。

credential Credential

加入聯播網所需的資訊。

網路狀態

定義於 fuchsia.wlan.policy/client_provider.fidl

目前網路連線和嘗試次數的相關資訊。

序數欄位類型說明
id NetworkIdentifier

目前連線 (或嘗試) 的網路 ID。

state ConnectionState

連線目前的狀態。

status DisconnectStatus

偵錯或設定顯示的額外資訊

掃描結果

定義於 fuchsia.wlan.policy/client_provider.fidl

由觀察到的 WLAN 網路提供的資訊。包括網路名稱、安全性類型、偵測到的存取點資訊和網路相容性資訊。

序數欄位類型說明
id NetworkIdentifier

用於區分聯播網和將個別 AP 分組的聯播網屬性。

entries vector<Bss>

提供指定網路的個別存取點。

compatibility Compatibility

表示實作支援偵測到的網路。

聯合國

ClientController_RemoveNetwork_Result 嚴格

定義於 fuchsia.wlan.policy/client_provider.fidl

序數Variant類型說明
response ClientController_RemoveNetwork_Response
err NetworkConfigChangeError

ClientController_SaveNetwork_Result 嚴格

定義於 fuchsia.wlan.policy/client_provider.fidl

序數Variant類型說明
response ClientController_SaveNetwork_Response
err NetworkConfigChangeError

憑證可彈性調整

定義於 fuchsia.wlan.policy/types.fidl

用於驗證目標網路存取權的資訊。

序數Variant類型說明
none Empty

網路不使用憑證 (開放式網路)。

password vector<uint8>

純文字密碼 (處理為二進位資料)。

psk vector<uint8>

網路通關密語的雜湊表示法 (處理為二進位資料)。

ScanResultIterator_GetNext_Result 嚴格

定義於 fuchsia.wlan.policy/client_provider.fidl

序數Variant類型說明
response ScanResultIterator_GetNext_Response
err ScanErrorCode