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 Echo 回覆模式。
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 訊息類型。

Typedefs

otIcmp6Code typedef
ICMPv6 訊息代碼。
otIcmp6EchoMode typedef
ICMPv6 Echo 回覆模式。
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 訊息類型。

Variables

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

已超出片段重組時間。

otIcmp6EchoMode

 otIcmp6EchoMode

ICMPv6 Echo 回覆模式。

屬性
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

已超過時間。

Typedefs

otIcmp6Code

enum otIcmp6Code otIcmp6Code

ICMPv6 訊息代碼。

otIcmp6EchoMode

enum otIcmp6EchoMode otIcmp6EchoMode

ICMPv6 Echo 回覆模式。

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 訊息類型。

Variables

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
這個 ID 可協助比對 Echo 回覆至這個 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 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源