インフラストラクチャ インターフェース

このモジュールには、隣接するインフラストラクチャ ネットワーク インターフェースのプラットフォーム抽象化が含まれています。

概要

関数

otPlatInfraIfDiscoverNat64Prefix(uint32_t aInfraIfIndex)
aInfraIfIndex を使用して、インフラストラクチャ インターフェースで NAT64 プレフィックスを検出するリクエストを送信します。
otPlatInfraIfDiscoverNat64PrefixDone(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix)
void
インフラ インターフェース ドライバは、このメソッドを呼び出して、NAT64 接頭辞の検出が完了したことを OpenThread に通知します。
otPlatInfraIfHasAddress(uint32_t aInfraIfIndex, const otIp6Address *aAddress)
bool
インフラストラクチャ インターフェースに特定の IPv6 アドレスが割り当てられているかどうかを示します。
otPlatInfraIfRecvIcmp6Nd(otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
void
インフラ インターフェース ドライバは、このメソッドを呼び出して、ICMPv6 Neighbor Discovery メッセージを受信したことを OpenThread に通知します。
otPlatInfraIfSendIcmp6Nd(uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
指定されたインフラストラクチャ インターフェースで ICMPv6 ネイバー検出メッセージを送信します。
otPlatInfraIfStateChanged(otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
インフラ インターフェース ドライバは、このメソッドを呼び出して、インターフェース状態の変化を OpenThread に通知します。

関数

otPlatInfraIfDiscoverNat64Prefix

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

aInfraIfIndex を使用して、インフラストラクチャ インターフェースで NAT64 プレフィックスを検出するリクエストを送信します。

OpenThread は定期的にこのメソッドを呼び出して、NAT64 プレフィックスの存在または変化をモニタリングします。

詳細
パラメータ
[in] aInfraIfIndex
NAT64 プレフィックスを検出するためのインフラストラクチャ インターフェースのインデックス。
戻り値
OT_ERROR_NONE
NAT64 プレフィックス ディスカバリをリクエストしました。
OT_ERROR_FAILED
NAT64 プレフィックス ディスカバリをリクエストできませんでした。

otPlatInfraIfDiscoverNat64PrefixDone

void otPlatInfraIfDiscoverNat64PrefixDone(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Prefix *aIp6Prefix
)

インフラ インターフェース ドライバは、このメソッドを呼び出して、NAT64 接頭辞の検出が完了したことを OpenThread に通知します。

otPlatInfraIfDiscoverNat64Prefix を呼び出した後に呼び出されることが想定されています。NAT64 プレフィックスが検出されない場合、aIp6Prefix は長さがゼロの空のプレフィックスをポイントします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aInfraIfIndex
NAT64 プレフィックスが検出されたインフラストラクチャ インターフェースのインデックス。
[in] aIp6Prefix
NAT64 プレフィックスへのポインタ。

otPlatInfraIfHasAddress

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

インフラストラクチャ インターフェースに特定の IPv6 アドレスが割り当てられているかどうかを示します。

詳細
パラメータ
[in] aInfraIfIndex
インフラ インターフェースのインデックス。
[in] aAddress
IPv6 アドレス。
戻り値
インフラ インターフェースが IPv6 アドレスが割り当てられている場合は TRUE、そうでない場合は FALSE。

otPlatInfraIfRecvIcmp6Nd

void otPlatInfraIfRecvIcmp6Nd(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Address *aSrcAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

インフラ インターフェース ドライバは、このメソッドを呼び出して、ICMPv6 Neighbor Discovery メッセージを受信したことを OpenThread に通知します。

RFC 4861(https://tools.ietf.org/html/rfc4861)をご覧ください。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aInfraIfIndex
ICMPv6 メッセージを受信するインフラストラクチャ インターフェースのインデックス。
[in] aSrcAddress
このメッセージの送信元アドレスです。
[in] aBuffer
ICMPv6 メッセージ バッファ。
[in] aBufferLength
ICMPv6 メッセージ バッファの長さ。

otPlatInfraIfSendIcmp6Nd

otError otPlatInfraIfSendIcmp6Nd(
  uint32_t aInfraIfIndex,
  const otIp6Address *aDestAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

指定されたインフラストラクチャ インターフェースで ICMPv6 ネイバー検出メッセージを送信します。

RFC 4861(https://tools.ietf.org/html/rfc4861)をご覧ください。

詳細
パラメータ
[in] aInfraIfIndex
このメッセージが送信されるインフラストラクチャ インターフェースのインデックス。
[in] aDestAddress
このメッセージの送信先のアドレスです。
[in] aBuffer
ICMPv6 メッセージ バッファ。ICMPv6 チェックサムはゼロのままで、プラットフォームがチェックサムを計算します。
[in] aBufferLength
メッセージ バッファの長さ。
戻り値
OT_ERROR_NONE
ICMPv6 メッセージを送信しました。
OT_ERROR_FAILED
ICMPv6 メッセージを送信できませんでした。

otPlatInfraIfStateChanged

otError otPlatInfraIfStateChanged(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aIsRunning
)

インフラ インターフェース ドライバは、このメソッドを呼び出して、インターフェース状態の変化を OpenThread に通知します。

インターフェースの実行状態が変わらなくても、プラットフォームがメソッドを呼び出すことは問題ありません。この場合、ルーティング マネージャーの状態は影響を受けません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aInfraIfIndex
インフラストラクチャ インターフェースのインデックス。
[in] aIsRunning
インフラストラクチャ インターフェースが実行中かどうかを示すブール値。
戻り値
OT_ERROR_NONE
インフラのインターフェースのステータスを更新しました。
OT_ERROR_INVALID_STATE
ルーティング マネージャーが初期化されていません。
OT_ERROR_INVALID_ARGS
aInfraIfIndex が、ルーティング マネージャーが初期化されるインフラストラクチャ インターフェースと一致しません。

関連情報

OpenThread API リファレンスのトピックは、GitHub で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。