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

IPv6

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

概要

列挙型

anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
列挙型
IPv6 アドレスのオリジン。
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
列挙型
IP ヘッダーに示される ECN ステータス。
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
}
列挙型
インターネット プロトコル番号

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 ネットワーク インターフェースのマルチキャスト アドレスを表します。
otSockAddr typedef
struct otSockAddr
この構造は IPv6 ソケット アドレスを表します。

変数

OT_TOOL_PACKED_END

関数

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
スレッド インターフェースにネットワーク インターフェース アドレスを追加する。
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 プレフィックスが同じかどうかをテストします。
otIp6GetMulticastAddresses(otInstance *aInstance)
Thread インターフェースに登録されている IPv6 マルチキャスト アドレスのリストを取得します。
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 データグラムを配信するときに、スレッド制御トラフィックを除外するかどうかを示します。
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 データグラムをメッセージ バッファに書き込みます。
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)
スレッド インターフェースからネットワーク インターフェース アドレスを削除する。
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
この関数は、許可されていない安全でないポートリストからポートを削除します。
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
スレッド インターフェースでマルチキャスト 無作為モードを有効にします。
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 インターフェースからネットワーク インターフェース マルチキャスト アドレスへの登録を解除します。

構造体

otIp6Address

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

otIp6AddressComponents

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

otIp6AddressInfo

この構造は IPv6 アドレス情報を表します。

otIp6InterfaceIdentifier

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

otIp6NetworkPrefix

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

otIp6Prefix

この構造は IPv6 接頭辞を表します。

otMessageInfo

この構造はローカルとピアの IPv6 ソケット アドレスを表します。

otNetifAddress

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

otNetifMulticastAddress

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

otSockAddr

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

共用体

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

列挙型

匿名列挙型

 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

Con が発生した(CE)

OT_ECN_NOT_CAPABLE

ECT 以外。

匿名列挙型

 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 Header はありません。

OT_IP6_PROTO_ROUTING

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

OT_IP6_PROTO_TCP

伝送制御プロトコル

OT_IP6_PROTO_UDP

User Datagram:

Typedef

otIp6Address(OTI6 アドレス)

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(OTI6 アドレス コンポーネント)

struct otIp6AddressComponents otIp6AddressComponents

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

otIp6AddressInfo(OTIp6AddressInfo)

struct otIp6AddressInfo otIp6AddressInfo

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
OT_ERROR_NONE(MLR.req を正常に送信し、MLR.rsp を受け取った場合)。OT_ERROR_RESPONSE_TIMEOUT(MLR.rsp の受信に失敗した場合)、OT_ERROR_PARSE(MLR.rsp の解析に失敗した場合)。
[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 ネットワーク インターフェースのマルチキャスト アドレスを表します。

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
)

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

渡されたインスタンス aAddress は、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
文字列を解析しました。
OT_ERROR_INVALID_ARGS
文字列を解析できませんでした。

otIp6AddressToString

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

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

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

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

詳細
パラメータ
[in] aAddress
IPv6 アドレスへのポインタ(NULL にはしないでください)。
[out] aBuffer
文字列を出力する文字配列へのポインタ(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 プレフィックスは同じではありません。

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

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

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

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 Address の場合。
FALSE
IPv6 アドレスが Unspecified Address でない場合。

otIp6IsEnabled(OTI 認証の有効化)

bool otIp6IsEnabled(
  otInstance *aInstance
)

この関数は、IPv6 インターフェースが稼働しているかどうかを示します。

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

otIp6IsMulticastPromiscuousEnabled(OTI6 マルチキャスト PromiscuousEnabled)

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

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

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

otIp6IsReceiveFilterEnabled(OTI6 受信フィルタの有効化)

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

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

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

otIp6IsSlaacEnabled(OTI6 の有効化)

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

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
文字列を出力する文字配列へのポインタ(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
)

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

詳細
パラメータ
[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
保護されていないポートリストにこのポートが見つかりませんでした。

otIp6SelectSourceAddress(OTI6 選択ソースアドレス)

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

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(OTI6 マルチキャスト PromiscuousEnabled)

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

スレッド インターフェースでマルチキャスト 無作為モードを有効にします。

詳細
パラメータ
[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(OTI 6 設定の受信フィルタの有効化)

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(OTP6SetSlaacPrefixFilter)

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 ソケット アドレス文字列は、「[

::" ここで
16 進値として「:」で区切られ、 が 10 進数形式のポート番号(例: 「[%x:%x:...:%x]:%u")

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

詳細
パラメータ
[in] aSockAddr
IPv6 ソケット アドレスへのポインタ(NULL にはしないでください)。
[out] aBuffer
文字列を出力する文字配列へのポインタ(NULL にはしないでください)。
[in] aSize
aBuffer のサイズ(バイト単位)。OT_IP6_SOCK_ADDR_STRING_SIZE の使用をおすすめします。

otIp6SubscribeMulticastAddress

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

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

インスタンスから渡された aAddress は、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 インターフェース識別子(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 で入手可能なソースコードに基づいています。 詳細またはドキュメントへの投稿については、リソースをご覧ください。