子の管理機能

GitHub でソースを見る

スリープ状態のエンドデバイス(SED)が親ルーター(子ルーターの子テーブルに記載されているデバイス)にまだ接続されていることを確認するためのエネルギー効率の高いメカニズムを提供するには、子監視機能を有効にします。

Thread 仕様では、SED が親ルーターとの MLE Child Update Request と Response の定期的な接続を実行して接続を検証する必要があります。子管理は、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_ENABLE1 として定義します。

#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 リクエストが有効)
説明
管理機能メッセージの MAC ヘッダーで 802.15.4 ACK リクエストをクリアまたは無効にするには、1 に設定します。

API

Child Supervision API を使って、OpenThread アプリケーションで管理機能を管理し、タイムアウト間隔を直接確認します。

CLI

この機能に関連する CLI コマンドはありません。