Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

紙詰まりの検出

GitHubでソースを表示

OpenThreadノードで信号妨害を検出するための構成可能なメカニズムを提供するには、妨害検出機能を有効にします。

この機能は、特定のチャネルでの信号妨害を検出する機能を必要とするデバイス認証に役立ちます。各タイプの認証の要件を満たすように構成できます。

使い方

ジャム検出は、指定された時間枠の間にノードのRSSI(受信信号強度インジケータ)を監視して、チャネルがジャムされているかどうかを判断します。

紙詰まり検出が有効になっている場合:

  1. ジャム検出状態がに設定されているfalse
  2. ノードは、1秒間隔ごとにRSSIを複数回サンプリングします。
  3. 構成上、その全体が一秒間隔残っ上RSSI場合RSSIしきい値各サンプルのためには1秒間隔が詰まったと考えられること。
  4. 詰まった1秒間隔の総数が設定の集約数以上ある場合にビジー期間前の構成秒以内に検出ウィンドウ任意の時点で秒、その時点でジャム検出状態がに設定されているtrue
  5. 詰まった1秒間隔の総数が少ない構成の総数を超える場合ビジー期間前の構成秒以内に検出ウィンドウ任意の時点で秒、その時点でジャム検出状態がに設定されているfalse

履歴ビットマップ

OpenThreadのAPIwpantund特性、先行する63秒のビットマップは、検索のために利用可能です。このビットマップは、RSSIが前の63秒のそれぞれで設定されたRSSIしきい値を超えたかどうかを示します。

たとえば、次のビットマップを取得できます。

0xC248068C416E7FF0

バイナリに変換すると、RSSIが前の63秒間に設定されたRSSIしきい値を超えたすべてのインスタンスが生成されます。

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

検出ウィンドウが16秒に設定され、ビジー期間が8秒に設定されている場合は、ジャム検出状態となるtrueすなわちRSSI閾値が先行で少なくとも8全体秒を超えた最初のインスタンスであるように、51秒16秒。この例では、ジャム検出状態が残っているtrue次の13秒間。

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

-45 dBmが設定されたRSSIしきい値である場合、このビットマップは次のグラフで表される可能性があります。

OTジャム検出

有効にする方法

この機能はデフォルトで無効になっています。

定義することによって

ジャム検出を可能にするために、定義OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE通り1openthread/src/core/config/openthread-core-default-config.h前に、ファイルOpenThreadを構築します

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

オプションで

また、使用-DOT_JAM_DETECTION=ONビルドオプションOpenThreadを構築します

./script/build -DOT_JAM_DETECTION=ON

パラメーター

ジャム検出パラメータのみOpenThread API、スピネルプロトコル、またはを通じて構成することができるwpanctlwpantundネットワークコプロセッサ(NCP)管理のためのコマンドラインツール。後続の構成なしで機能が有効になっている場合は、デフォルト値が適用されます。

次のパラメータを使用して、この機能をカスタマイズします。

パラメーター
RSSIしきい値
デフォルト値
0 dBm
説明
チャネルが妨害されていると見なすしきい値RSSIレベルをdBmで指定します。
検出ウィンドウ
デフォルト値
63秒
説明
信号妨害をチェックするウィンドウを秒単位で指定します。範囲:1〜63。
忙しい時期
デフォルト値
63秒
説明
ジャム検出をトリガーするためにRSSIがRSSIしきい値を上回っている必要がある検出ウィンドウ内の合計秒数を指定します。検出ウィンドウよりも小さくする必要があります。範囲:1〜63。

API

OpenThread

使用するジャム検出APIをごOpenThreadアプリケーションで直接ジャム検出機能を管理すること。 OpenThread APIは、次の機能を提供します。

  • 機能を開始および停止します
  • 紙詰まり検出状態を表示する
  • すべてのパラメータを管理する
  • 現在の紙詰まり検出履歴ビットマップを取得します
  • 紙詰まりが検出されたときのコールバック関数を登録します

スピネル

Spinelプロトコルにより、ホストデバイスはNCPと直接通信できます。このプロトコルは、ジャム検出特性公開しopenthread/src/lib/spinel/spinel.h以下の機能を提供します。

  • 機能を開始および停止します
  • 紙詰まり検出状態を表示する
  • すべてのパラメータを管理する
  • 現在の紙詰まり検出履歴ビットマップを取得します

CLI

OpenThread

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

wpantund

使用wpanctl OpenThread NCP構成用のジャム検出機能を管理するためのCLIを。 wpantund NCPのリセット時に、すべてのジャム検出の設定を保持します。

wpanctl下記にアクセスを提供wpantundプロパティを:

プロパティ
JamDetection:Status
フォーマット
ブール値
説明
読み取り専用。紙詰まり検出状態。信号ジャムが現在検出されているかどうかを示します。
JamDetection:Enable
フォーマット
ブール値
説明
紙詰まり検出機能を有効または無効にします。
JamDetection:RssiThreshold
フォーマット
dBm
説明
それを超えるとチャネルがブロックされていると見なすしきい値RSSIレベルをdBmで指定します。
JamDetection:Window
フォーマット
説明
信号妨害をチェックするウィンドウを秒単位で指定します。範囲:1〜63。
JamDetection:BusyPeriod
フォーマット
説明
指定内凝集秒数JamDetection:Window RSSIは、上記されなければならないJamDetection:RssiThresholdジャム検出をトリガします。より小さくなければならないJamDetection:Window 。範囲:1〜63。
JamDetection:Debug:HistoryBitmap
フォーマット
64ビット値
説明
監視およびデバッグの目的で、紙詰まり検出状態の履歴に関する情報を提供します。

たとえば、NCPの紙詰まり検出状態を取得するには、次のようにします。

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

NCPでジャム検出RSSIしきい値を-45dBmに設定するには、次の手順に従います。

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

詳細についてはwpantundプロパティを参照してくださいwpantund GitHubのリポジトリを