通訊協定
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 作業資料集通訊協定。
這項通訊協定可能會公開 PII。
這個通訊協定提供的方法,與管理原始 TLV 格式的 Thread 作業資料集有關。
AttachAllNodesTo
要求目前網路上的所有節點,都連結至指定資料集描述的執行緒網路。傳回變更生效前的毫秒數。
功能等同於 ot-br-posix 的 AttachAllNodesTo4。
如果這部裝置目前未佈建,呼叫這個方法等同於呼叫 SetActiveTlvs()。
所有節點轉換至新網路可能需要五分鐘。這個方法會傳回網路轉換前的確切時間。
成功排定轉換作業後,這個方法就會傳回。如果發生任何錯誤,導致這項作業無法順利完成排程 (例如提供的資料集不完整),通訊協定就會關閉。
要求
| 名稱 | 類型 |
|---|---|
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 裝置上的功能通訊協定。
如要瞭解介面名稱,請呼叫 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 記錄長度上限少兩個位元組,以容納單一位元組鍵和鍵/值分隔符號位元組。 |
無預設值 |
列舉
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 彈性
類型:uint32
定義於 fuchsia.lowpan.thread/epskc.fidl
臨時金鑰管理工具的運作狀態。詳情請參閱 https://openthread.io/reference/group/api-border-agent。
| 名稱 | 值 | 說明 |
|---|---|---|
已停用 |
1 |
已停用 Ephemeral Key Manager。 |
已停止 |
2 |
已啟用,但未使用臨時金鑰 (未設定或未啟動)。 |
已開始 |
3 |
已設定暫時金鑰。正在監聽,準備接受安全連線。 |
已連線 |
4 |
與外部委任者候選裝置建立工作階段。 |
ACCEPTED |
5 |
工作階段已建立,候選人獲准成為正式委員。 |
TABLES
功能
定義於 fuchsia.lowpan.thread/capabilities.fidl
Openthread 功能。
功能是指 OpenThread 支援的功能。舉例來說,nat64 是指 OpenThread 是否具備 nat64 所需的軟體支援,這取決於 OpenThread 中定義的巨集。與功能是否啟用無關。 下表說明 OpenThread 支援和不支援的功能。每當新增功能時,請更新下表。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
nat64 |
bool
|
欄位不得留空。這類標記會設為 true 或 false。說明是否支援 nat64。如果 nat64 為 true,表示 Openthread 支援 nat64,否則為 false。 |
2 |
dhcpv6_pd |
bool
|
說明是否支援 dhcpv6 前置碼委派。如果 dhcpv6_pd 為 true,Openthread 支援 dhcpv6pd,否則為 false。 |
3 |
epskc |
bool
|
說明是否支援 epskc。如果 epskc 為 true,Openthread 支援 epskc,否則為 false。 新增: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-驅動程式庫應使用設定檔中設定的預設記錄層級。 新增: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
|
決定是否啟用連結指標管理工具。 新增:20
|
9 |
epskc_enabled |
bool
|
決定是否啟用 ePSKc。 新增:27
|
UNIONS
Epskc_StartEphemeralKey_Result strict
定義於 fuchsia.lowpan.thread/epskc.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Epskc_StartEphemeralKey_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Epskc_StopEphemeralKey_Result strict
定義於 fuchsia.lowpan.thread/epskc.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Epskc_StopEphemeralKey_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Epskc_WatchEphemeralKeyState_Result strict
定義於 fuchsia.lowpan.thread/epskc.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
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 Border Agent 使用的臨時金鑰長度上限。詳情請參閱 https://openthread.io/reference/group/api-border-agent。 新增:29
|
別名
| 名稱 | 值 | 說明 |
|---|---|---|
| OperationalDatasetTlvs |
vector[MAX_DATASET_TLV_LEN] |
資料類型,用於包含原始 TLV 格式的 Thread 資料集。功能等同於 otOperationalDatasetTlvs 類型1。 Thread TLV 格式的詳細資料請參閱 Thread 規格。 |