fuchsia.lowpan.thread

新增:7

协议

CapabilitiesConnector

在 fuchsia.lowpan.thread/capabilities.fidl 中定义

用于连接到 LoWPAN 设备上的功能的协议。

新增:18

关联

连接到指定 LoWPAN 设备上的 ThreadCapabilities 协议。

可以通过调用 fuchsia.lowpan/Lookup.GetDevices 来了解接口的名称。

如果处理此请求时出错,则给定通道会关闭,并使用 epitaph 代码来描述失败原因:

  • ZX_ERR_INVALID_ARGUMENT:给定的接口名称格式不正确或无效。
  • ZX_ERR_NOT_FOUND:未找到具有给定名称的接口。
  • ZX_ERR_NOT_SUPPORTED:接口存在,但不支持此协议。

请求

名称类型
name fuchsia.lowpan/InterfaceName
server_end server_end:ThreadCapabilities

数据集

在 fuchsia.lowpan.thread/dataset.fidl 中定义

Thread 操作数据集协议。

此协议可能会泄露个人身份信息。

此协议提供了与管理原始 TLV 格式的 Thread 操作数据集相关的方法。

AttachAllNodesTo

请求当前网络上的所有节点都连接到给定数据集描述的 Thread 网络。返回更改生效前的毫秒数。

在功能上等同于 ot-br-posix 的 AttachAllNodesTo4。

如果此设备当前未配置,则调用此方法等同于调用 SetActiveTlvs()。

所有节点转换到新网络最多可能需要 5 分钟。此方法会返回网络转换前的确切时间。

成功安排转换后,此方法会返回。任何导致此操作无法成功完成调度的错误(例如提供的数据集不完整)都会导致协议关闭。

添加:8

请求

名称类型
dataset OperationalDatasetTlvs

响应

名称类型
delay_ms int64

GetActiveTlvs

以原始 TLV 形式提取并返回活跃的 Thread 操作数据集。在功能上等同于 otDatasetGetActiveTlvs()2。

此方法会返回活跃数据集,如果没有活跃的操作数据集,则不返回任何内容。

任何导致操作无法成功完成的错误都会导致协议关闭。

请求

<EMPTY>

响应

名称类型
dataset OperationalDatasetTlvs

SetActiveTlvs

以原始 TLV 形式设置活跃的 Thread 操作数据集。 在功能上等同于 otDatasetSetActiveTlvs()3。

此方法会在操作成功完成后返回。

任何导致操作无法成功完成的错误都会导致协议关闭。

请求

名称类型
dataset OperationalDatasetTlvs

响应

<EMPTY>

DatasetConnector

在 fuchsia.lowpan.thread/dataset.fidl 中定义

用于连接到 LoWPAN 设备上的数据集的协议。

关联

连接到指定 LoWPAN 设备上的数据集协议。

可以通过调用 fuchsia.lowpan/Lookup.GetDevices 来了解接口的名称。

如果处理此请求时出错,则给定通道会关闭,并使用 epitaph 代码来描述失败原因:

  • ZX_ERR_INVALID_ARGUMENT:给定的接口名称格式不正确或无效。
  • ZX_ERR_NOT_FOUND:未找到具有给定名称的接口。
  • ZX_ERR_NOT_SUPPORTED:接口存在,但不支持此协议。

请求

名称类型
name fuchsia.lowpan/InterfaceName
server_end server_end:Dataset

Epskc

在 fuchsia.lowpan.thread/epskc.fidl 中定义

ePSKc 配置协议

这样,调用方就可以与 Thread 堆栈的 ePSKc 功能进行交互,以生成或使临时密钥失效。

添加:29

StartEphemeralKey

启动临时密钥处理程序。

必须先通过 fuchsia.lowpan.thread/FeatureConnector 启用 ePSKc 功能。

生命周期以毫秒为单位。

来自 OpenThread:

成功设置后,外部调试器候选者只能使用临时密钥一次来建立安全会话。在调试器候选者断开连接后,系统会停止使用临时密钥。

临时密钥的最长生命周期为 10 分钟。

如果提供的生命周期为 0,OpenThread 将使用其默认生命周期(2 分钟)。

如果生命周期到期,则停止使用临时密钥,并且使用该密钥的任何已连接会话都会立即断开连接。

临时密钥管理器会将 DTLS 连接失败次数限制为 10 次。在第 10 次尝试失败后,系统会自动停止使用临时密钥(即使其生命周期尚未到期)。

  • ZX_ERR_INVALID_ARGS:指定的生命周期大于允许的值。
  • ZX_ERR_BAD_STATE:ePSKc 功能尚未启用。
  • ZX_ERR_INTERNAL:生成临时密钥时出错。

请求

名称类型
lifetime uint32

响应

名称类型
payload Epskc_StartEphemeralKey_Result

StopEphemeralKey

停止使用临时密钥。

如果 retain_active_session 为 false,则现有会话将被终止。 如果 retain_active_session 为 true 且有正在进行的会话,则临时密钥不会停止。

必须先通过 fuchsia.lowpan.thread/FeatureConnector 启用 ePSKc 功能。

  • ZX_ERR_BAD_STATE:ePSKc 功能尚未启用,或者 retain_active_session 为 true 且存在有效会话。

请求

名称类型
retain_active_session bool

响应

名称类型
payload Epskc_StopEphemeralKey_Result

WatchEphemeralKeyState

观察临时密钥管理器的运行状态变化。

第一次调用会立即返回当前的 EphemeralKeyState。后续调用会阻塞,直到状态与此通道上最后返回的值不同。中间状态不会排队:如果状态在调用之间多次更改,则仅返回最新状态,并且可能根本无法观察到恢复为上次返回值的更改。

通过 fuchsia.lowpan.thread/FeatureConnector 停用 ePSKc 时,状态会报告为 DISABLED。

在同一通道上多次并发调用此方法属于错误,会导致通道关闭并显示 ZX_ERR_BAD_STATE 墓志铭。

新增:NEXT

请求

<EMPTY>

响应

名称类型
payload Epskc_WatchEphemeralKeyState_Result

EpskcConnector

在 fuchsia.lowpan.thread/epskc.fidl 中定义

用于连接到 LoWPAN 设备上的 Epskc 的协议。

添加:29

关联

连接到指定 LoWPAN 设备上的 Epskc 协议。

可以通过调用 fuchsia.lowpan/Lookup.GetDevices 来了解接口的名称。

如果处理此请求时出错,则给定通道会关闭,并使用 epitaph 代码来描述失败原因:

  • ZX_ERR_INVALID_ARGUMENT:给定的接口名称格式不正确或无效。
  • ZX_ERR_NOT_FOUND:未找到具有给定名称的接口。
  • ZX_ERR_NOT_SUPPORTED:接口存在,但不支持此协议。

请求

名称类型
name fuchsia.lowpan/InterfaceName
server_end server_end:Epskc

功能

在 fuchsia.lowpan.thread/feature.fidl 中定义

用于提取和更新特定 LoWPAN 接口的 OpenThread 功能配置的协议。

新增:11

GetFeatureConfig

返回此接口的当前 OpenThread 功能配置。

返回值中未设置的字段表示不支持该功能。

请求

<EMPTY>

响应

名称类型
config FeatureConfig

UpdateFeatureConfig

更新此接口的当前 OpenThread 功能配置。

config 中任何未设置的字段都将保持不变。

请求

名称类型
config FeatureConfig

响应

<EMPTY>

FeatureConnector

在 fuchsia.lowpan.thread/feature.fidl 中定义

用于连接到 LoWPAN 设备上的功能的协议。

新增:11

关联

连接到指定 LoWPAN 设备上的 Feature 协议。

可以通过调用 fuchsia.lowpan/Lookup.GetDevices 来了解接口的名称。

如果处理此请求时出错,则给定通道会关闭,并使用 epitaph 代码来描述失败原因:

  • ZX_ERR_INVALID_ARGUMENT:给定的接口名称格式不正确或无效。
  • ZX_ERR_NOT_FOUND:未找到具有给定名称的接口。
  • ZX_ERR_NOT_SUPPORTED:接口存在,但不支持此协议。

请求

名称类型
name fuchsia.lowpan/InterfaceName
server_end server_end:Feature

Meshcop

在 fuchsia.lowpan.thread/meshcop.fidl 中定义

与 Mesh Commissioning Protocol (Meshcop) 相关的方法。

UpdateTxtEntries

更新与 Meshcop 边界代理 DNS-SD 条目关联的 TXT 记录信息。这样,当设备充当边界代理时,其更多信息便可在本地网络中被发现。

在功能上等同于 ot-br-posix 的 UpdateVendorMeshCopTxtEntries1。

通常,以下密钥会更新:

  • vn:供应商名称
  • mn:模型名称
  • vo:供应商 OUI
  • vd/vcd:供应商特定数据

如需详细了解所有键及其值,请参阅 Thread 1.2 规范第 8.4.1.1.2 节中的表 8-4。

任何导致操作无法成功完成的错误(例如提供的密钥无效)都会导致协议关闭。

请求

名称类型
txt_entries vector<TxtEntries>:32

响应

<EMPTY>

MeshcopConnector

在 fuchsia.lowpan.thread/meshcop.fidl 中定义

用于连接到 LoWPAN 设备上的 Meshcop 的协议。

关联

连接到指定 LoWPAN 接口上的 Meshcop 协议。

可以通过调用 fuchsia.lowpan/Lookup.GetDevices 来了解接口的名称。

如果处理此请求时出错,则给定通道会关闭,并使用 epitaph 代码来描述失败原因:

  • ZX_ERR_INVALID_ARGUMENT:给定的接口名称格式不正确或无效。
  • ZX_ERR_NOT_FOUND:未找到具有给定名称的接口。
  • ZX_ERR_NOT_SUPPORTED:接口存在,但不支持此协议。

请求

名称类型
name fuchsia.lowpan/InterfaceName
server_end server_end:Meshcop

ThreadCapabilities

在 fuchsia.lowpan.thread/capabilities.fidl 中定义

用于检索线程堆栈支持的功能的协议。

新增:18

GetCapabilities

返回此接口的 Openthread 当前功能。

在接口的生命周期内,功能预计不会发生变化。

请求

<EMPTY>

响应

名称类型
capabilities Capabilities

STRUCTS

Epskc_StartEphemeralKey_Response

在 fuchsia.lowpan.thread/epskc.fidl 中定义

字段类型说明默认
key vector<uint8>:32 无默认应用

Epskc_StopEphemeralKey_Response

在 fuchsia.lowpan.thread/epskc.fidl 中定义

<EMPTY>

Epskc_WatchEphemeralKeyState_Response

在 fuchsia.lowpan.thread/epskc.fidl 中定义

字段类型说明默认
state EphemeralKeyState 无默认应用

TxtEntries

在 fuchsia.lowpan.thread/meshcop.fidl 中定义

字段类型说明默认
key string:254

此 TXT 条目的密钥字符串。

不得包含字符 =。 理论上的最大长度为 254 字节。

无默认应用
value vector<uint8>:253

与此键关联的二进制值。

理论长度上限为 253 字节,比 TXT 记录长度上限少 2 字节,以留出单字节键和键值对分隔符字节的空间。

无默认应用

枚举

DetailedLoggingLevel flexible

类型:uint32

在 fuchsia.lowpan.thread/feature.fidl 中定义

新增:12

名称值说明
0
1
2
3
4
5
6
7
8

EphemeralKeyState flexible

类型:uint32

在 fuchsia.lowpan.thread/epskc.fidl 中定义

临时密钥管理器的运行状态。 如需了解详情,请参阅 https://openthread.io/reference/group/api-border-agent。

新增:NEXT

名称值说明
1

临时密钥管理器已停用。

2

已启用,但未使用临时密钥(未设置或未启动)。

3

已设置临时密钥。正在监听以接受安全连接。

4

与外部 Commissioner 候选设备建立了会话。

5

会议召开,候选人被接受为正式委员。

TABLES

功能

在 fuchsia.lowpan.thread/capabilities.fidl 中定义

Openthread 功能。

功能是指 openthread 支持的功能。例如,nat64 是指 openthread 是否具有 nat64 所需的软件支持,这由 openthread 中定义的宏决定。 它不表示该功能是处于启用状态还是停用状态。 下表介绍了 openthread 支持/不支持的功能。 每添加一项新功能,下表都应更新。

新增:18

序数字段类型说明
nat64 bool

这些字段不能缺失。它们可设置为 true 或 false。 描述是否支持 nat64。 如果 nat64 为 true,则 Openthread 支持 nat64,否则不支持。

dhcpv6_pd bool

描述是否支持 dhcpv6 前缀委派。 如果 dhcpv6_pd 为 true,则 Openthread 支持 dhcpv6pd,否则不支持。

epskc bool

描述是否支持 epskc。 如果 epskc 为 true,则 Openthread 支持 epskc,否则不支持。

新增:27

FeatureConfig

在 fuchsia.lowpan.thread/feature.fidl 中定义

OpenThread 功能配置。

下表介绍了针对给定接口启用或停用了哪些 OpenThread 功能。如需了解详情,请参阅特征协议。

新增:11

序数字段类型说明
trel_enabled bool

确定 TREL 是处于启用状态还是停用状态。

nat64_enabled bool

确定 NAT64 是处于启用状态还是停用状态。

srp_replication_enabled bool

确定 SRP 复制是处于启用还是停用状态。

detailed_logging_enabled bool

确定是否已启用详细日志记录。如果设置为 false,则应在 lowpan-ot-driver 中使用配置文件中设置的默认日志记录级别。

新增:12
detailed_logging_level DetailedLoggingLevel

设置目标日志级别。仅当 detailed_logging_enabled 设置为 true 时,才会使用该值。

新增:12
dhcpv6_pd_enabled bool

确定 DHCPv6-PD 是启用还是停用。

新增:18
dns_upstream_query_enabled bool

确定是否启用 DNS 上游查询。

添加时间:19
epskc_enabled bool

确定 ePSKc 是处于启用状态还是停用状态。

新增:27

UNIONS

Epskc_StartEphemeralKey_Result strict

在 fuchsia.lowpan.thread/epskc.fidl 中定义

序数变体类型说明
response Epskc_StartEphemeralKey_Response
err zx/Status
framework_err internal

Epskc_StopEphemeralKey_Result strict

在 fuchsia.lowpan.thread/epskc.fidl 中定义

序数变体类型说明
response Epskc_StopEphemeralKey_Response
err zx/Status
framework_err internal

Epskc_WatchEphemeralKeyState_Result strict

在 fuchsia.lowpan.thread/epskc.fidl 中定义

序数变体类型说明
response Epskc_WatchEphemeralKeyState_Response
framework_err internal

常量

名称值类型说明
MAX_DATASET_TLV_LEN 254 uint8
OT_BORDER_AGENT_MAX_EPHEMERAL_KEY_LENGTH 32 uint32

OpenThread 边界代理使用的临时密钥的最大长度。 如需了解详情,请参阅 https://openthread.io/reference/group/api-border-agent。

添加:29

别名

名称值说明
OperationalDatasetTlvs vector[MAX_DATASET_TLV_LEN]

用于包含原始 TLV 格式的 Thread 数据集的数据类型。 在功能上等同于类型 otOperationalDatasetTlvs1。

Thread 规范中介绍了 Thread TLV 格式的详细信息。