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

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
インターネット プロトコル番号。
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
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 ソケット アドレスを表します。

Variables

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 *
この関数は、保護されていないポートリストへのポインタを返します。
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
2 つの IPv6 アドレスが同じかどうかをテストします。
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
この関数は、指定された IPv6 アドレスが Unspecified Address かどうかを示します。
otIp6IsEnabled(otInstance *aInstance)
bool
IPv6 インターフェースが稼働しているかどうかを示します。
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Thread インターフェースでマルチキャスト無作為モードが有効になっているかどうかを確認します。
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
この関数は、otIp6SetReceiveCallback() で指定されたコールバックを介して IPv6 データグラムを提供するときに、Thread コントロール トラフィックが除外されるかどうかを示します。
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 データグラムを提供するときに、Thread コントロール トラフィックを除外するかどうかを設定します。
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

インターネット プロトコル番号。

プロパティ
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

IPv6 の Next ヘッダーはありません。

OT_IP6_PROTO_ROUTING

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

OT_IP6_PROTO_TCP

伝送制御プロトコル

OT_IP6_PROTO_UDP

ユーザーデータ グラム。

匿名列挙型

 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

この構造は、ボーダー ルーティングで転送されるパケットのカウンタを表します。

otIp6 アドレス

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

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

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

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

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

otIp6 プレフィックス

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_ERRORS_POUTSE、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 ソケット アドレスを表します。

otNetif アドレス

struct otNetifAddress otNetifAddress

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

otNetif マルチキャスト アドレス

struct otNetifMulticastAddress otNetifMulticastAddress

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

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

この構造は、パケットとバイトのカウンタを表します。

otSockAddr

struct otSockAddr otSockAddr

この構造は IPv6 ソケット アドレスを表します。

Variables

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 進数値を「:」で区切った形式(「%x:%x:%x:...:%x」)。

結果の文字列が aBufferaSize 文字以内)に収まらない場合、文字列は切り捨てられますが、出力される文字列は常に 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
リスト内のエントリの数。
戻り値
保護されていないポートリストへのポインタ。

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 アドレスが Unspecified Address かどうかを示します。

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

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 データグラムを提供するときに、Thread コントロール トラフィックが除外されるかどうかを示します。

詳細
パラメータ
[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
aString を IPv6 プレフィックスとして解析できませんでした。

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」という形式です。

結果の文字列が aBufferaSize 文字以内)に収まらない場合、文字列は切り捨てられますが、出力される文字列は常に 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 に Timeout Tlv は含まれません。
[in] aCallback
コールバック関数へのポインタ。
[in] aContext
ユーザー コンテキストへのポインタ。
戻り値
OT_ERROR_NONE
MLR.req が正常に送信されました。aCallback は、このメソッドが OT_ERROR_NONE を返す場合に呼び出されます。
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 は変更されません。

otIp6 送信

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
メッセージの処理時に不正な形式のヘッダーが検出されました。

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
デバイスが RAW リンクモードで動作するため、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 データグラムを提供するコールバックを登録します。

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

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

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

この関数は、otIp6SetReceiveCallback() で指定されたコールバックを介して IPv6 データグラムを提供するときに、Thread コントロール トラフィックを除外するかどうかを設定します。

詳細
パラメータ
[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」)。

結果の文字列が aBufferaSize 文字以内)に収まらない場合、文字列は切り捨てられますが、出力される文字列は常に 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_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 で入手可能なソースコードに基づいています。詳細やドキュメントの作成方法については、リソースをご覧ください。