ICMPv6

這個模組包含控管 ICMPv6 通訊的功能。

摘要

列舉

otIcmp6Code{
  OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE = 0,
  OT_ICMP6_CODE_FRAGM_REAS_TIME_EX = 1
}
enum
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
}
enum
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
}
enum
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 Request 要求。
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

片段重組時間已超出時間。

otIcmp6EchoMode

 otIcmp6EchoMode

ICMPv6 回音回覆模式。

屬性
OT_ICMP6_ECHO_HANDLER_ALL

已為廣播和多播要求啟用 ICMPv6 Echo 處理。

OT_ICMP6_ECHO_HANDLER_DISABLED

已停用 ICMPv6 回音處理作業。

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

ICMPv6 重複回應僅適用於多點播要求。

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

ICMPv6 回音處理僅適用於單點要求。

otIcmp6Type

 otIcmp6Type

ICMPv6 訊息類型。

屬性
OT_ICMP6_TYPE_DST_UNREACH

無法連上目的地。

OT_ICMP6_TYPE_ECHO_REPLY

重複回覆。

OT_ICMP6_TYPE_ECHO_REQUEST

Echo 要求。

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 回音處理作業。
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY
僅為單點要求啟用 ICMPv6 Echo Processing
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY
僅針對多播要求啟用 ICMPv6 回音處理
OT_ICMP6_ECHO_HANDLER_ALL
已為廣播和多點傳播要求啟用 ICMPv6 Echo Processing

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 Request 要求。

說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aMessage
指向包含 ICMPv6 酬載的訊息緩衝區。
[in] aMessageInfo
aMessage 相關聯的訊息資訊參照。
[in] aIdentifier
用於協助將 Echo 回覆與這則 Echo 要求比對的 ID。可能為零。

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 標頭的郵件專屬資料大小。

資源

OpenThread API 參照主題來自原始碼,位於 GitHub。 如需更多資訊或參閱我們的說明文件,請參閱資源