お子様の管理

GitHub のソースを表示

スリープ状態のエンドデバイス(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_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 リクエストが有効)
説明
1 に設定すると、スーパービジョン メッセージの MAC ヘッダー内の 802.15.4 ACK リクエストがクリアまたは無効になります。

API

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

CLI

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