スリープ状態のエンドデバイス(SED)が親ルーターに接続されていることを確認するためのエネルギー効率の高いメカニズムを提供するには、子デバイスの管理機能を有効にします(親ルーターの子テーブルに記載されています)。
Thread 仕様では、SED が親ルータと MLE 子更新リクエストとレスポンスを定期的に交換して接続を確認することが義務付けられています。子管理機能は SED ルーターの接続を検証するための代替ソリューションです。これにより、エネルギーの制約がある SED ではなく、親ルーターにメッセージ送信の負担がかかります。
仕組み
この機能は、ノードタイプと構成するパラメータに応じて、次の 2 つの方法で機能します。
保護者
親ルータが OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
内に子 SED に送信しなかった場合、親ルータは子 SED に子保護メッセージをキューに入れて送信します。児童監視メッセージは、次の情報が含まれる MAC フレームです。
- MAC ヘッダーの宛先として SED の RLOC16。
- 空のペイロード。
デフォルトでは、MAC ヘッダーには 802.15.4 ACK リクエストが含まれています。子どもの管理メッセージでこのリクエストを無効にするには、OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
パラメータを 1 に設定します。
お子様
SED が OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
以内に親ルーターの応答を受信しなかった場合、親ルーターとの接続が切断されたと想定し、親ルーターに再接続するための 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 |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
API
Child Supervision API を使用すると、OpenThread アプリケーションで管理機能を直接管理し、タイムアウト間隔を確認できます。
CLI
この機能に関連する CLI コマンドはありません。