如要為處於休眠狀態的裝置 (SED) 提供省電機制,以便驗證裝置是否仍連線至其父親路由器 (列於父親路由器的子表格中),請啟用子路由器功能。
Thread 規格要求 SED 定期透過上層路由器執行 MLE 子項更新要求和回應交換,以驗證連線能力。子項監控是驗證 SED 路由器連線的替代解決方案,可將訊息傳輸的負擔放在父項路由器上,而非能源受限的 SED。
運作方式
這項功能有兩種運作方式,取決於節點類型和設定的參數:
在父項
如果父路由器未在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
內傳送至子 SED,父路由器會排入佇列,並將兒童監督訊息傳送至子 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
內未收到父路由器的回應,就會假設已與父路由器失去連線,並啟動 MLE 附加程序,重新附加至父路由器。
如何啟用
這項功能預設為停用。
依定義
如要啟用兒童監護功能,請在openthread/src/core/config/child_supervision.h
檔案中將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
定義為 1
,然後再建構 OpenThread:
#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 |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
API
使用 Child Supervision API 管理監督功能,並直接在 OpenThread 應用程式中檢查逾時間隔。
CLI
沒有與這項功能相關的 CLI 指令。