使用 OT CLI 顯示及管理網路資料

前往 GitHub 查看原始碼

Thread 網路資料包含邊界路由器和其他伺服器的相關資訊 可以使用 Thread 網路邊界路由器和提供服務的裝置 向領導者註冊自己的資訊。領導人收集並結構 Thread Network Data 中的該資訊,並將資訊 並連線至 Thread 網路中的所有裝置

邊界路由器可以註冊指派給 Thread 網路和前置字串的前置字串 提供路線服務可能會登錄 服務本身

邊界路由器和服務資訊可以是穩定版,也可能是暫時性的。穩定版螺紋 將網路資料分配給所有裝置,包括 Sleepy End 裝置 (SED)。 臨時網路資料會分配到 SED 以外的所有節點。

網路資料指令

如需 netdata 指令的清單,請輸入 help

netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done

full 指令

full 指令會回報標記狀態,或重新安排標記追蹤: 「網路資料已滿」回呼。

這個指令需要 OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL。

lengthmaxlength 指令

length 指令會取得 Thread 網路資料目前的長度,並回報 。maxlength 指令會取得觀察到的長度上限,或 重設追蹤的長度上限。

publish 指令

「聯播網資料發布商」提供的機制可限制 Thread 中的服務和前置字串 (On-Mesh 前置字串或外部路徑) 項目 監控網路資料,管理何時要新增或 移除項目。

發布商要求提供 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE

表單網路和設定前置字串

  1. 產生新的網路設定。

    dataset init new
    Done
    
  2. 顯示網路設定。

    dataset
    Active Timestamp: 1
    Channel: 13
    Channel Mask: 0x07fff800
    Ext PAN ID: d63e8e3e495ebbc3
    Mesh Local Prefix: fd3d:b50b:f96d:722d::/64
    Network Key: dfd34f0f05cad978ec4e32b0413038ff
    Network Name: OpenThread-8f28
    PAN ID: 0x8f28
    PSKc: c23a76e98f1a6483639b1ac1271e2e27
    Security Policy: 0, onrcb
    Done
    
  3. 將新資料集修訂為有效作業資料集 (非揮發性) 如果 30 天內讀取資料不到一次 建議使用 Coldline Storage

    dataset commit active
    Done
    
  4. 啟用 Thread 介面

    ifconfig up
    Done
    thread start
    Done
    
  5. 顯示指派給 Thread 介面的 IPv6 位址。

    ipaddr
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    
  6. 註冊指派給 Thread 網路的 IPv6 前置字串,

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. 顯示 Thread 網路資料。

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    fd49:7770:7fc5:0::/64 s med 4000
    Services:
    44970 5d c000 s 4000
    44970 01 9a04b000000e10 s 4000
    Done
    

    前置字串和路徑包括 引數對應和 RLOC 值。

    服務記錄包括 otServiceConfig 包括 mEnterpriseNumbermServiceDataotServerConfig::mServerDatas 表示 otServerConfig::mStable。RLOC 也會附加到 。

  8. 顯示分區 Thread 網路的目前長度 (以位元組為單位) 資料。

    netdata length
    23
    Done
    
  9. 顯示指派給 Thread 介面的 IPv6 位址,包括 。

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

連接至現有的網路

裝置只需要網路金鑰即可連接至 Thread 網路。

雖然這並非必要,但指定管道時,就不必在搜尋時搜尋 改善附加程序的延遲時間與效率。

裝置成功連上 Thread 網路後,裝置就會擷取 完整的有效作業資料集

  1. 建立部分有效作業資料集。

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. 啟用 Thread 介面。

    ifconfig up
    Done
    thread start
    Done
    
  3. 連接至現有網路後,顯示 Thread 網路資料。

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. 顯示分區 Thread 網路的目前長度 (以位元組為單位) 資料。

    netdata length
    23
    Done
    
  5. 顯示指派給 Thread 介面的 IPv6 位址。

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

偵錯與診斷

網路資料的大小上限為 254 個位元組。如果邊界路由器持續新增 條目 (例如前置字串、路徑或服務項目) 至網路資料 才能充飽電發生這種情況時,來自邊界路由器的新要求會新增 系統會拒絕或忽略項目。領導者沒有 務必向邊界路由器發出拒絕信號,以便邊界路由器 不會立即意識到「網路資料」即將用盡。不過 方法,用於偵測網路資料已滿的情況。

同時在邊界路由器和主要路由器上實施的偵測方法,會使用 回呼 API 機制,並允許使用者在網路資料 。回呼可用來採取行動,例如移除過時的前置字串 或服務項目netdata full 指令適用於 追蹤「網路資料已滿」回呼。這些指令 可以回報標記狀態或重設標記的狀態

在 Thread 一般用途中,網路資料不太可能會取得 即使遇到許多邊界路由器, 新增路徑前置字串

嚴格說來,「網路資料」有可能取得完整功能,不過這通常 原因:設定錯誤或邊界路由器發生問題。netdata lengthnetdata maxlength 指令可協助您對「網路資料」的完整錯誤進行偵錯。 length 會取得「網路資料」目前的長度,以位元組和位元組為單位 maxlength 會取得觀察到的最大長度,也可重設追蹤的追蹤長度 長度上限。