兒童監督

前往 GitHub 查看原始碼

為睡著的終端裝置 (SED) 提供節能機制,藉此確認裝置是否仍與其上層路由器 (並列在上層路由器的子表格中列出) 進行啟用,請啟用兒童監督功能。

執行緒規格要求 SED 定期執行其父項路由器的 MLE 子項更新要求和回應交換作業,以驗證連線能力。子項監督模式是驗證 SED 路由器連線的替代解決方案,可將訊息傳輸負擔負擔於父路由器,而非能源受限的 SED。

運作方式

這項功能的運作方式有兩種,視節點類型和所設定的參數而定:

上層

如果父項路由器未在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL 中傳輸其子項 SED,則父項路由器會將子項監督訊息排入佇列,並將該 S 上監管訊息傳送給子項的 SED。兒童監督訊息是內含下列資訊的 MAC 框架:

  • SED 的 RLOC16 做為 MAC 標頭的目的地。
  • 空白的酬載。

在預設情況下,MAC 標頭會包含 802.15.4 ACK 要求。如要在子項監督訊息中停用這個要求,請將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST 參數設為 1。

兒童

如果 SED 在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT 中聽不到父路由器,則假設 SED 已中斷與上層路由器的連線,並啟動 MLE 附加程序重新連線到父項路由器。

如何啟用

這項功能預設為停用。

定義

如要啟用兒童監督功能,請在建立 OpenThread 之前,在 openthread/src/core/config/child_supervision.h 檔案中將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 定義為 1

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

依選項

或者,在建構 OpenThread 時使用 -DOT_CHILD_SUPERVISION=ON 建構選項:

./script/build -DOT_CHILD_SUPERVISION=ON

參數

openthread/src/core/config/child_supervision.h 中使用以下參數自訂這項功能:

參數
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
預設值
129 秒
說明
指定家長使用的監督間隔時間 (單位為秒)。如要停用家長監督程序,請將值設為 0。
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
預設值
190 秒
說明
指定裝置在子狀態下的監督檢查逾時時間 (以秒為單位)。如要為子女停用監督功能檢查程序,請將值設為 0。
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
預設值
0 (已啟用 ACK 要求)
說明
設置為 1 以清除/禁用監管消息的 MAC 標頭中的 802.15.4 ACK 請求。

API

請使用 Child Supervision API 直接管理監督功能,並在 OpenThread 應用程式中檢查逾時間隔。

CLI

沒有與這項功能相關的 CLI 指令。