ICMPv6

このモジュールには、ICMPv6 通信を制御する関数が含まれています。

概要

列挙型

otIcmp6Code{
  OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE = 0,
  OT_ICMP6_CODE_FRAGM_REAS_TIME_EX = 1
}
enum
ICMPv6 メッセージ コード。
otIcmp6EchoMode{
  OT_ICMP6_ECHO_HANDLER_DISABLED = 0,
  OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY = 1,
  OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY = 2,
  OT_ICMP6_ECHO_HANDLER_ALL = 3
}
enum
ICMPv6 エコー応答モード。
otIcmp6Type{
  OT_ICMP6_TYPE_DST_UNREACH = 1,
  OT_ICMP6_TYPE_PACKET_TO_BIG = 2,
  OT_ICMP6_TYPE_TIME_EXCEEDED = 3,
  OT_ICMP6_TYPE_PARAMETER_PROBLEM = 4,
  OT_ICMP6_TYPE_ECHO_REQUEST = 128,
  OT_ICMP6_TYPE_ECHO_REPLY = 129,
  OT_ICMP6_TYPE_ROUTER_SOLICIT = 133,
  OT_ICMP6_TYPE_ROUTER_ADVERT = 134,
  OT_ICMP6_TYPE_NEIGHBOR_SOLICIT = 135,
  OT_ICMP6_TYPE_NEIGHBOR_ADVERT = 136
}
enum
ICMPv6 メッセージ タイプ。

Typedef

otIcmp6Code typedef
ICMPv6 メッセージ コード。
otIcmp6EchoMode typedef
ICMPv6 エコー応答モード。
otIcmp6Handler typedef
ICMPv6 メッセージ ハンドラを実装します。
otIcmp6Header typedef
struct otIcmp6Header
ICMPv6 ヘッダーを表します。
otIcmp6ReceiveCallback)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader) typedef
void(*
このコールバックにより、OpenThread は受信した ICMPv6 メッセージをアプリケーションに通知できます。
otIcmp6Type typedef
ICMPv6 メッセージ タイプ。

変数

OT_TOOL_PACKED_END

関数

otIcmp6GetEchoMode(otInstance *aInstance)
ICMPv6 エコー処理が有効になっているかどうかを示します。
otIcmp6RegisterHandler(otInstance *aInstance, otIcmp6Handler *aHandler)
受信した ICMPv6 メッセージを提供するハンドラを登録します。
otIcmp6SendEchoRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, uint16_t aIdentifier)
Thread インターフェースを介して ICMPv6 エコー リクエストを送信します。
otIcmp6SetEchoMode(otInstance *aInstance, otIcmp6EchoMode aMode)
void
ICMPv6 エコー処理を有効にするかどうかを設定します。

構造体

otIcmp6Handler

ICMPv6 メッセージ ハンドラを実装します。

otIcmp6Header

ICMPv6 ヘッダーを表します。

共用体

otIcmp6Header::OT_TOOL_PACKED_FIELD

列挙型

otIcmp6Code

 otIcmp6Code

ICMPv6 メッセージ コード。

プロパティ
OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE

宛先に到達できません。ルートがありません。

OT_ICMP6_CODE_FRAGM_REAS_TIME_EX

フラグメントの再組み立て時間が超過しました。

otIcmp6EchoMode

 otIcmp6EchoMode

ICMPv6 エコー応答モード。

プロパティ
OT_ICMP6_ECHO_HANDLER_ALL

ユニキャストおよびマルチキャスト リクエストで ICMPv6 エコー処理が有効になりました。

OT_ICMP6_ECHO_HANDLER_DISABLED

ICMPv6 エコー処理が無効です。

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

ICMPv6 エコー処理は、マルチキャスト リクエストに対してのみ有効です。

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

ICMPv6 エコー処理は、ユニキャスト リクエストに対してのみ有効です。

otIcmp6Type

 otIcmp6Type

ICMPv6 メッセージ タイプ。

プロパティ
OT_ICMP6_TYPE_DST_UNREACH

アクセスできません。

OT_ICMP6_TYPE_ECHO_REPLY

エコー応答。

OT_ICMP6_TYPE_ECHO_REQUEST

エコー リクエスト。

OT_ICMP6_TYPE_NEIGHBOR_ADVERT

Neighbor Advertisement(ネイバー アドバタイズ)

OT_ICMP6_TYPE_NEIGHBOR_SOLICIT

近傍勧誘。

OT_ICMP6_TYPE_PACKET_TO_BIG

大パケットを転送。

OT_ICMP6_TYPE_PARAMETER_PROBLEM

パラメータの問題。

OT_ICMP6_TYPE_ROUTER_ADVERT

ルーター アドバタイズ。

OT_ICMP6_TYPE_ROUTER_SOLICIT

ルーターソリシテーション。

OT_ICMP6_TYPE_TIME_EXCEEDED

時間を超えました。

Typedef

otIcmp6Code

enum otIcmp6Code otIcmp6Code

ICMPv6 メッセージ コード。

otIcmp6EchoMode

enum otIcmp6EchoMode otIcmp6EchoMode

ICMPv6 エコー応答モード。

otIcmp6Handler

struct otIcmp6Handler otIcmp6Handler

ICMPv6 メッセージ ハンドラを実装します。

otIcmp6Header

struct otIcmp6Header otIcmp6Header

ICMPv6 ヘッダーを表します。

otIcmp6ReceiveCallback

void(* otIcmp6ReceiveCallback)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader)

このコールバックにより、OpenThread は受信した ICMPv6 メッセージをアプリケーションに通知できます。

詳細
パラメータ
[in] aContext
任意のコンテキスト情報へのポインタ。
[in] aMessage
受信メッセージへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報へのポインタ。
[in] aIcmpHeader
受信した ICMPv6 ヘッダーへのポインタ。

otIcmp6Type

enum otIcmp6Type otIcmp6Type

ICMPv6 メッセージ タイプ。

変数

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIcmp6Header OT_TOOL_PACKED_END

関数

otIcmp6GetEchoMode

otIcmp6EchoMode otIcmp6GetEchoMode(
  otInstance *aInstance
)

ICMPv6 エコー処理が有効になっているかどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
OT_ICMP6_ECHO_HANDLER_DISABLED
ICMPv6 エコー処理が無効になっています。
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY
ユニキャスト リクエストに対してのみ ICMPv6 エコー処理を有効にする
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY
マルチキャスト リクエストに対してのみ ICMPv6 エコー処理を有効にする
OT_ICMP6_ECHO_HANDLER_ALL
ユニキャストおよびマルチキャスト リクエストで ICMPv6 エコー処理が有効

otIcmp6RegisterHandler

otError otIcmp6RegisterHandler(
  otInstance *aInstance,
  otIcmp6Handler *aHandler
)

受信した ICMPv6 メッセージを提供するハンドラを登録します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aHandler
ICMPv6 メッセージを受信したときに呼び出されるコールバックを含むハンドラへのポインタ。

otIcmp6SendEchoRequest

otError otIcmp6SendEchoRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  uint16_t aIdentifier
)

Thread インターフェースを介して ICMPv6 エコー リクエストを送信します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
ICMPv6 ペイロードを含むメッセージ バッファへのポインタ。
[in] aMessageInfo
aMessage に関連付けられたメッセージ情報への参照。
[in] aIdentifier
エコー返信をこのエコー リクエストと照合するための識別子。ゼロでも構いません。

otIcmp6SetEchoMode

void otIcmp6SetEchoMode(
  otInstance *aInstance,
  otIcmp6EchoMode aMode
)

ICMPv6 エコー処理を有効にするかどうかを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMode
ICMPv6 エコー処理モード。

マクロ

OT_ICMP6_HEADER_DATA_SIZE

 OT_ICMP6_HEADER_DATA_SIZE 4

ICMPv6 ヘッダーのサイズ。

OT_ICMP6_ROUTER_ADVERT_MIN_SIZE

 OT_ICMP6_ROUTER_ADVERT_MIN_SIZE 16

オプションなしのルーター アドバタイズ メッセージのサイズ。

関連情報

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