IPv6
此模块包含用于控制 IPv6 通信的功能。
摘要
枚举 |
|
---|---|
anonymous enum{
|
枚举 互联网协议编号。 |
anonymous enum{
|
枚举 IPv6 地址来源。 |
anonymous enum{
|
枚举 ECN 状态,如 IP 标头中所示。 |
类型定义符 |
|
---|---|
otBorderRoutingCounters
|
typedefstruct otBorderRoutingCounters
表示通过边界路由转发的数据包的计数器。 |
otIp6Address
|
typedefstruct otIp6Address
表示 IPv6 地址。 |
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)
|
typedefvoid(*
添加或移除内部 IPv6 地址时,系统会调用指针。 |
otIp6AddressComponents
|
typedefstruct otIp6AddressComponents
表示 IPv6 地址的组成部分。 |
otIp6AddressInfo
|
typedefstruct otIp6AddressInfo
表示 IPv6 地址信息。 |
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 网络接口多播地址。 |
otPacketsAndBytes
|
typedefstruct otPacketsAndBytes
表示数据包和字节的计数器。 |
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 前缀是否相同。
|
otIp6GetBorderRoutingCounters(otInstance *aInstance)
|
const otBorderRoutingCounters *
获取边界路由计数器。
|
otIp6GetMulticastAddresses(otInstance *aInstance)
|
const otNetifMulticastAddress *
获取已订阅 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 *
返回指向不安全端口列表的指针。
|
otIp6HasUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
|
bool
指示是否已将单播 IPv6 地址分配给 Thread 接口。
|
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
|
bool
测试两个 IPv6 地址是否相同。
|
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
|
bool
指明给定的 IPv6 地址是否为“未指定的地址”。
|
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 消息。
|
otIp6PrefixFromString(const char *aString, otIp6Prefix *aPrefix)
|
将人类可读的 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)
|
从 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:: |
枚举
匿名枚举
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
|
用户数据报。 |
匿名枚举
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。 |
类型定义符
otIp6AddressCallback
void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)
添加或移除内部 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 地址时,它会调用过滤器处理程序。其布尔返回值决定了是否过滤(不添加)地址。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
变量
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END
函数
otIp6AddUnicastAddress
otError otIp6AddUnicastAddress( otInstance *aInstance, const otNetifAddress *aAddress )
向 Thread 接口添加网络接口地址。
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
字符内),该字符串将被截断,但输出的字符串始终以空字符结尾。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6ArePrefixesEqual
bool otIp6ArePrefixesEqual( const otIp6Prefix *aFirst, const otIp6Prefix *aSecond )
测试两个 IPv6 前缀是否相同。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6GetBorderRoutingCounters
const otBorderRoutingCounters * otIp6GetBorderRoutingCounters( otInstance *aInstance )
获取边界路由计数器。
必须启用 OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE
构建时功能。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向边界路由计数器的指针。
|
otIp6GetMulticastAddresses
const otNetifMulticastAddress * otIp6GetMulticastAddresses( otInstance *aInstance )
获取已订阅 Thread 接口的 IPv6 多播地址列表。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向第一个网络接口多播地址的指针。
|
otIp6GetPrefix
void otIp6GetPrefix( const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix )
从 aAddress
获取带 aLength
的前缀。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6GetUnicastAddresses
const otNetifAddress * otIp6GetUnicastAddresses( otInstance *aInstance )
获取分配给 Thread 接口的 IPv6 地址列表。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
指向第一个网络接口地址的指针。
|
otIp6GetUnsecurePorts
const uint16_t * otIp6GetUnsecurePorts( otInstance *aInstance, uint8_t *aNumEntries )
返回指向不安全端口列表的指针。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
指向不安全端口列表的指针。
|
otIp6HasUnicastAddress
bool otIp6HasUnicastAddress( otInstance *aInstance, const otIp6Address *aAddress )
指示是否已将单播 IPv6 地址分配给 Thread 接口。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6IsAddressEqual
bool otIp6IsAddressEqual( const otIp6Address *aFirst, const otIp6Address *aSecond )
测试两个 IPv6 地址是否相同。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6IsAddressUnspecified
bool otIp6IsAddressUnspecified( const otIp6Address *aAddress )
指明给定的 IPv6 地址是否为“未指定的地址”。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6IsEnabled
bool otIp6IsEnabled( otInstance *aInstance )
指示 IPv6 接口是否已启动。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6IsMulticastPromiscuousEnabled
bool otIp6IsMulticastPromiscuousEnabled( otInstance *aInstance )
检查 Thread 接口上是否启用了多播混音模式。
具体说明 | |||
---|---|---|---|
参数 |
|
otIp6SetMulticastPromiscuousEnabled
otIp6IsReceiveFilterEnabled
bool otIp6IsReceiveFilterEnabled( otInstance *aInstance )
指示在通过 otIp6SetReceiveCallback() 中指定的回调传送 IPv6 数据报时,系统是否会滤除线程控制流量。
具体说明 | |||
---|---|---|---|
参数 |
|
||
返回值 |
如果过滤掉线程控制流量,则为 TRUE,否则为 FALSE。
|
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled
otIp6IsSlaacEnabled
bool otIp6IsSlaacEnabled( otInstance *aInstance )
指明 SLAAC 模块是否已启用。
必须启用 OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
构建时功能。
具体说明 | |||||
---|---|---|---|---|---|
返回值 |
|
otIp6NewMessage
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 消息。
具体说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
指向消息的指针,如果 IPv6 标头格式错误或消息缓冲区不足,则为 NULL。
|
otMessageFree
otIp6PrefixFromString
otError otIp6PrefixFromString( const char *aString, otIp6Prefix *aPrefix )
将人类可读的 IPv6 前缀字符串转换为二进制表示法。
aString
参数应为格式为“
是 IPv6 地址,
是前缀长度。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
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
字符内),该字符串将被截断,但输出的字符串始终以空字符结尾。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6ProtoToString
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 )
从 Thread 接口中移除网络接口地址。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otIp6RemoveUnsecurePort
otError otIp6RemoveUnsecurePort( otInstance *aInstance, uint16_t aPort )
从允许的不安全端口列表中移除端口。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
otIp6ResetBorderRoutingCounters
void otIp6ResetBorderRoutingCounters( otInstance *aInstance )
重置边界路由计数器。
具体说明 | |||
---|---|---|---|
参数 |
|
otIp6SelectSourceAddress
otError otIp6SelectSourceAddress( otInstance *aInstance, otMessageInfo *aMessageInfo )
执行 OpenThread 源地址选择。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
otIp6Send
otError otIp6Send( otInstance *aInstance, otMessage *aMessage )
通过 Thread 接口发送 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 地址来确定是否应添加地址时,它会调用过滤器处理程序。
NULL 过滤器处理程序会停用过滤,并允许添加所有 SLAAC 地址。
如果未调用此函数,则 SLAAC 模块使用的默认过滤器将为 NULL(过滤功能已停用)。
具体说明 | |||||
---|---|---|---|---|---|
参数 |
|
otIp6SockAddrToString
void otIp6SockAddrToString( const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize )
将指定的 IPv6 套接字地址转换为人类可读的字符串。
IPv6 套接字地址字符串的格式为 [address
]:port
,其中 address
显示为由 :
分隔的 16 个十六进制值,port
是十进制格式的端口号,例如“[%x:%x:...:%x]:%u”。
如果生成的字符串不适合 aBuffer
(在其 aSize
字符内),该字符串将被截断,但输出的字符串始终以空字符结尾。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
otIp6SubscribeMulticastAddress
otError otIp6SubscribeMulticastAddress( otInstance *aInstance, const otIp6Address *aAddress )
为 Thread 接口订阅网络接口多播地址。
Thread 接口会复制传入的实例 aAddress
。Thread 接口仅支持固定数量的外部添加的多播地址。请参阅OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS
。
具体说明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
otIp6UnsubscribeMulticastAddress
otError otIp6UnsubscribeMulticastAddress( otInstance *aInstance, const otIp6Address *aAddress )
为 Thread 接口退订网络接口多播地址。
具体说明 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
|
宏
OT_IP6_ADDRESS_SIZE
OT_IP6_ADDRESS_SIZE 16
IPv6 地址的大小(字节)
OT_IP6_ADDRESS_STRING_SIZE
OT_IP6_ADDRESS_STRING_SIZE 40
建议的 IPv6 地址字符串表示大小。
OT_IP6_HEADER_PROTO_OFFSET
OT_IP6_HEADER_PROTO_OFFSET 6
IPv6 标头中 proto 字段的偏移量(字节)
OT_IP6_HEADER_SIZE
OT_IP6_HEADER_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 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源。