fuchsia.wlan.policy

添加数量:7

协议

接入点控制器

fuchsia.wlan.policy/access_point_provider.fidl 中定义

AccessPointController 允许调用方触发 WLA 状态更改。这包括设备是否充当接入点,以及是否为其他位于同一位置的设备提供 Wi-Fi 网络。

启动接入点

允许 Wlan 使用提供的网络配置、连接模式和频段启动 AccessPoint 操作。

请求

名称类型
config NetworkConfig
mode ConnectivityMode
band OperatingBand

回复

名称类型
status fuchsia.wlan.common/RequestStatus

停止接入点

为指定的网络配置停用 AccessPoint 操作。

请求

名称类型
config NetworkConfig

回复

名称类型
status fuchsia.wlan.common/RequestStatus

停止所有访问点

停用设备上当前运行的所有接入点。

请求

<空>

AccessPointListener

fuchsia.wlan.policy/access_point_provider.fidl 中定义

AccessPointListener API 为调用方提供了一种机制,用于接收有关 WLA 接入点操作的状态更改更新。

获取监听器

注册调用方以接收 Wi-Fi 接入点 (AP) 模式状态更新。

请求

名称类型
updates AccessPointStateUpdates

AccessPointProvider

fuchsia.wlan.policy/access_point_provider.fidl 中定义

AccessPointProvider API 提供了一种接入点控制机制,旨在由代表用户的应用或实体(例如“设置”)调用。其他应用在没有明确的用户控制的情况下,不能调用此 API 来更改 Wi-Fi 状态。

此 API 设计的第二个目标是通过限制控制应用的数量来消除“最后调用者获胜”模式。一次允许一个调用方发出会影响 WLA 状态的 API 调用。

获取控制器

单个调用方用于触发 WLA 接入点 (ap) 模式状态更改的控制信道。调用方还会提供一个用于接收 WLA 应用更新的通道。一次只能对一个调用方打开控制信道。如果在存在有效控件注册的情况下尝试注册为控制器,将导致新调用方提供的通道被关闭。

请求

名称类型
requests server_end<AccessPointController>
updates AccessPointStateUpdates

AccessPointStateUpdates

fuchsia.wlan.policy/access_point_provider.fidl 中定义

AccessPoint 操作状态会随关联的连接状态而变化。

OnAccessPointStateUpdate

使用 Wi-Fi 接入点操作状态的当前摘要更新已注册的监听器。当活跃接入点网络的数量及其各自的活动发生变化时,将调用此方法。已注册的监听器负责确定哪些信息发生了更改(这取决于它们上次确认更新的时间)。

请求

名称类型
access_points vector<AccessPointState>

回复

<空>

ClientController

fuchsia.wlan.policy/client_provider.fidl 中定义

ClientController 允许调用方触发 WLA 状态更改。这包括是否尝试连接、扫描触发器以及保存的网络配置更改。

API 提供的单个调用将在通过 OpenControlChannel 调用注册 wlan ClientProvider 后触发。

连接

尝试连接到指定网络的请求。连接调用的目标必须已经是已保存的网络。在连接尝试期间,此调用不会造成阻塞调用。如果无法立即尝试调用,系统将返回失败状态。如果尝试连接请求,将返回确认状态。连接状态的更新通过 ClientStateUpdates 协议进行传播。如果连接尝试失败,服务将回退到通过网络选择进行扫描和连接的默认行为。

请求

名称类型
id NetworkIdentifier

回复

名称类型
status fuchsia.wlan.common/RequestStatus

GetSavedNetworks

使用提供的迭代器检索当前保存的网络。

请求

名称类型
iterator server_end<NetworkConfigIterator>

移除网络

移除已保存的网络配置(如果存在)。如果使用 NetworkConfig 建立连接,此方法会自动触发断开连接。

请求

名称类型
config NetworkConfig

回复

名称类型
payload ClientController_RemoveNetwork_Result

保存网络

保存网络以及连接所需的任何凭据信息。如果凭据不同,则同一 NetworkIdentifier 可能对应多个条目。如果调用方尝试保存与之前保存的网络具有相同 NetworkIdentifier 和凭据的 NetworkConfig,则该方法实际上是一个空操作。

请求

名称类型
config NetworkConfig

回复

名称类型
payload ClientController_SaveNetwork_Result

ScanForNetwork

触发网络扫描。请注意,即使在正常操作中,某些扫描请求也可能会由于连接建立时间或其他关键连接维护的时间而被拒绝。如果扫描被取消或出现错误,调用方会通过 ScanResultIterator 中的状态更新收到通知。在当前实现中,必须先启动客户端连接才能执行扫描。

请求

名称类型
iterator server_end<ScanResultIterator>

StartClientConnections

允许 Wi-Fi 启动与网络的连接(通过自动连接到已保存的网络,或根据触发连接的来电执行操作)。此调用可能会影响其他设备运行(例如,充当接入点),具体取决于设备的底层功能。返回的状态表示对请求的确认。您应监控 ClientListener 协议,以了解客户端功能何时启用。

请求

<空>

回复

名称类型
status fuchsia.wlan.common/RequestStatus

StopClientConnections

断开与 Wi-Fi 网络的所有现有连接,并禁止启动新连接。 返回的状态表示请求的确认。您应监控 ClientListener 协议,以了解客户端功能何时停用。

请求

<空>

回复

名称类型
status fuchsia.wlan.common/RequestStatus

ClientListener 接口

fuchsia.wlan.policy/client_provider.fidl 中定义

ClientListener API 为调用方提供了一种机制,用于接收有关 Wlan 操作的状态更改更新。

获取监听器

注册调用方以接收 WLA 客户端模式状态更新。

请求

名称类型
updates ClientStateUpdates

ClientProvider

fuchsia.wlan.policy/client_provider.fidl 中定义

ClientProvider API 提供了一种 Wi-Fi 控制机制,旨在由代表用户的应用或实体(例如“设置”)调用。其他应用不得通过调用此 API 在没有明确用户控制的情况下更改 Wi-Fi 状态。

此 API 设计的第二个目标是通过限制控制应用的数量来消除“最后调用者获胜”模式。一次允许一个调用方发出会影响 WLA 状态的 API 调用。

获取控制器

单个调用方用于触发 WLA 客户端模式状态更改的控制通道。调用方还会提供一个用于接收 WLA 更新的通道。一次只能对一个调用方打开控制信道。如果在存在有效控件注册的情况下尝试注册为控制器,将导致新调用方提供的通道被关闭。

请求

名称类型
requests server_end<ClientController>
updates ClientStateUpdates

ClientStateUpdates

fuchsia.wlan.policy/client_provider.fidl 中定义

客户端连接的 Wlan 状态和关联的网络状态会发生变化。这些更新包含以下方面的信息:设备是否尝试连接到网络、已保存的网络配置更改信息、按 NetworkIdentifier 划分的个别连接状态信息和连接尝试信息。与连接和网络相关的调用基于 NetworkIdentifier,以允许在支持的设备上同时连接多个。

OnClientStateUpdate

使用 WLA 客户端状态的当前摘要更新已注册的监听器。 当状态发生任何变化时将调用此方法,并且注册的监听器负责决定哪些信息发生了变化(因为这取决于它们上次确认更新的时间)。

请求

名称类型
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_SaveNetwork_Response

fuchsia.wlan.policy/client_provider.fidl 中定义

<空>

空白

fuchsia.wlan.policy/types.fidl 中定义

用于代替可选值的空结构体。

<空>

网络标识符

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> 无默认值

ENUMS

兼容性严格

类型:uint32

fuchsia.wlan.policy/client_provider.fidl 中定义

扫描结果的高级别兼容性。并非所有网络安全协议都受支持。出于安全和隐私方面的考虑,新协议可能会在可连接之前被检测到,并且已弃用的协议可能明确不受支持。

名称说明
1

表示网络受支持,可以尝试连接(在需要时提供适当的凭据)。

2

该网络使用已弃用的安全协议,因此明确不受支持。

3

网络使用目前不受支持的安全协议。

ConnectionState 严格

类型:uint32

fuchsia.wlan.policy/client_provider.fidl 中定义

用于更新已注册 WLA 观察者的连接状态。

名称说明
1

由于出错,连接尝试终止。

2

已断开网络连接。

3

设备正在尝试连接到网络。

4

现在已建立连接。注意:这无法保证更高级别的网络可达性。

ConnectivityMode 严格

类型:uint32

fuchsia.wlan.policy/access_point_provider.fidl 中定义

接入点的连接操作模式。

名称说明
1

支持位于同一位置的设备之间建立连接。仅限本地的接入点不会将流量转发到其他网络连接。

2

允许完全连接,流量可能会转发到其他网络连接(例如,网络共享模式)。

DisconnectStatus 严格

类型:uint32

fuchsia.wlan.policy/client_provider.fidl 中定义

断开连接和尝试连接失败状态代码

名称说明
1

由于超时,所请求的连接尝试失败。

2

由于疑似凭据失败,因此请求的连接尝试失败。

3

现有连接已在此设备上的 Wlan 服务操作明确断开连接。这可能是由于 Wi-Fi 连接被停用、网络配置遭到移除或尝试连接到其他网络(例如)所致。

4

现有连接意外失败,且不是设备(或用户)明确触发的断开连接。意外断开连接的示例包括:底层错误(驱动程序、固件等)、信标丢失、接入点故障。

NetworkConfigChangeError 严格

类型:uint32

fuchsia.wlan.policy/client_provider.fidl 中定义

保存和移除网络配置时可能会出现的错误情况。

名称说明
1
2
3
4
6
7
8

OperationBand 严格

类型:uint32

fuchsia.wlan.policy/types.fidl 中定义

WLAN 控制请求和状态更新的操作频段。

名称说明
1

允许根据设备操作模式和环境切换频段。

2

仅限 2.4 GHz 频段。

3

仅限 5 GHz 频段。

OperationState 严格

类型: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

状态已更改的接入点的标识信息。

BSS

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

指示 Wlan 是否尝试连接到网络的状态。

networks vector<NetworkState>

活跃连接、连接尝试或失败的连接。

ConnectedClientInformation

fuchsia.wlan.policy/access_point_provider.fidl 中定义

关联的客户端信息。这一限制最初受限于连接的客户端数量。

序数字段类型说明
count uint8

连接的客户端数量

网络配置

fuchsia.wlan.policy/types.fidl 中定义

用于建立连接的网络信息。

序数字段类型说明
id NetworkIdentifier

用于表示特定网络的标识符。不保证唯一性。

credential Credential

加入网络所需的信息。

网络状态

fuchsia.wlan.policy/client_provider.fidl 中定义

有关当前网络连接和尝试的信息。

序数字段类型说明
id NetworkIdentifier

当前连接(或尝试)的网络 ID。

state ConnectionState

连接的当前状态。

status DisconnectStatus

有关调试或“设置”显示的额外信息

ScanResult

fuchsia.wlan.policy/client_provider.fidl 中定义

来自观察到的 WLA 网络的信息。其中包括网络名称、安全类型、检测到的接入点信息和网络兼容性信息。

序数字段类型说明
id NetworkIdentifier

用于区分网络以及对各个 AP 进行分组的网络属性。

entries vector<Bss>

提供指定网络的各个接入点。

compatibility Compatibility

指明实现是否支持检测到的网络。

联合

ClientController_RemoveNetwork_Result 严格

fuchsia.wlan.policy/client_provider.fidl 中定义

序数变体类型说明
response ClientController_RemoveNetwork_Response
err NetworkConfigChangeError

ClientController_SaveNetwork_Result 严格

fuchsia.wlan.policy/client_provider.fidl 中定义

序数变体类型说明
response ClientController_SaveNetwork_Response
err NetworkConfigChangeError

凭据灵活

fuchsia.wlan.policy/types.fidl 中定义

用于验证对目标网络的访问权限的信息。

序数变体类型说明
none Empty

该网络不使用凭据(开放网络)。

password vector<uint8>

明文密码(作为二进制数据处理)。

psk vector<uint8>

网络口令的哈希表示法(作为二进制数据处理)。

ScanResultIterator_GetNext_Result 严格

fuchsia.wlan.policy/client_provider.fidl 中定义

序数变体类型说明
response ScanResultIterator_GetNext_Response
err ScanErrorCode