协议
CapabilitiesConnector
在 fuchsia.lowpan.thread/capabilities.fidl 中定义
用于连接到 LoWPAN 设备上的功能的协议。
关联
连接到指定 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 分钟。此方法会返回网络转换前的确切时间。
成功安排转换后,此方法会返回。任何导致此操作无法成功完成调度的错误(例如提供的数据集不完整)都会导致协议关闭。
请求
| 名称 | 类型 |
|---|---|
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 功能进行交互,以生成或使临时密钥失效。
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 墓志铭。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
payload |
Epskc_WatchEphemeralKeyState_Result
|
EpskcConnector
在 fuchsia.lowpan.thread/epskc.fidl 中定义
用于连接到 LoWPAN 设备上的 Epskc 的协议。
关联
连接到指定 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 功能配置的协议。
GetFeatureConfig
返回此接口的当前 OpenThread 功能配置。
返回值中未设置的字段表示不支持该功能。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
config |
FeatureConfig
|
UpdateFeatureConfig
更新此接口的当前 OpenThread 功能配置。
config 中任何未设置的字段都将保持不变。
请求
| 名称 | 类型 |
|---|---|
config |
FeatureConfig
|
响应
<EMPTY>
FeatureConnector
在 fuchsia.lowpan.thread/feature.fidl 中定义
用于连接到 LoWPAN 设备上的功能的协议。
关联
连接到指定 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:供应商 OUIvd/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 中定义
用于检索线程堆栈支持的功能的协议。
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 条目的密钥字符串。 不得包含字符 |
无默认应用 |
value |
vector<uint8>:253
|
与此键关联的二进制值。 理论长度上限为 253 字节,比 TXT 记录长度上限少 2 字节,以留出单字节键和键值对分隔符字节的空间。 |
无默认应用 |
枚举
DetailedLoggingLevel flexible
类型:uint32
在 fuchsia.lowpan.thread/feature.fidl 中定义
| 名称 | 值 | 说明 |
|---|---|---|
LOWPAN_LOG_UNSPECIFIED |
0 |
|
LOWPAN_LOG_EMERG |
1 |
|
LOWPAN_LOG_ALERT |
2 |
|
LOWPAN_LOG_CRIT |
3 |
|
LOWPAN_LOG_ERR |
4 |
|
LOWPAN_LOG_WARNING |
5 |
|
LOWPAN_LOG_NOTICE |
6 |
|
LOWPAN_LOG_INFO |
7 |
|
LOWPAN_LOG_DEBUG |
8 |
EphemeralKeyState flexible
类型:uint32
在 fuchsia.lowpan.thread/epskc.fidl 中定义
临时密钥管理器的运行状态。 如需了解详情,请参阅 https://openthread.io/reference/group/api-border-agent。
| 名称 | 值 | 说明 |
|---|---|---|
已停用 |
1 |
临时密钥管理器已停用。 |
已停止 |
2 |
已启用,但未使用临时密钥(未设置或未启动)。 |
全球之旅 |
3 |
已设置临时密钥。正在监听以接受安全连接。 |
已连接 |
4 |
与外部 Commissioner 候选设备建立了会话。 |
已接受 |
5 |
会议召开,候选人被接受为正式委员。 |
TABLES
功能
在 fuchsia.lowpan.thread/capabilities.fidl 中定义
Openthread 功能。
功能是指 openthread 支持的功能。例如,nat64 是指 openthread 是否具有 nat64 所需的软件支持,这由 openthread 中定义的宏决定。 它不表示该功能是处于启用状态还是停用状态。 下表介绍了 openthread 支持/不支持的功能。 每添加一项新功能,下表都应更新。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
nat64 |
bool
|
这些字段不能缺失。它们可设置为 true 或 false。 描述是否支持 nat64。 如果 nat64 为 true,则 Openthread 支持 nat64,否则不支持。 |
2 |
dhcpv6_pd |
bool
|
描述是否支持 dhcpv6 前缀委派。 如果 dhcpv6_pd 为 true,则 Openthread 支持 dhcpv6pd,否则不支持。 |
3 |
epskc |
bool
|
描述是否支持 epskc。 如果 epskc 为 true,则 Openthread 支持 epskc,否则不支持。 新增:27
|
FeatureConfig
在 fuchsia.lowpan.thread/feature.fidl 中定义
OpenThread 功能配置。
下表介绍了针对给定接口启用或停用了哪些 OpenThread 功能。如需了解详情,请参阅特征协议。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
trel_enabled |
bool
|
确定 TREL 是处于启用状态还是停用状态。 |
2 |
nat64_enabled |
bool
|
确定 NAT64 是处于启用状态还是停用状态。 |
3 |
srp_replication_enabled |
bool
|
确定 SRP 复制是处于启用还是停用状态。 |
4 |
detailed_logging_enabled |
bool
|
确定是否已启用详细日志记录。如果设置为 false,则应在 lowpan-ot-driver 中使用配置文件中设置的默认日志记录级别。 新增:12
|
5 |
detailed_logging_level |
DetailedLoggingLevel
|
设置目标日志级别。仅当 新增:12
|
6 |
dhcpv6_pd_enabled |
bool
|
确定 DHCPv6-PD 是启用还是停用。 新增:18
|
7 |
dns_upstream_query_enabled |
bool
|
确定是否启用 DNS 上游查询。 添加时间:19
|
8 |
link_metrics_manager_enabled |
bool
|
确定是启用还是停用 Link Metrics Manager。 新增:20
|
9 |
epskc_enabled |
bool
|
确定 ePSKc 是处于启用状态还是停用状态。 新增:27
|
UNIONS
Epskc_StartEphemeralKey_Result strict
在 fuchsia.lowpan.thread/epskc.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Epskc_StartEphemeralKey_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Epskc_StopEphemeralKey_Result strict
在 fuchsia.lowpan.thread/epskc.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Epskc_StopEphemeralKey_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Epskc_WatchEphemeralKeyState_Result strict
在 fuchsia.lowpan.thread/epskc.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Epskc_WatchEphemeralKeyState_Response
|
|
3 |
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 格式的详细信息。 |