スリーピー エンド デバイス(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
子管理 API を使用すると、 OpenThread アプリケーションで管理間隔とチェック タイムアウト間隔を直接管理できます。
CLI
この機能に関連する CLI コマンドはありません。