ICMPv6

此模块包含控制 ICMPv6 通信的函数。

摘要

枚举

otIcmp6Code{
  OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE = 0,
  OT_ICMP6_CODE_FRAGM_REAS_TIME_EX = 1
}
枚举
ICMPv6 消息代码。
otIcmp6EchoMode{
  OT_ICMP6_ECHO_HANDLER_DISABLED = 0,
  OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY = 1,
  OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY = 2,
  OT_ICMP6_ECHO_HANDLER_ALL = 3
}
枚举
ICMPv6 回声回复模式。
otIcmp6Type{
  OT_ICMP6_TYPE_DST_UNREACH = 1,
  OT_ICMP6_TYPE_PACKET_TO_BIG = 2,
  OT_ICMP6_TYPE_TIME_EXCEEDED = 3,
  OT_ICMP6_TYPE_PARAMETER_PROBLEM = 4,
  OT_ICMP6_TYPE_ECHO_REQUEST = 128,
  OT_ICMP6_TYPE_ECHO_REPLY = 129,
  OT_ICMP6_TYPE_ROUTER_SOLICIT = 133,
  OT_ICMP6_TYPE_ROUTER_ADVERT = 134,
  OT_ICMP6_TYPE_NEIGHBOR_SOLICIT = 135,
  OT_ICMP6_TYPE_NEIGHBOR_ADVERT = 136
}
枚举
ICMPv6 消息类型。

类型定义符

otIcmp6Code typedef
ICMPv6 消息代码。
otIcmp6EchoMode typedef
ICMPv6 回声回复模式。
otIcmp6Handler typedef
实现 ICMPv6 消息处理程序。
otIcmp6Header typedef
struct otIcmp6Header
表示 ICMPv6 标头。
otIcmp6ReceiveCallback)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader) typedef
void(*
此回调允许 OpenThread 通知应用已收到 ICMPv6 消息。
otIcmp6Type typedef
ICMPv6 消息类型。

变量

OT_TOOL_PACKED_END

函数

otIcmp6GetEchoMode(otInstance *aInstance)
指明是否已启用 ICMPv6 Echo 处理。
otIcmp6RegisterHandler(otInstance *aInstance, otIcmp6Handler *aHandler)
注册处理程序以提供收到的 ICMPv6 消息。
otIcmp6SendEchoRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, uint16_t aIdentifier)
通过 Thread 接口发送 ICMPv6 Echo 请求。
otIcmp6SetEchoMode(otInstance *aInstance, otIcmp6EchoMode aMode)
void
设置是否启用 ICMPv6 Echo 处理。

结构体

otIcmp6Handler

实现 ICMPv6 消息处理程序。

otIcmp6Header

表示 ICMPv6 标头。

联合体

otIcmp6Header::OT_TOOL_PACKED_FIELD

枚举

otIcmp6Code

 otIcmp6Code

ICMPv6 消息代码。

属性
OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE

无法到达目的地 - 没有路线。

OT_ICMP6_CODE_FRAGM_REAS_TIME_EX

已超出 fragment 重新组装时间。

otIcmp6EchoMode

 otIcmp6EchoMode

ICMPv6 回声回复模式。

属性
OT_ICMP6_ECHO_HANDLER_ALL

为单播和多播请求启用了 ICMPv6 Echo 处理。

OT_ICMP6_ECHO_HANDLER_DISABLED

已停用 ICMPv6 Echo 处理。

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

仅为多播请求启用了 ICMPv6 Echo 处理。

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

仅为单播请求启用了 ICMPv6 Echo 处理。

otIcmp6Type

 otIcmp6Type

ICMPv6 消息类型。

属性
OT_ICMP6_TYPE_DST_UNREACH

无法访问目标页面。

OT_ICMP6_TYPE_ECHO_REPLY

回音回复。

OT_ICMP6_TYPE_ECHO_REQUEST

Echo 请求。

OT_ICMP6_TYPE_NEIGHBOR_ADVERT

邻居通告。

OT_ICMP6_TYPE_NEIGHBOR_SOLICIT

邻居请教。

OT_ICMP6_TYPE_PACKET_TO_BIG

数据包到大

OT_ICMP6_TYPE_PARAMETER_PROBLEM

参数问题。

OT_ICMP6_TYPE_ROUTER_ADVERT

路由器通告。

OT_ICMP6_TYPE_ROUTER_SOLICIT

路由器请求。

OT_ICMP6_TYPE_TIME_EXCEEDED

已超出时间。

类型定义符

otIcmp6Code

enum otIcmp6Code otIcmp6Code

ICMPv6 消息代码。

otIcmp6EchoMode

enum otIcmp6EchoMode otIcmp6EchoMode

ICMPv6 回声回复模式。

otIcmp6Handler

struct otIcmp6Handler otIcmp6Handler

实现 ICMPv6 消息处理程序。

otIcmp6Header

struct otIcmp6Header otIcmp6Header

表示 ICMPv6 标头。

otIcmp6ReceiveCallback

void(* otIcmp6ReceiveCallback)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader)

此回调允许 OpenThread 通知应用已收到 ICMPv6 消息。

具体说明
参数
[in] aContext
指向任意上下文信息的指针。
[in] aMessage
指向已接收消息的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aIcmpHeader
指向已接收的 ICMPv6 标头的指针。

otIcmp6Type

enum otIcmp6Type otIcmp6Type

ICMPv6 消息类型。

变量

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIcmp6Header OT_TOOL_PACKED_END

函数

otIcmp6GetEchoMode

otIcmp6EchoMode otIcmp6GetEchoMode(
  otInstance *aInstance
)

指明是否已启用 ICMPv6 Echo 处理。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ICMP6_ECHO_HANDLER_DISABLED
已停用 ICMPv6 Echo 处理。
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY
仅为单播请求启用 ICMPv6 Echo 处理
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY
仅为多播请求启用 ICMPv6 Echo 处理
OT_ICMP6_ECHO_HANDLER_ALL
为单播和多播请求启用 ICMPv6 Echo 处理

otIcmp6RegisterHandler

otError otIcmp6RegisterHandler(
  otInstance *aInstance,
  otIcmp6Handler *aHandler
)

注册处理程序以提供收到的 ICMPv6 消息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aHandler
指向处理程序的指针,该处理程序包含收到 ICMPv6 消息时调用的回调。

otIcmp6SendEchoRequest

otError otIcmp6SendEchoRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  uint16_t aIdentifier
)

通过 Thread 接口发送 ICMPv6 Echo 请求。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
指向包含 ICMPv6 载荷的消息缓冲区的指针。
[in] aMessageInfo
对与 aMessage 关联的消息信息的引用。
[in] aIdentifier
帮助将回声回复与此 Echo 请求进行匹配的标识符。可以为零。

otIcmp6SetEchoMode

void otIcmp6SetEchoMode(
  otInstance *aInstance,
  otIcmp6EchoMode aMode
)

设置是否启用 ICMPv6 Echo 处理。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMode
ICMPv6 Echo 处理模式。

OT_ICMP6_HEADER_DATA_SIZE

 OT_ICMP6_HEADER_DATA_SIZE 4

ICMPv6 标头的大小。

OT_ICMP6_ROUTER_ADVERT_MIN_SIZE

 OT_ICMP6_ROUTER_ADVERT_MIN_SIZE 16

无任何选项的路由器通告消息的大小。

资源

OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源