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,
  OT_ICMP6_TYPE_NEIGHBOR_SOLICIT = 135,
  OT_ICMP6_TYPE_NEIGHBOR_ADVERT = 136
}
enum
ประเภทข้อความ ICMPv6

Typedef

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 หรือไม่
otIcmp6RegisterHandler(otInstance *aInstance, otIcmp6Handler *aHandler)
ลงทะเบียนเครื่องจัดการเพื่อระบุข้อความ ICMPv6 ที่ได้รับ
otIcmp6SendEchoRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, uint16_t aIdentifier)
ส่งคำขอ Echo ICMPv6 ผ่านอินเทอร์เฟซเทรด
otIcmp6SetEchoMode(otInstance *aInstance, otIcmp6EchoMode aMode)
void
กำหนดว่าจะเปิดใช้การประมวลผลเสียงสะท้อน ICMPv6 หรือไม่

โครงสร้าง

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 สำหรับคำขอ Unicast และมัลติแคสต์

OT_ICMP6_ECHO_HANDLER_DISABLED

ปิดใช้การประมวลผลข้อมูลเสียงสะท้อน ICMPv6 แล้ว

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

การประมวลผลข้อมูลเสียงสะท้อน ICMPv6 เปิดใช้เฉพาะสำหรับคำขอมัลติแคสต์เท่านั้น

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

การประมวลผลข้อมูลเสียงสะท้อน ICMPv6 เปิดใช้เฉพาะสำหรับคำขอ Unicast เท่านั้น

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

เกินเวลา

Typedef

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 หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
OT_ICMP6_ECHO_HANDLER_DISABLED
ปิดใช้การประมวลผลข้อมูลเสียงสะท้อน ICMPv6
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY
เปิดใช้การประมวลผลข้อมูลเสียงสะท้อน ICMPv6 สำหรับคำขอ Unicast เท่านั้น
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY
เปิดใช้การประมวลผลข้อมูลเสียงสะท้อน ICMPv6 สำหรับคำขอมัลติแคสต์เท่านั้น
OT_ICMP6_ECHO_HANDLER_ALL
เปิดใช้การประมวลผลข้อมูลเสียงสะท้อน ICMPv6 สำหรับคำขอ Unicast และมัลติแคสต์

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
)

ส่งคำขอ Echo ICMPv6 ผ่านอินเทอร์เฟซเทรด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMessage
ตัวชี้ไปยังบัฟเฟอร์ข้อความที่มีเพย์โหลด ICMPv6
[in] aMessageInfo
ข้อมูลอ้างอิงข้อความที่เกี่ยวข้องกับ aMessage
[in] aIdentifier
ตัวระบุที่จะช่วยในการจับคู่เสียงสะท้อนต่อคําขอ Echo นี้ อาจเป็น 0

otIcmp6SetEchoMode

void otIcmp6SetEchoMode(
  otInstance *aInstance,
  otIcmp6EchoMode aMode
)

กำหนดว่าจะเปิดใช้การประมวลผลเสียงสะท้อน ICMPv6 หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMode
โหมดการประมวลผลเสียงสะท้อน ICMPv6

มาโคร

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

ขนาดของข้อความการโฆษณาเราเตอร์ที่ไม่มีตัวเลือกใดๆ

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล