<ph type="x-smartling-placeholder"></ph> GitHub のソースを表示
一部の高度な機能は、使用できるかどうかによって プラットフォームでサポートされている必要があります。
自動フレームを保留中
IEEE 802.15.4 では、親会社とインターネット間の 2 種類のデータ転送方法が定義されています。 子ども: 直接的伝達と間接的伝達後者は、 主にスリープ状態にあるエンドデバイス(SED)向けで、 キューに入れられたデータの親をポーリングするために定期的にスリープ状態から復帰します。
直接送信 - 親がデータフレームをエンドデバイスに直接送信します
間接送信 - 目的のエンドデバイスからリクエストされるまで、親はデータを保持します。
間接的なケースでは、子側のデバイスは、まず親をポーリングして確認する必要があります。 使用可能なデータがあるかどうかを 確認しますそのために、子は 親はこれを承認します次に、親がそれを お子様のデバイスのデータを保持している。存在する場合は、その子にデータ パケットを送信します。 これにより、データの受信を確認します。
無線通信が送信パケットの Frame Pending ビットの動的設定をサポートしているか 確認応答を SED に送信する場合、ドライバは 送信元アドレスの一致 API を使用してこの機能を有効にすることができます。OpenThread はこの API を使用して フレーム保留ビットを設定する SED。
無線通信がフレーム保留ビットの動的な設定をサポートしていない場合、
送信元アドレス マッチ API がスタブアウトされて、
OT_ERROR_NOT_IMPLEMENTED
。
無線によるエネルギー スキャン/検出
エネルギー スキャン/検出機能では、エネルギーをサンプリングするために無線チップが必要です。 メッセージを表示し、検出されたエネルギー値を 上位レイヤです。
この機能が実装されていない場合、IEEE 802.15.4 MAC レイヤは 現在の状態を評価するために、ビーコン リクエスト / 応答パケットを送受信します。 チャネルのエネルギー価値
無線チップがエネルギー スキャン/検出に対応している場合は、ソフトウェアを無効にしてください
マクロを設定して、エネルギー スキャンのロジックを
OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0
。
mbedTLS のハードウェア アクセラレーション
mbedTLS は、メインの構成ヘッダー ファイル内でいくつかのマクロを定義します。
mbedtls-config.h
を使用すると、ユーザーは AES、SHA1、SHA2、
その他のモジュール、楕円曲線の個々の関数を
暗号(ECC)モジュールです。詳しくは、
mbedTLS ハードウェア アクセラレーション
をご覧ください。
OpenThread はこれらのマクロを有効にしないため、対称暗号は ハッシュ アルゴリズム、ECC 機能はすべて、ソフトウェア 実装できます。これらの実装には相当なメモリが必要です コンピューティング リソースです。最適なパフォーマンスと 機能を使用する場合は、ソフトウェアではなくハードウェア アクセラレーションを有効にして、 実装します。
OpenThread 内でハードウェア アクセラレーションを有効にするには、次の mbedTLS を
構成ヘッダー ファイルを ot-config
コンパイルに追加する必要があります。
プラットフォームの CMake ファイルで次のように定義しています。
- メイン構成。OpenThread で使用されるすべての必要なマクロを定義します。
/openthread/third-party/mbedtls/mbedtls-config.h
- ユーザー固有の構成。構成の代替実装を定義します。
モジュールと関数:
src/platform-name-mbedtls-config.h
nrf52811.cmake
の例:
target_compile_definitions(ot-config INTERFACE "MBEDTLS_USER_CONFIG_FILE=\"nrf52811-mbedtls-config.h\"" )
mbedtls-config.h
のコメント済みマクロは必須ではなく、
ハードウェア アクセラレーション用のユーザー固有の設定ヘッダー ファイル。
ユーザー固有の設定の詳細な例については、
mbedtls_config_autogen.h
ot-efr32
にあります。
AES モジュール
OpenThread Security は、AES CCM(Counter with CBC-MAC)暗号を IEEE 802.15.4 または MLE メッセージを暗号化/復号し、メッセージを検証する 統合コードですハードウェア アクセラレーションは、少なくとも基本的な AES ECB をサポートする必要があります。 (Electronic Codebook Book)モード。AES CCM の基本機能呼び出しに使用します。
代替の AES モジュール実装を使用するには:
- ユーザー固有の mbedTLS で
MBEDTLS_AES_ALT
マクロを定義する 構成ヘッダー ファイル MBEDTLS_CPPFLAGS
を使用してaes_alt.h
ファイルのパスを指定します。 変数
SHA256 モジュール
OpenThread Security は、HMAC と SHA256 ハッシュ アルゴリズムを適用して スレッドに基づくネットワーク鍵管理と PSKc 生成のためのハッシュ値。 仕様。
別の基本的な SHA256 モジュール実装を使用するには:
- ユーザー固有の mbedTLS で
MBEDTLS_SHA256_ALT
マクロを定義する 構成ヘッダー ファイル MBEDTLS_CPPFLAGS
を使用してsha256_alt.h
ファイルのパスを指定します。 変数
ECC 関数
mbedTLS は現在、ECC の一部に対するハードウェア アクセラレーションのみをサポートしているため、
モジュール全体ではなく、いくつかの関数を実装することが
Kubernetes で
path-to-mbedtls/library/ecp.c
: ECC を加速
乗算を行います。
曲線 secp256r1 は、鍵交換アルゴリズムの ECJPAKE のドラフト。したがって、 ハードウェア アクセラレーションで少なくとも secp256r1 short weierstrass をサポートする必要がある 曲線演算ですSiLabs CRYPTO Hardware Acceleration for mbedTLS 例です。