お子様の管理

[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

子管理 API を使用すると、 OpenThread アプリケーションで管理間隔とチェック タイムアウト間隔を直接管理できます。

CLI

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