IPv6
此模块包含用于控制 IPv6 通信的函数。
总结
枚举 |
|
---|---|
anonymous enum{
|
枚举 IPv6 地址来源。 |
anonymous enum{
|
枚举 ECN 状态,在 IP 标头中表示。 |
anonymous enum{
|
枚举 互联网协议编号。 |
类型定义符 |
|
---|---|
otIp6Address
|
typedefstruct otIp6Address
此结构代表一个 IPv6 地址。 |
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)
|
typedefvoid(*
添加或移除内部 IPv6 地址时,系统会调用此函数指针。 |
otIp6AddressComponents
|
typedefstruct otIp6AddressComponents
此结构表示 IPv6 地址的组成部分。 |
otIp6AddressInfo
|
typedefstruct otIp6AddressInfo
|
otIp6InterfaceIdentifier
|
typedefstruct otIp6InterfaceIdentifier
此结构表示 IPv6 地址的接口标识符。 |
otIp6NetworkPrefix
|
typedefstruct otIp6NetworkPrefix
此结构表示 IPv6 地址的网络前缀(地址最重要的 64 位)。 |
otIp6Prefix
|
typedefstruct otIp6Prefix
此结构表示 IPv6 前缀。 |
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
当收到 IPv6 数据报时,系统会调用此函数指针。 |
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)
|
typedefvoid(*
系统会以 otIp6RegisterMulticastListeners 的结果调用此函数指针。 |
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)
|
typedefbool(*
此函数指针允许用户过滤前缀,而不允许添加基于前缀的 SLAAC 地址。 |
otMessageInfo
|
typedefstruct otMessageInfo
此结构表示本地和对等 IPv6 套接字地址。 |
otNetifAddress
|
typedefstruct otNetifAddress
此结构表示一个 IPv6 网络接口单播地址。 |
otNetifMulticastAddress
|
typedefstruct otNetifMulticastAddress
此结构表示 IPv6 网络接口多播地址。 |
otSockAddr
|
typedefstruct otSockAddr
此结构表示 IPv6 套接字地址。 |
变量 |
|
---|---|
OT_TOOL_PACKED_END
|
函数 |
|
---|---|
otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
|
向 Thread 接口添加网络接口地址。
|
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
|
此函数将端口添加到允许的不安全的端口列表中。
|
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
|
此函数可将简单易懂的 IPv6 地址字符串转换为二进制表示形式。
|
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
此函数可将给定的 IPv6 地址转换为人类可读的字符串。
|
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
|
bool
测试两个 IPv6 前缀是否相同。
|
otIp6GetMulticastAddresses(otInstance *aInstance)
|
const otNetifMulticastAddress *
获取订阅 Thread 接口的 IPv6 多播地址列表。
|
otIp6GetUnicastAddresses(otInstance *aInstance)
|
const otNetifAddress *
获取分配给线程接口的 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 地址的前缀匹配长度(位)。
|
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)
|
此函数通过线程接口发送 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 接口。
|
结构体 |
|
---|---|
otIp6Address |
此结构代表一个 IPv6 地址。 |
otIp6AddressComponents |
此结构表示 IPv6 地址的组成部分。 |
otIp6AddressInfo |
此结构表示 IPv6 地址信息。 |
otIp6InterfaceIdentifier |
此结构表示 IPv6 地址的接口标识符。 |
otIp6NetworkPrefix |
此结构表示 IPv6 地址的网络前缀(地址最重要的 64 位)。 |
otIp6Prefix |
此结构表示 IPv6 前缀。 |
otMessageInfo |
此结构表示本地和对等 IPv6 套接字地址。 |
otNetifAddress |
此结构表示一个 IPv6 网络接口单播地址。 |
otNetifMulticastAddress |
此结构表示 IPv6 网络接口多播地址。 |
otSockAddr |
此结构表示 IPv6 套接字地址。 |
联合 |
|
---|---|
otIp6InterfaceIdentifier:: |
枚举
匿名枚举
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
ECN 状态,在 IP 标头中表示。
属性 | |
---|---|
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 的 Fragment 标头。 |
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
|
用户数据报。 |
类型定义符
otIp6AddressCallback
void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)
添加或移除内部 IPv6 地址时,系统会调用此函数指针。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6AddressInfo
struct otIp6AddressInfo otIp6AddressInfo
otIp6InterfaceIdentifier
struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier
此结构表示 IPv6 地址的接口标识符。
otIp6ReceiveCallback
void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)
当收到 IPv6 数据报时,系统会调用此函数指针。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
otIp6RegisterMulticastListenersCallback
void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)
系统会以 otIp6RegisterMulticastListeners
的结果调用此函数指针。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
otIp6RegisterMulticastListeners
otIp6SlaacPrefixFilter
bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)
此函数指针允许用户过滤前缀,而不允许添加基于前缀的 SLAAC 地址。
otIp6SetSlaacPrefixFilter()
可用于设置过滤器处理程序。当 SLAAC 模块即将根据前缀添加 SLAAC 地址时,由 SLAAC 模块调用过滤器处理程序。其布尔值返回值决定了是否过滤(不添加)地址。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
变量
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。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otIp6AddUnsecurePort
otError otIp6AddUnsecurePort( otInstance *aInstance, uint16_t aPort )
此函数将端口添加到允许的不安全的端口列表中。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otIp6AddressFromString
otError otIp6AddressFromString( const char *aString, otIp6Address *aAddress )
此函数可将简单易懂的 IPv6 地址字符串转换为二进制表示形式。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6AddressToString
void otIp6AddressToString( const otIp6Address *aAddress, char *aBuffer, uint16_t aSize )
此函数可将给定的 IPv6 地址转换为人类可读的字符串。
IPv6 地址字符串的格式为 16 位十六进制值,以 ':' 分隔(即"%x:%x:%x:...:%x")。
如果生成的字符串不适合 aBuffer
(在其 aSize
个字符内),则该字符串将被截断,但输出的字符串始终以 null 结尾。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6ArePrefixesEqual
bool otIp6ArePrefixesEqual( const otIp6Prefix *aFirst, const otIp6Prefix *aSecond )
测试两个 IPv6 前缀是否相同。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6GetMulticastAddresses
const otNetifMulticastAddress * otIp6GetMulticastAddresses( otInstance *aInstance )
获取订阅 Thread 接口的 IPv6 多播地址列表。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向第一个网络接口多播地址的指针。
|
otIp6GetUnicastAddresses
const otNetifAddress * otIp6GetUnicastAddresses( otInstance *aInstance )
获取分配给线程接口的 IPv6 地址列表。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向第一个网络接口地址的指针。
|
otIp6GetUnsecurePorts
const uint16_t * otIp6GetUnsecurePorts( otInstance *aInstance, uint8_t *aNumEntries )
此函数会返回指向不安全的端口列表的指针。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
指向不安全端口列表的指针。
|
otIp6IsAddressEqual
bool otIp6IsAddressEqual( const otIp6Address *aFirst, const otIp6Address *aSecond )
测试两个 IPv6 地址是否相同。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6IsAddressUnspecified
bool otIp6IsAddressUnspecified( const otIp6Address *aAddress )
此函数可指明给定 IPv6 地址是否为未指定地址。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
OTT 服务 6 已启用
bool otIp6IsEnabled( otInstance *aInstance )
此函数指示 IPv6 接口是否处于启用状态。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6IsMulticastPromiscuousEnabled
bool otIp6IsMulticastPromiscuousEnabled( otInstance *aInstance )
检查线程线程上是否启用了多播混杂模式。
详细信息 | |||
---|---|---|---|
参数 |
|
otIp6SetMulticastPromiscuousEnabled
OTIp6IsReceiveFilterEnabled
bool otIp6IsReceiveFilterEnabled( otInstance *aInstance )
此函数指示通过 otIp6SetReceiveCallback() 中指定的回调在传送 IPv6 数据报时是否过滤掉了线程控制流量。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果线程控制流量被过滤掉,则为 TRUE,否则为 False。
|
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled
otIp6IsSlaacEnabled
bool otIp6IsSlaacEnabled( otInstance *aInstance )
此函数用于指示是否启用了 SLAAC 模块。
该函数需要启用构建时功能 OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
。
详细信息 | |||||
---|---|---|---|---|---|
返回值 |
|
o6 新消息
otMessage * otIp6NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
分配用于发送 IPv6 消息的新消息缓冲区。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
指向消息缓冲区的指针;如果没有消息缓冲区可用或参数无效,则为 NULL。
|
otMessageFree
otIp6NewMessageFromBuffer
otMessage * otIp6NewMessageFromBuffer( otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings )
分配一个新消息缓冲区,并将 IPv6 数据报写入消息缓冲区,以发送 IPv6 消息。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
指向消息或 NULL 的指针(如果 IPv6 标头格式不正确或消息缓冲区不足)。
|
otMessageFree
otIp6PrefixMatch
uint8_t otIp6PrefixMatch( const otIp6Address *aFirst, const otIp6Address *aSecond )
此函数返回两个 IPv6 地址的前缀匹配长度(位)。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
前缀匹配长度(以位为单位)。
|
otIp6PrefixToString
void otIp6PrefixToString( const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize )
此函数可将给定的 IPv6 前缀转换为人类可读的字符串。
IPv6 地址字符串的格式为“%x:%x:%x:...[::]/plen"”。
如果生成的字符串不适合 aBuffer
(在其 aSize
个字符内),则该字符串将被截断,但输出的字符串始终以 null 结尾。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6 协议字符串
const char * otIp6ProtoToString( uint8_t aIpProto )
此函数可将指定的 IP 协议编号转换为简单易懂的字符串。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
一个表示
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_ENABLE
和 OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
时才可用)
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|
otIp6RegisterMulticastListenersCallback
otIp6RemoveAllUnsecurePorts
void otIp6RemoveAllUnsecurePorts( otInstance *aInstance )
此函数会从允许的不安全的端口列表中移除所有端口。
详细信息 | |||
---|---|---|---|
参数 |
|
otIp6RemoveUnicastAddress
otError otIp6RemoveUnicastAddress( otInstance *aInstance, const otIp6Address *aAddress )
从线程接口中移除网络接口地址。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otIp6RemoveUnsecurePort
otError otIp6RemoveUnsecurePort( otInstance *aInstance, uint16_t aPort )
此函数从允许的不安全端口列表中移除端口。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otIp6SelectSourceAddress
otError otIp6SelectSourceAddress( otInstance *aInstance, otMessageInfo *aMessageInfo )
此函数用于执行 OpenThread 源地址选择。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
o6 发送
otError otIp6Send( otInstance *aInstance, otMessage *aMessage )
此函数通过线程接口发送 IPv6 数据报。
来电者在拨打电话时转让 aMessage
的所有权。OpenThread 会在处理完成后(包括返回 OT_ERROR_NONE
以外的值时)释放 aMessage
。
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|
otIp6SetAddressCallback
void otIp6SetAddressCallback( otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext )
此函数注册一个回调来通知内部 IPv6 地址更改。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6SetEnabled
otError otIp6SetEnabled( otInstance *aInstance, bool aEnabled )
此函数用于启动/向下 IPv6 接口。
调用此函数可启用/停用 IPv6 通信。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6SetMeshLocalIid
otError otIp6SetMeshLocalIid( otInstance *aInstance, const otIp6InterfaceIdentifier *aIid )
此函数用于设置网格本地 IID(用于测试)。
仅在 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
已启用的情况下可用。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6SetMulticastPromiscuousEnabled
void otIp6SetMulticastPromiscuousEnabled( otInstance *aInstance, bool aEnabled )
在 Thread 接口上启用多播混杂模式。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
otIp6IsMulticastPromiscuousEnabled
otIp6SetReceiveCallback
void otIp6SetReceiveCallback( otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext )
此函数注册一个回调,以提供收到的 IPv6 数据报。
默认情况下,此回调不会传递线程控制流量。请参阅 otIp6SetReceiveFilterEnabled() 以更改线程控制流量过滤器设置。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled
otIp6SetReceiveFilterEnabled
void otIp6SetReceiveFilterEnabled( otInstance *aInstance, bool aEnabled )
此函数设置在通过 otIp6SetReceiveCallback() 中指定的回调提供 IPv6 数据报时,是否过滤掉线程控制流量。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled
otIp6SetSlaacEnabled
void otIp6SetSlaacEnabled( otInstance *aInstance, bool aEnabled )
此函数用于启用/停用 SLAAC 模块。
该函数需要启用构建时功能 OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
。
启用 SLAAC 模块后,SLAAC 地址(基于网络数据中的网络前缀)会添加到接口中。停用 SLAAC 模块后,系统会移除之前添加的所有 SLAAC 地址。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
otIp6SetSlaacPrefixFilter
void otIp6SetSlaacPrefixFilter( otInstance *aInstance, otIp6SlaacPrefixFilter aFilter )
此函数用于设置 SLAAC 模块过滤器处理程序。
该函数需要启用构建时功能 OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
。
当 SLAAC 模块即将根据前缀添加 SLAAC 地址以决定是否添加地址时,由 SLAAC 模块调用过滤器处理程序。
NULL 过滤器处理程序会停用过滤功能,并允许添加所有 SLAAC 地址。
如果未调用此函数,SLAAC 模块使用的默认过滤条件将为 NULL(停用过滤)。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
otIp6SockAddrToString
void otIp6SockAddrToString( const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize )
此函数可将给定的 IPv6 套接字地址转换为人类可读的字符串。
IPv6 套接字地址字符串的格式为 "[
]:
是以十进制数字表示的端口号(例如,"[%x:%x:...:%x]:%u")
如果生成的字符串不适合 aBuffer
(在其 aSize
个字符内),则该字符串将被截断,但输出的字符串始终以 null 结尾。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6SubscriptionMulticastAddress
otError otIp6SubscribeMulticastAddress( otInstance *aInstance, const otIp6Address *aAddress )
为 Thread 接口订阅网络接口多播地址。
线程实例将复制传入的实例 aAddress
。Thread 接口仅支持固定数量的外部添加多播地址。请参阅 OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
otIp6UnsubscribeMulticastAddress
otError otIp6UnsubscribeMulticastAddress( otInstance *aInstance, const otIp6Address *aAddress )
为网络接口多播地址退订 Thread 接口。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
宏
OT_IP6_地址_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 上的源代码。 如需了解详情或为我们的文档做贡献,请参阅资源。