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
}
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 ステータス。
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
インターネット プロトコル番号。

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 アドレスが未指定のアドレスかどうかを示します。
otIp6IsEnabled(otInstance *aInstance)
bool
IPv6 インターフェースが稼働しているかどうかを示します。
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
スレッド インターフェースでマルチキャスト無作為モードが有効になっているかどうかを確認します。
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)
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

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 以外。

匿名の列挙型

 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 の次のヘッダーはありません。

OT_IP6_PROTO_ROUTING

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

OT_IP6_PROTO_TCP

伝送制御プロトコル。

OT_IP6_PROTO_UDP

ユーザーデータ グラム。

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

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

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 インターフェースによってコピーされます。スレッド インターフェースでは、一定数の外部に追加されたユニキャスト アドレスのみがサポートされます。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"

結果の文字列が aBuffer に収まらない場合(aSize 文字以内)、文字列は切り捨てられますが、出力文字列は常に 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 アドレスが未指定のアドレスかどうかを示します。

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

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

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

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」という形式になります。

結果の文字列が aBuffer に収まらない場合(aSize 文字以内)、文字列は切り捨てられますが、出力文字列は常に 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 は、処理が完了すると aMessage を解放します。OT_ERROR_NONE 以外の値が返される場合もあります。

詳細
パラメータ
[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 データグラムを配信するときにスレッド制御トラフィックを除外するかどうかを設定します。

詳細
パラメータ
[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 進数値(: で区切られて)と port は 10 進数形式のポート番号です(例: [%x:%x:...:%x]:%u)。

結果の文字列が aBuffer に収まらない場合(aSize 文字以内)、文字列は切り捨てられますが、出力文字列は常に 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 で入手可能なソースコードから始まります。詳細や Google のドキュメントへの貢献については、リソースをご覧ください。