IPv6

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

概要

列挙型

anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
Internet Protocol Numbers(インターネット プロトコル番号)。
anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
IPv6 アドレス送信元。
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
IP ヘッダーで表される ECN ステータス。

Typedef

otBorderRoutingCounters typedef
ボーダー ルーティングを介して転送されたパケットのカウンタを表します。
otIp6Address typedef
struct otIp6Address
IPv6 アドレスを表します。
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
内部 IPv6 アドレスが追加または削除されると、ポインタが呼び出されます。
otIp6AddressComponents typedef
IPv6 アドレスのコンポーネントを表します。
otIp6AddressInfo typedef
IPv6 アドレス情報を表します。
otIp6InterfaceIdentifier typedef
IPv6 アドレスのインターフェース識別子を表します。
otIp6NetworkPrefix typedef
IPv6 アドレスのネットワーク プレフィックス(アドレスの最上位 64 ビット)を表します。
otIp6Prefix typedef
struct otIp6Prefix
IPv6 プレフィックスを表します。
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
IPv6 データグラムを受信するとポインタが呼び出されます。
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
otIp6RegisterMulticastListeners の結果でポインタが呼び出されます。
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
ポインタを使用すると、ユーザーはプレフィックスをフィルタでき、プレフィックスに基づいて SLAAC アドレスを追加することはできません。
otMessageInfo typedef
struct otMessageInfo
ローカルおよびピアの IPv6 ソケット アドレスを表します。
otNetifAddress typedef
IPv6 ネットワーク インターフェースのユニキャスト アドレスを表します。
otNetifMulticastAddress typedef
IPv6 ネットワーク インターフェースのマルチキャスト アドレスを表します。
otPacketsAndBytes typedef
パケットとバイトのカウンタを表します。
otSockAddr typedef
struct otSockAddr
IPv6 ソケット アドレスを表します。

変数

OT_TOOL_PACKED_END

関数

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Thread インターフェースにネットワーク インターフェース アドレスを追加します。
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
保護されていないポートの許可リストにポートを追加します。
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
人が読める IPv6 アドレス文字列をバイナリ表現に変換します。
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
指定された IPv6 アドレスを人が読める文字列に変換します。
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
2 つの IPv6 プレフィックスが同じかどうかをテストします。
otIp6GetBorderRoutingCounters(otInstance *aInstance)
ボーダー ルーティング カウンタを取得します。
otIp6GetMulticastAddresses(otInstance *aInstance)
Thread インターフェースに登録されている IPv6 マルチキャスト アドレスのリストを取得します。
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
aAddress から aLength の接頭辞を取得します。
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Thread インターフェースに割り当てられた IPv6 アドレスのリストを取得します。
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
安全でないポートリストへのポインタを返します。
otIp6HasUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
bool
Thread インターフェースにユニキャスト IPv6 アドレスが割り当てられているかどうかを示します。
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
2 つの IPv6 アドレスが同じかどうかをテストします。
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
特定の IPv6 アドレスが未指定のアドレスであるかどうかを示します。
otIp6IsEnabled(otInstance *aInstance)
bool
IPv6 インターフェースが稼働しているかどうかを示します。
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Thread インターフェースでマルチキャスト プロミスキャス モードが有効になっているかどうかを確認します。
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
otIp6SetReceiveCallback() で指定されたコールバックを介して IPv6 データグラムを配信する際に、スレッド制御トラフィックが除外されるかどうかを示します。
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
SLAAC モジュールが有効かどうかを示します。
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
IPv6 メッセージを送信するための新しいメッセージ バッファを割り当てます。
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
IPv6 メッセージを送信するために、新しいメッセージ バッファを割り当て、IPv6 データグラムをメッセージ バッファに書き込みます。
otIp6PrefixFromString(const char *aString, otIp6Prefix *aPrefix)
人が読める IPv6 接頭辞文字列をバイナリ表現に変換します。
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
2 つの IPv6 アドレスのプレフィックス一致長(ビット)を返します。
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
指定された IPv6 プレフィックスを人が読める文字列に変換します。
otIp6ProtoToString(uint8_t aIpProto)
const char *
指定された IP プロトコル番号を人が読める文字列に変換します。
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
マルチキャスト リスナーをプライマリ バックボーン ルーターに登録します。
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
許可された非セキュア ポートのリストからすべてのポートを削除します。
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Thread インターフェースからネットワーク インターフェース アドレスを削除します。
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
保護されていないポートの許可リストからポートを削除します。
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
ボーダー ルーティング カウンタをリセットします。
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
OpenThread 送信元アドレスの選択を実行します。
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Thread インターフェースを介して IPv6 データグラムを送信します。
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
内部 IPv6 アドレスの変更を通知するコールバックを登録します。
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
IPv6 インターフェースを稼働または停止します。
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
メッシュ ローカル IID を設定します(テスト用)。
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Thread インターフェースで、マルチキャスト プロミスキャス モードを有効または無効にします。
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
受信した IPv6 データグラムを提供するコールバックを登録します。
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
otIp6SetReceiveCallback() で指定されたコールバックを介して IPv6 データグラムを配信するときに、スレッド制御トラフィックを除外するかどうかを設定します。
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
SLAAC モジュールを有効または無効にします。
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
SLAAC モジュールのフィルタ ハンドラを設定します。
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
指定された IPv6 ソケット アドレスを人が読める文字列に変換します。
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Thread インターフェースをネットワーク インターフェース マルチキャスト アドレスに登録します。
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
ネットワーク インターフェース マルチキャスト アドレスへの Thread インターフェースの登録を解除します。

構造体

otBorderRoutingCounters

ボーダー ルーティングを介して転送されたパケットのカウンタを表します。

otIp6Address

IPv6 アドレスを表します。

otIp6AddressComponents

IPv6 アドレスのコンポーネントを表します。

otIp6AddressInfo

IPv6 アドレス情報を表します。

otIp6InterfaceIdentifier

IPv6 アドレスのインターフェース識別子を表します。

otIp6NetworkPrefix

IPv6 アドレスのネットワーク プレフィックス(アドレスの最上位 64 ビット)を表します。

otIp6Prefix

IPv6 プレフィックスを表します。

otMessageInfo

ローカルおよびピアの IPv6 ソケット アドレスを表します。

otNetifAddress

IPv6 ネットワーク インターフェースのユニキャスト アドレスを表します。

otNetifMulticastAddress

IPv6 ネットワーク インターフェースのマルチキャスト アドレスを表します。

otPacketsAndBytes

パケットとバイトのカウンタを表します。

otSockAddr

IPv6 ソケット アドレスを表します。

共用体

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

列挙型

匿名列挙型

 anonymous enum

Internet Protocol Numbers(インターネット プロトコル番号)。

プロパティ
OT_IP6_PROTO_DST_OPTS

IPv6 の送信先オプション。

OT_IP6_PROTO_FRAGMENT

IPv6 のフラグメント ヘッダー。

OT_IP6_PROTO_HOP_OPTS

IPv6 ホップバイホップ オプション。

OT_IP6_PROTO_ICMP6

IPv6 には ICMP を使用します。

OT_IP6_PROTO_IP6

IPv6 カプセル化。

OT_IP6_PROTO_NONE

No Next Header for IPv6。

OT_IP6_PROTO_ROUTING

IPv6 のルーティング ヘッダー。

OT_IP6_PROTO_TCP

伝送制御プロトコル(Transmission Control Protocol)。

OT_IP6_PROTO_UDP

User Datagram。

匿名列挙型

 anonymous enum

IPv6 アドレス送信元。

プロパティ
OT_ADDRESS_ORIGIN_DHCPV6

DHCPv6 によって割り当てられたアドレス。

OT_ADDRESS_ORIGIN_MANUAL

手動で割り当てられた住所。

OT_ADDRESS_ORIGIN_SLAAC

SLAAC によって割り当てられたアドレス。

OT_ADDRESS_ORIGIN_THREAD

スレッドに割り当てられたアドレス(ALOC、RLOC、MLEID など)

匿名列挙型

 anonymous enum

IP ヘッダーで表される ECN ステータス。

プロパティ
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

発生した輻輳(CE)

OT_ECN_NOT_CAPABLE

ECT 以外。

Typedef

otBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

ボーダー ルーティングを介して転送されたパケットのカウンタを表します。

otIp6Address

struct otIp6Address otIp6Address

IPv6 アドレスを表します。

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

内部 IPv6 アドレスが追加または削除されると、ポインタが呼び出されます。

詳細
パラメータ
[in] aAddressInfo
IPv6 アドレス情報へのポインタ。
[in] aIsAdded
aAddress が追加された場合は TRUE、aAddress が削除された場合は FALSE。
[in] aContext
アプリケーション固有のコンテキストへのポインタ。

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

IPv6 アドレスのコンポーネントを表します。

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

IPv6 アドレス情報を表します。

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

IPv6 アドレスのインターフェース識別子を表します。

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

IPv6 アドレスのネットワーク プレフィックス(アドレスの最上位 64 ビット)を表します。

otIp6Prefix

struct otIp6Prefix otIp6Prefix

IPv6 プレフィックスを表します。

otIp6ReceiveCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

IPv6 データグラムを受信するとポインタが呼び出されます。

詳細
パラメータ
[in] aMessage
受信した IPv6 データグラムを含むメッセージ バッファへのポインタ。この関数は、aMessage の所有権をコールバックのレシーバに移行します。メッセージは、処理後にコールバックのレシーバが解放する必要があります(otMessageFree() をご覧ください)。
[in] aContext
アプリケーション固有のコンテキストへのポインタ。

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

otIp6RegisterMulticastListeners の結果でポインタが呼び出されます。

詳細
パラメータ
[in] aContext
ユーザー コンテキストへのポインタ。
[in] aError
MLR.req を正常に送信して MLR.rsp を受信した場合は OT_ERROR_NONE、MLR.rsp を受信できなかった場合は OT_ERROR_RESPONSE_TIMEOUT、MLR.rsp の解析に失敗した場合は OT_ERROR_PARSE が発生。
[in] aMlrStatus
aError が OT_ERROR_NONE の場合のマルチキャスト リスナー登録ステータス。
[in] aFailedAddresses
aError が OT_ERROR_NONE の場合に、失敗した IPv6 アドレスへのポインタ。
[in] aFailedAddressNum
aError が OT_ERROR_NONE の場合に失敗した IPv6 アドレスの数。
関連情報:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

ポインタを使用すると、ユーザーはプレフィックスをフィルタでき、プレフィックスに基づいて SLAAC アドレスを追加することはできません。

otIp6SetSlaacPrefixFilter() を使用すると、フィルタ ハンドラを設定できます。フィルタ ハンドラは、SLAAC モジュールが接頭辞に基づいて SLAAC アドレスを追加しようとしたときに呼び出されます。このブール値の戻り値によって、住所がフィルタされる(追加されていない)かどうかが決まります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aPrefix
SLAAC アドレスが追加されるプレフィックスへのポインタ。
戻り値
TRUE
プレフィックスに基づく SLAAC アドレスをフィルタして、追加しないことを示します。
FALSE
プレフィックスに基づく SLAAC アドレスを追加する必要があることを示します。

otMessageInfo

struct otMessageInfo otMessageInfo

ローカルおよびピアの IPv6 ソケット アドレスを表します。

otNetifAddress

struct otNetifAddress otNetifAddress

IPv6 ネットワーク インターフェースのユニキャスト アドレスを表します。

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

IPv6 ネットワーク インターフェースのマルチキャスト アドレスを表します。

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

パケットとバイトのカウンタを表します。

otSockAddr

struct otSockAddr otSockAddr

IPv6 ソケット アドレスを表します。

変数

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

関数

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Thread インターフェースにネットワーク インターフェース アドレスを追加します。

渡されたインスタンス aAddress が Thread インターフェースによってコピーされます。Thread インターフェースは、外部に追加された一定数のユニキャスト アドレスのみをサポートします。OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRSをご確認ください。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aAddress
ネットワーク インターフェース アドレスへのポインタ。
戻り値
OT_ERROR_NONE
ネットワーク インターフェース アドレスを追加(または更新)しました。
OT_ERROR_INVALID_ARGS
aAddress で示される IP アドレスは内部アドレスです。
OT_ERROR_NO_BUFS
ネットワーク インターフェースには、すでに最大許容数の外部アドレスが保存されています。

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

保護されていないポートの許可リストにポートを追加します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aPort
ポートの値。
戻り値
OT_ERROR_NONE
セキュアでないポートの許可リストにポートを追加しました。
OT_ERROR_INVALID_ARGS
ポートが無効です(値 0 は内部使用のために予約されています)。
OT_ERROR_NO_BUFS
安全でないポートのリストがいっぱいである。

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

人が読める IPv6 アドレス文字列をバイナリ表現に変換します。

詳細
パラメータ
[in] aString
NULL 終了文字列へのポインタ。
[out] aAddress
IPv6 アドレスへのポインタ。
戻り値
OT_ERROR_NONE
aString の解析と aAddress の更新が完了しました。
OT_ERROR_PARSE
aString を IPv6 アドレスとして解析できませんでした。

otIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

指定された IPv6 アドレスを人が読める文字列に変換します。

IPv6 アドレス文字列は、「:」で区切られた 16 個の 16 進数値の形式です("%x:%x:%x:...:%x").

結果の文字列が aSize 文字内の aBuffer に収まらない場合、文字列は切り捨てられますが、出力される文字列は常に null で終わる文字列になります。

詳細
パラメータ
[in] aAddress
IPv6 アドレスへのポインタ(NULL であってはなりません)。
[out] aBuffer
文字列を出力するための char 配列へのポインタ(NULL であってはなりません)。
[in] aSize
aBuffer のサイズ(バイト単位)。OT_IP6_ADDRESS_STRING_SIZE を使用することをおすすめします。

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

2 つの IPv6 プレフィックスが同じかどうかをテストします。

詳細
パラメータ
[in] aFirst
比較する最初の IPv6 プレフィックスへのポインタ。
[in] aSecond
比較する 2 番目の IPv6 プレフィックスへのポインタ。
戻り値
TRUE
2 つの IPv6 プレフィックスは同じです。
FALSE
2 つの IPv6 プレフィックスは同じではありません。

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

ボーダー ルーティング カウンタを取得します。

OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE ビルド時の機能を有効にする必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ボーダー ルーティング カウンタへのポインタ。

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Thread インターフェースに登録されている IPv6 マルチキャスト アドレスのリストを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
最初のネットワーク インターフェース マルチキャスト アドレスへのポインタ。

otIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

aAddress から aLength の接頭辞を取得します。

詳細
パラメータ
[in] aAddress
IPv6 アドレスへのポインタ。
[in] aLength
プレフィックスの長さ(ビット単位)。
[out] aPrefix
IPv6 接頭辞を出力するためのポインタ。

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Thread インターフェースに割り当てられた IPv6 アドレスのリストを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
最初のネットワーク インターフェース アドレスへのポインタ。

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

安全でないポートリストへのポインタを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aNumEntries
リスト内のエントリの数。
戻り値
安全でないポートリストへのポインタ。

otIp6HasUnicastAddress

bool otIp6HasUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Thread インターフェースにユニキャスト IPv6 アドレスが割り当てられているかどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aAddress
ユニキャスト アドレスへのポインタ。
戻り値
TRUE
aAddress が Thread インターフェースに割り当てられている場合。
FALSE
aAddress が Thread インターフェースに割り当てられていない場合。

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

2 つの IPv6 アドレスが同じかどうかをテストします。

詳細
パラメータ
[in] aFirst
比較する最初の IPv6 アドレスへのポインタ。
[in] aSecond
比較する 2 番目の IPv6 アドレスへのポインタ。
戻り値
TRUE
2 つの IPv6 アドレスは同じです。
FALSE
2 つの IPv6 アドレスは同じではありません。

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

特定の IPv6 アドレスが未指定のアドレスであるかどうかを示します。

詳細
パラメータ
[in] aAddress
IPv6 アドレスへのポインタ。
戻り値
TRUE
IPv6 アドレスが [未指定のアドレス] である場合。
FALSE
IPv6 アドレスが未指定のアドレスでない場合。

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

IPv6 インターフェースが稼働しているかどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
TRUE
IPv6 インターフェースが有効になっている。
FALSE
IPv6 インターフェースが無効になっています。

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Thread インターフェースでマルチキャスト プロミスキャス モードが有効になっているかどうかを確認します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
関連項目:
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

otIp6SetReceiveCallback() で指定されたコールバックを介して IPv6 データグラムを配信する際に、スレッド制御トラフィックが除外されるかどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
スレッド制御トラフィックが除外される場合は TRUE、それ以外の場合は FALSE。
関連項目:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

SLAAC モジュールが有効かどうかを示します。

OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE ビルド時の機能を有効にする必要があります。

詳細
戻り値
TRUE
SLAAC モジュールが有効になっています。
FALSE
SLAAC モジュールが無効になっています。

otIp6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

IPv6 メッセージを送信するための新しいメッセージ バッファを割り当てます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aSettings
メッセージ設定へのポインタ、またはデフォルト設定を設定するための NULL。
戻り値
メッセージ バッファへのポインタ。または、使用可能なメッセージ バッファがない場合やパラメータが無効な場合は NULL。
関連項目:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

IPv6 メッセージを送信するために、新しいメッセージ バッファを割り当て、IPv6 データグラムをメッセージ バッファに書き込みます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aData
IPv6 データグラム バッファへのポインタ。
[in] aDataLength
aData がポイントする IPv6 データグラム バッファのサイズ。
[in] aSettings
メッセージ設定へのポインタ、またはデフォルト設定を設定するための NULL。
戻り値
メッセージへのポインタ、または IPv6 ヘッダーの形式が正しくないか、メッセージ バッファが不十分である場合は NULL。
関連項目:
otMessageFree

otIp6PrefixFromString

otError otIp6PrefixFromString(
  const char *aString,
  otIp6Prefix *aPrefix
)

人が読める IPv6 接頭辞文字列をバイナリ表現に変換します。

aString パラメータは、「

/"(
は IPv6 アドレス、 はプレフィックスの長さです。

詳細
パラメータ
[in] aString
NULL 終了文字列へのポインタ。
[out] aPrefix
IPv6 接頭辞へのポインタ。
戻り値
OT_ERROR_NONE
文字列を IPv6 プレフィックスとして正常に解析し、aPrefix を更新しました。
OT_ERROR_PARSE
IPv6 接頭辞として aString を解析できませんでした。

otIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

2 つの IPv6 アドレスのプレフィックス一致長(ビット)を返します。

詳細
パラメータ
[in] aFirst
最初の IPv6 アドレスへのポインタ。
[in] aSecond
2 番目の IPv6 アドレスへのポインタ。
戻り値
プレフィックスは長さ(ビット単位)と一致します。

otIp6PrefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

指定された IPv6 プレフィックスを人が読める文字列に変換します。

IPv6 アドレス文字列の形式は「%x:%x:%x:...[::]/plen」です。

結果の文字列が aSize 文字内の aBuffer に収まらない場合、文字列は切り捨てられますが、出力される文字列は常に null で終わる文字列になります。

詳細
パラメータ
[in] aPrefix
IPv6 接頭辞へのポインタ(NULL であってはなりません)。
[out] aBuffer
文字列を出力するための char 配列へのポインタ(NULL であってはなりません)。
[in] aSize
aBuffer のサイズ(バイト単位)。OT_IP6_PREFIX_STRING_SIZE を使用することをおすすめします。

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

指定された IP プロトコル番号を人が読める文字列に変換します。

詳細
パラメータ
[in] aIpProto
IP プロトコル番号(OT_IP6_PROTO_* 列挙)。
戻り値
aIpProto を表す文字列。

otIp6RegisterMulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

マルチキャスト リスナーをプライマリ バックボーン ルーターに登録します。

OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLEOPENTHREAD_CONFIG_COMMISSIONER_ENABLE を有効にする必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aAddresses
登録するマルチキャスト アドレス配列。
[in] aAddressNum
登録するマルチキャスト アドレスの数(aAddresses が NULL の場合は 0)。
[in] aTimeout
MLR.req に含めるタイムアウト値(秒単位)へのポインタ。タイムアウト値を 0 にすると、対応するマルチキャスト リスナーが削除されます。NULL の場合、デフォルトでは MLR.req にタイムアウト Tlv はありません。
[in] aCallback
コールバック関数へのポインタ。
[in] aContext
ユーザー コンテキストへのポインタ。
戻り値
OT_ERROR_NONE
MLR.req を送信しました。このメソッドが OT_ERROR_NONE を返した場合、aCallback が呼び出されます。
OT_ERROR_BUSY
以前の登録が継続中だったかどうか。
OT_ERROR_INVALID_ARGS
1 つ以上の引数が無効な場合。
OT_ERROR_INVALID_STATE
デバイスが MLR.req を送信するための有効な状態にない場合(例: コミッショナーが起動していない、プライマリ バックボーン ルーターが見つからない)。
OT_ERROR_NO_BUFS
使用可能なメッセージ バッファが十分でない場合。
関連項目:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

許可された非セキュア ポートのリストからすべてのポートを削除します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Thread インターフェースからネットワーク インターフェース アドレスを削除します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aAddress
IP アドレスへのポインタ。
戻り値
OT_ERROR_NONE
ネットワーク インターフェース アドレスを削除しました。
OT_ERROR_INVALID_ARGS
aAddress で示される IP アドレスは内部アドレスです。
OT_ERROR_NOT_FOUND
aAddress で示される IP アドレスが見つかりませんでした。

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

保護されていないポートの許可リストからポートを削除します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aPort
ポートの値。
戻り値
OT_ERROR_NONE
保護されていないポートの許可リストからポートを削除しました。
OT_ERROR_INVALID_ARGS
ポートが無効です(値 0 は内部使用のために予約されています)。
OT_ERROR_NOT_FOUND
安全でないポートのリストでポートが見つかりませんでした。

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

ボーダー ルーティング カウンタをリセットします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

OpenThread 送信元アドレスの選択を実行します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in,out] aMessageInfo
メッセージ情報へのポインタ。
戻り値
OT_ERROR_NONE
送信元アドレスが検出され、aMessageInfo の mSockAddr に入力されています。
OT_ERROR_NOT_FOUND
送信元アドレスは検出されず、aMessageInfo は変更されません。

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Thread インターフェースを介して IPv6 データグラムを送信します。

この呼び出しを行うと、呼び出し元は aMessage の所有権を譲渡します。OpenThread は、OT_ERROR_NONE 以外の値が返された場合など、処理が完了したときに aMessage を解放します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMessage
IPv6 データグラムを含むメッセージ バッファへのポインタ。
戻り値
OT_ERROR_NONE
メッセージを正常に処理しました。
OT_ERROR_DROP
メッセージは正しい形式ですが、パケット処理ルールにより完全に処理されませんでした。
OT_ERROR_NO_BUFS
データグラムの処理時に必要なメッセージ バッファを割り当てることができませんでした。
OT_ERROR_NO_ROUTE
ホストへのルートがありません。
OT_ERROR_INVALID_SOURCE_ADDRESS
エニーキャスト アドレスやマルチキャスト アドレスなど、送信元アドレスが無効である。
OT_ERROR_PARSE
メールの処理中に不正な形式のヘッダーが検出されました。
OT_ERROR_INVALID_ARGS
メッセージのメタデータが無効である(例: メッセージの送信元として OT_MESSAGE_ORIGIN_THREAD_NETIF が使用されている)。

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

内部 IPv6 アドレスの変更を通知するコールバックを登録します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aCallback
内部 IPv6 アドレスが追加または削除されたときに呼び出される関数へのポインタ。NULL を指定すると、コールバックが無効になります。
[in] aCallbackContext
アプリケーション固有のコンテキストへのポインタ。

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

IPv6 インターフェースを稼働または停止します。

IPv6 通信を有効または無効にするには、これを呼び出します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
IPv6 を有効にする場合は TRUE、そうでない場合は FALSE です。
戻り値
OT_ERROR_NONE
IPv6 インターフェースの稼働/停止が正常に行われました。
OT_ERROR_INVALID_STATE
デバイスがローリンク モードで動作しているため、IPv6 インターフェースを利用できません(OPENTHREAD_CONFIG_LINK_RAW_ENABLE 機能が有効な場合にのみ適用されます)。

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

メッシュ ローカル IID を設定します(テスト用)。

OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE が必要です。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aIid
設定するメッシュ ローカル IID へのポインタ。
戻り値
OT_ERROR_NONE
メッシュ ローカル IID が正常に設定されました。
OT_ERROR_INVALID_STATE
スレッド プロトコルが有効になっている。

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Thread インターフェースで、マルチキャスト プロミスキャス モードを有効または無効にします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
マルチキャストプロミスキャス モードを有効にする場合は TRUE、それ以外の場合は FALSE です。
関連情報:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

受信した IPv6 データグラムを提供するコールバックを登録します。

デフォルトでは、このコールバックはスレッド制御トラフィックを渡しません。スレッド コントロールのトラフィック フィルタの設定を変更するには、otIp6SetReceiveFilterEnabled() をご覧ください。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aCallback
IPv6 データグラムの受信時に呼び出される関数へのポインタ、またはコールバックを無効にする場合は NULL へのポインタ。
[in] aCallbackContext
アプリケーション固有のコンテキストへのポインタ。
関連情報:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

otIp6SetReceiveCallback() で指定されたコールバックを介して IPv6 データグラムを配信するときに、スレッド制御トラフィックを除外するかどうかを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
スレッド制御トラフィックが除外される場合は TRUE、それ以外の場合は FALSE。
関連情報:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

SLAAC モジュールを有効または無効にします。

OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE ビルド時の機能を有効にする必要があります。

SLAAC モジュールが有効になっている場合、SLAAC アドレス(ネットワーク データのメッシュ上のプレフィックスに基づく)がインターフェースに追加されます。SLAAC モジュールを無効にすると、以前に追加された SLAAC アドレスはすべて削除されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
有効にする場合は TRUE、無効にする場合は FALSE です。

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

SLAAC モジュールのフィルタ ハンドラを設定します。

OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE ビルド時の機能を有効にする必要があります。

フィルタ ハンドラは、SLAAC モジュールが接頭辞に基づいて SLAAC アドレスを追加しようとしたときに呼び出されます。これにより、アドレスを追加するかどうかが決定されます。

NULL フィルタ ハンドラは、フィルタリングを無効にし、すべての SLAAC アドレスの追加を許可します。

この関数が呼び出されない場合、SLAAC モジュールで使用されるデフォルトのフィルタは NULL になります(フィルタリングが無効になります)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aFilter
SLAAC プレフィックス フィルタ ハンドラへのポインタ、またはフィルタリングを無効にする場合は NULL。

otIp6SockAddrToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

指定された IPv6 ソケット アドレスを人が読める文字列に変換します。

IPv6 ソケット アドレス文字列の形式は [address]:port です。ここで、address: で区切られた 16 個の 16 進数値として示され、port は 10 進数形式のポート番号です(例: [%x:%x:...:%x]:%u)。

結果の文字列が aSize 文字内の aBuffer に収まらない場合、文字列は切り捨てられますが、出力される文字列は常に null で終わる文字列になります。

詳細
パラメータ
[in] aSockAddr
IPv6 ソケット アドレスへのポインタ(NULL であってはなりません)。
[out] aBuffer
文字列を出力するための char 配列へのポインタ(NULL であってはなりません)。
[in] aSize
aBuffer のサイズ(バイト単位)。OT_IP6_SOCK_ADDR_STRING_SIZE を使用することをおすすめします。

otIp6SubscribeMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Thread インターフェースをネットワーク インターフェース マルチキャスト アドレスに登録します。

渡されたインスタンス aAddress は、Thread インターフェースによってコピーされます。Thread インターフェースは、外部に追加された一定数のマルチキャスト アドレスのみをサポートします。OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRSをご確認ください。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aAddress
IP アドレスへのポインタ。
戻り値
OT_ERROR_NONE
ネットワーク インターフェースのマルチキャスト アドレスへの登録が完了しました。
OT_ERROR_ALREADY
このマルチキャスト アドレスはすでに登録済みです。
OT_ERROR_INVALID_ARGS
aAddress で示される IP アドレスは、無効なマルチキャスト アドレスです。
OT_ERROR_REJECTED
aAddress で示される IP アドレスは、内部マルチキャスト アドレスです。
OT_ERROR_NO_BUFS
ネットワーク インターフェースには、すでに許可されている最大数の外部マルチキャスト アドレスが保存されています。

otIp6UnsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

ネットワーク インターフェース マルチキャスト アドレスへの Thread インターフェースの登録を解除します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aAddress
IP アドレスへのポインタ。
戻り値
OT_ERROR_NONE
ネットワーク インターフェースのマルチキャスト アドレスへの登録を解除しました。
OT_ERROR_REJECTED
aAddress で示される IP アドレスは内部アドレスです。
OT_ERROR_NOT_FOUND
aAddress で示される IP アドレスが見つかりませんでした。

マクロ

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

IPv6 アドレスのサイズ(バイト)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

IPv6 アドレスの文字列表現の推奨サイズ。

OT_IP6_HEADER_PROTO_OFFSET

 OT_IP6_HEADER_PROTO_OFFSET 6

IPv6 ヘッダー内の proto フィールドのオフセット(バイト)

OT_IP6_HEADER_SIZE

 OT_IP6_HEADER_SIZE 40

IPv6 ヘッダーのサイズ(バイト)

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

IPv6 インターフェース識別子のサイズ(バイト)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

マルチキャスト リスナー登録でサポートされる IPv6 アドレスの最大数。

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

IPv6 プレフィックスのサイズ(ビット)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

IPv6 プレフィックスのサイズ(バイト)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

IPv6 プレフィックスの文字列表現の推奨サイズ。

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

IPv6 ソケット アドレスの文字列表現の推奨サイズ。

関連情報

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