Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

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地址來源。

類型定義

otIp6Address類型定義
此結構表示一個IPv6地址。
otIp6AddressCallback )(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)類型定義
void(*
添加或刪除內部IPv6地址時,將調用此函數指針。
otIp6AddressComponents類型定義
此結構表示IPv6地址的組成部分。
otIp6AddressInfo類型定義
otIp6InterfaceIdentifier類型定義
此結構表示IPv6地址的接口標識符。
otIp6NetworkPrefix類型定義
此結構表示IPv6地址的網絡前綴(地址的最高有效64位)。
otIp6Prefix類型定義
此結構表示IPv6前綴。
otIp6ReceiveCallback )(otMessage *aMessage, void *aContext)類型定義
void(*
收到IPv6數據報時,將調用此函數指針。
otIp6RegisterMulticastListenersCallback )(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)類型定義
void(*
使用otIp6RegisterMulticastListeners結果調用此函數指針。
otIp6SlaacPrefixFilter )(otInstance *aInstance, const otIp6Prefix *aPrefix)類型定義
bool(*
該功能指針允許用戶過濾前綴,並且不允許添加基於前綴的SLAAC地址。
otMessageInfo類型定義
此結構表示本地和對等IPv6套接字地址。
otNetifAddress類型定義
此結構表示IPv6網絡接口單播地址。
otNetifMulticastAddress類型定義
此結構表示IPv6網絡接口多播地址。
otSockAddr類型定義
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地址字符串轉換為二進製表示形式。
otIp6GetMulticastAddresses ( otInstance *aInstance)
獲取預訂到Thread接口的IPv6多播地址的列表。
otIp6GetUnicastAddresses ( otInstance *aInstance)
獲取分配給Thread接口的IPv6地址的列表。
otIp6GetUnsecurePorts ( otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
此函數返回一個指向不安全端口列表的指針。
otIp6IsAddressEqual (const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
測試兩個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
此函數返回兩個IPv6地址的前綴匹配長度(位)。
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接口。
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模塊過濾器處理程序。
otIp6SubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
將線程接口訂閱到網絡接口多播地址。
otIp6UnsubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress)
取消訂閱線程接口到網絡接口多播地址。

結構

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等)

類型定義

otIp6Address

struct otIp6Address otIp6Address

此結構表示一個IPv6地址。

otIp6AddressCallback

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

添加或刪除內部IPv6地址時,將調用此函數指針。

細節
參量
[in] aAddressInfo
指向IPv6地址信息的指針。
[in] aIsAdded
如果添加了aAddressaAddress TRUE,如果刪除了aAddressaAddress 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
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時,指向失敗的Ip6地址的指針。
[in] aFailedAddressNum
aError為OT_ERROR_NONE時,失敗的Ip6地址的數量。
也可以看看:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

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

該功能指針允許用戶過濾前綴,並且不允許添加基於前綴的SLAAC地址。

otIp6SetSlaacPrefixFilter()可用於設置過濾器處理程序。當過濾器處理程序要基於前綴添加SLAAC地址時,它將由SLAAC模塊調用。其布爾返回值確定是否過濾(未添加)地址。

細節
參量
[in] aInstacne
指向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
解析字符串失敗。

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
)

測試兩個IPv6地址是否相同。

細節
參量
[in] aFirst
指向要比較的第一個IPv6地址的指針。
[in] aSecond
指向要比較的第二個IPv6地址的指針。
返回值
TRUE
這兩個IPv6地址相同。
FALSE
這兩個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
)

此函數返回兩個IPv6地址的前綴匹配長度(位)。

細節
參量
[in] aFirst
指向第一個IPv6地址的指針。
[in] aSecond
指向第二個IPv6地址的指針。
退貨
前綴匹配長度(以位為單位)。

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, aAddresses 0)。
[in] aTimeout
指向要包含在MLR.req中的超時值(以秒為單位)的指針。超時值為0將刪除相應的多播偵聽器。如果為NULL,則默認情況下MLR.req將沒有超時Tlv。
[in] aCallback
指向回調函數的指針。
[in] aContext
指向用戶上下文的指針。
返回值
OT_ERROR_NONE
已成功發送MLR.req。該aCallback將被稱為如果此方法返回OT_ERROR_NONE。
OT_ERROR_BUSY
如果先前的註冊正在進行中。
OT_ERROR_INVALID_ARGS
如果一個或多個參數無效。
OT_ERROR_INVALID_STATE
如果設備未處於有效狀態以發送MLR.req(例如,未啟動Commissioner,未找到Primary Backbone Router)。
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

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所有權。處理完成後,包括返回OT_ERROR_NONE以外的值時,OpenThread將釋放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
如果為TRUE,則啟用IPv6;否則為FALSE。
返回值
OT_ERROR_NONE
成功啟動/關閉IPv6接口。
OT_ERROR_INVALID_STATE
由於設備在原始鏈接模式下運行,因此IPv6接口不可用(僅在啟用OPENTHREAD_CONFIG_LINK_RAW_ENABLE功能時適用)。

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地址以決定是否應添加該地址時,將由SLAAC模塊調用過濾處理程序。

NULL過濾器處理程序將禁用過濾,並允許添加所有SLAAC地址。

如果未調用此函數,則SLAAC模塊使用的默認過濾器將為NULL(禁用過濾)。

細節
參量
[in] aInstance
指向OpenThread實例的指針。
[in] aFilter
指向SLAAC前綴過濾器處理程序的指針,或者為NULL以禁用過濾。

otIp6SubscribeMulticastAddress

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

將線程接口訂閱到網絡接口多播地址。

傳入的實例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_INVALID_STATE
網絡接口未啟動。
OT_ERROR_NO_BUFS
網絡接口已經在存儲最大允許的外部多播地址。

otIp6UnsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  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地址。

巨集

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

IPv6地址的大小(字節)

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

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前綴的大小(字節)