IPv6

โมดูลนี้ประกอบด้วยฟังก์ชันที่ควบคุมการสื่อสารแบบ IPv6

สรุป

การแจกแจง

anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
หมายเลขโปรโตคอลอินเทอร์เน็ต
anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
ต้นทางของที่อยู่ IPv6
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
สถานะ ECN ที่แสดงในส่วนหัว IP

Typedef

otBorderRoutingCounters typedef
แสดงตัวนับของแพ็กเก็ตที่ส่งต่อผ่าน Border Routing
otIp6Address typedef
struct otIp6Address
แสดงที่อยู่ IPv6
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
ระบบจะเรียกใช้ตัวชี้เมื่อมีการเพิ่มหรือนำที่อยู่ IPv6 ภายในออก
otIp6AddressComponents typedef
แสดงองค์ประกอบของที่อยู่ IPv6
otIp6AddressInfo typedef
แสดงข้อมูลที่อยู่ IPv6
otIp6InterfaceIdentifier typedef
แสดงตัวระบุอินเทอร์เฟซของที่อยู่ IPv6
otIp6NetworkPrefix typedef
แสดงคำนำหน้าเครือข่ายของที่อยู่ IPv6 (ตัวเลข 64 บิตที่สำคัญที่สุดของที่อยู่)
otIp6Prefix typedef
struct otIp6Prefix
แสดงคำนำหน้า IPv6
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
ระบบจะเรียก Pointer เมื่อได้รับ IPv6 Datagram
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
ระบบจะเรียกใช้ตัวชี้พร้อมด้วยผลลัพธ์ของ otIp6RegisterMulticastListeners
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
ตัวชี้ช่วยให้ผู้ใช้กรองคำนำหน้าและไม่อนุญาตให้ใช้ที่อยู่ SLAAC ที่อิงตามคำนำหน้าที่จะเพิ่ม
otMessageInfo typedef
struct otMessageInfo
แสดงที่อยู่ซ็อกเก็ต IPv6 ภายในและเพียร์
otNetifAddress typedef
แสดงที่อยู่ยูนิแคสต์อินเทอร์เฟซเครือข่าย IPv6
otNetifMulticastAddress typedef
แสดงที่อยู่มัลติแคสต์ในอินเทอร์เฟซเครือข่าย IPv6
otPacketsAndBytes typedef
แสดงตัวนับสำหรับแพ็กเก็ตและไบต์
otSockAddr typedef
struct otSockAddr
แสดงที่อยู่ซ็อกเก็ต IPv6

ตัวแปร

OT_TOOL_PACKED_END

ฟังก์ชัน

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
เพิ่มที่อยู่อินเทอร์เฟซเครือข่ายลงในอินเทอร์เฟซเทรด
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)
รับตัวนับการกำหนดเส้นทางเส้นขอบ
otIp6GetMulticastAddresses(otInstance *aInstance)
รับรายการที่อยู่แบบมัลติแคสต์แบบ IPv6 ที่สมัครใช้บริการอินเทอร์เฟซเทรด
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
รับคำนำหน้าที่มี aLength จาก aAddress
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
รับรายการที่อยู่ IPv6 ที่กําหนดให้กับอินเทอร์เฟซเทรด
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
แสดงผลตัวชี้ไปยังรายการพอร์ตที่ไม่ปลอดภัย
otIp6HasUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
bool
ระบุว่ามีการกำหนดที่อยู่ IPv6 แบบยูนิแคสต์ไปยังอินเทอร์เฟซเทรดหรือไม่
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
ทดสอบว่าที่อยู่ IPv6 ซ้ำกัน 2 รายการหรือไม่
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
ระบุว่าที่อยู่ IPv6 ที่ระบุเป็นที่อยู่ที่ไม่ระบุหรือไม่
otIp6IsEnabled(otInstance *aInstance)
bool
ระบุว่าอินเทอร์เฟซ IPv6 ใช้งานได้หรือไม่
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
ตรวจสอบว่ามีการเปิดใช้โหมด Promiscuous มัลติแคสต์ ในอินเทอร์เฟซเทรดหรือไม่
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
ระบุว่ามีการกรองการรับส่งข้อมูลแบบควบคุมเทรดออกเมื่อส่ง Datagram ของ IPv6 ผ่านโค้ดเรียกกลับที่ระบุใน otIp6SetReceiveCallback() หรือไม่
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 Datagram ลงในบัฟเฟอร์ข้อความสำหรับการส่งข้อความ IPv6
otIp6PrefixFromString(const char *aString, otIp6Prefix *aPrefix)
แปลงสตริงคำนำหน้า IPv6 ที่มนุษย์อ่านได้เป็นค่าแทนแบบไบนารี
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
แสดงผลความยาวการจับคู่คำนำหน้า (บิต) สำหรับที่อยู่ IPv6 จำนวน 2 รายการ
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)
ลงทะเบียน Listener มัลติแคสต์ไปยังเราเตอร์ Backbone หลัก
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
นำพอร์ตทั้งหมดออกจากรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาต
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
นำที่อยู่อินเทอร์เฟซเครือข่ายออกจากอินเทอร์เฟซเทรด
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
นำพอร์ตออกจากรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาต
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
รีเซ็ตตัวนับการกำหนดเส้นทางชายแดน
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
ดำเนินการเลือกที่อยู่ต้นทางของ OpenThread
otIp6Send(otInstance *aInstance, otMessage *aMessage)
ส่ง IPv6 Datagram ผ่านอินเทอร์เฟซเทรด
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
ลงทะเบียนโค้ดเรียกกลับเพื่อแจ้งการเปลี่ยนแปลงที่อยู่ IPv6 ภายใน
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
นำอินเทอร์เฟซ IPv6 ขึ้นหรือลง
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
ตั้งค่า Mesh Local IID (เพื่อการทดสอบ)
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
เปิดหรือปิดใช้โหมด Multicast Promiscuous ในอินเทอร์เฟซเทรด
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
ลงทะเบียนโค้ดเรียกกลับเพื่อมอบ IPv6 Datagram ที่ได้รับ
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
ตั้งค่าว่าจะกรองการรับส่งข้อมูลแบบควบคุมเทรดออกเมื่อส่ง Datagram ของ IPv6 ผ่านโค้ดเรียกกลับที่ระบุใน otIp6SetReceiveCallback() หรือไม่
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)
สมัครรับข้อมูลอินเทอร์เฟซเทรดกับที่อยู่มัลติแคสต์อินเทอร์เฟซเครือข่าย
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
ยกเลิกการสมัครใช้อินเทอร์เฟซเทรดไปยังที่อยู่ Multicast ของอินเทอร์เฟซเครือข่าย

โครงสร้าง

otBorderRoutingCounters

แสดงตัวนับของแพ็กเก็ตที่ส่งต่อผ่าน Border Routing

otIp6Address

แสดงที่อยู่ IPv6

otIp6AddressComponents

แสดงองค์ประกอบของที่อยู่ IPv6

otIp6AddressInfo

แสดงข้อมูลที่อยู่ IPv6

otIp6InterfaceIdentifier

แสดงตัวระบุอินเทอร์เฟซของที่อยู่ IPv6

otIp6NetworkPrefix

แสดงคำนำหน้าเครือข่ายของที่อยู่ IPv6 (ตัวเลข 64 บิตที่สำคัญที่สุดของที่อยู่)

otIp6Prefix

แสดงคำนำหน้า IPv6

otMessageInfo

แสดงที่อยู่ซ็อกเก็ต IPv6 ภายในและเพียร์

otNetifAddress

แสดงที่อยู่ยูนิแคสต์อินเทอร์เฟซเครือข่าย IPv6

otNetifMulticastAddress

แสดงที่อยู่มัลติแคสต์ในอินเทอร์เฟซเครือข่าย IPv6

otPacketsAndBytes

แสดงตัวนับสำหรับแพ็กเก็ตและไบต์

otSockAddr

แสดงที่อยู่ซ็อกเก็ต IPv6

สหภาพ

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

การแจกแจง

enum ที่ไม่ระบุตัวตน

 anonymous enum

หมายเลขโปรโตคอลอินเทอร์เน็ต

พร็อพเพอร์ตี้
OT_IP6_PROTO_DST_OPTS

ตัวเลือกปลายทางสำหรับ IPv6

OT_IP6_PROTO_FRAGMENT

ส่วนหัวของส่วนย่อยสำหรับ IPv6

OT_IP6_PROTO_HOP_OPTS

ตัวเลือก IPv6 Hop-by-Hop

OT_IP6_PROTO_ICMP6

ICMP สำหรับ IPv6

OT_IP6_PROTO_IP6

การห่อหุ้ม IPv6

OT_IP6_PROTO_NONE

ไม่มีส่วนหัวถัดไปสำหรับ IPv6

OT_IP6_PROTO_ROUTING

ส่วนหัวของการกำหนดเส้นทางสำหรับ IPv6

OT_IP6_PROTO_TCP

โปรโตคอลควบคุมการส่งข้อมูล

OT_IP6_PROTO_UDP

User Datagram

enum ที่ไม่ระบุตัวตน

 anonymous enum

ต้นทางของที่อยู่ IPv6

พร็อพเพอร์ตี้
OT_ADDRESS_ORIGIN_DHCPV6

ที่อยู่ที่ DHCPv6 กำหนด

OT_ADDRESS_ORIGIN_MANUAL

ที่อยู่ที่กำหนดด้วยตนเอง

OT_ADDRESS_ORIGIN_SLAAC

ที่อยู่ที่ SLAAC กำหนด

OT_ADDRESS_ORIGIN_THREAD

ที่อยู่ที่กําหนดให้กับชุดข้อความ (ALOC, RLOC, MLEID เป็นต้น)

enum ที่ไม่ระบุตัวตน

 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

Typedef

otBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

แสดงตัวนับของแพ็กเก็ตที่ส่งต่อผ่าน Border Routing

otIp6Address

struct otIp6Address otIp6Address

แสดงที่อยู่ IPv6

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

ระบบจะเรียกใช้ตัวชี้เมื่อมีการเพิ่มหรือนำที่อยู่ IPv6 ภายในออก

รายละเอียด
พารามิเตอร์
[in] aAddressInfo
ตัวชี้ไปยังข้อมูลที่อยู่ IPv6
[in] aIsAdded
มีค่าจริงหากมีการเพิ่ม aAddress ไว้ จะเป็นเท็จ หากนำ aAddress ออก
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

แสดงองค์ประกอบของที่อยู่ IPv6

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

แสดงข้อมูลที่อยู่ IPv6

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

แสดงตัวระบุอินเทอร์เฟซของที่อยู่ IPv6

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

แสดงคำนำหน้าเครือข่ายของที่อยู่ IPv6 (ตัวเลข 64 บิตที่สำคัญที่สุดของที่อยู่)

otIp6Prefix

struct otIp6Prefix otIp6Prefix

แสดงคำนำหน้า IPv6

otIp6ReceiveCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

ระบบจะเรียก Pointer เมื่อได้รับ IPv6 Datagram

รายละเอียด
พารามิเตอร์
[in] aMessage
ตัวชี้ไปยังบัฟเฟอร์ข้อความที่มี IPv6 Datagram ที่ได้รับ ฟังก์ชันนี้โอนการเป็นเจ้าของ aMessage ให้กับผู้รับของโค้ดเรียกกลับ ผู้รับของโค้ดเรียกกลับควรปล่อยข้อความได้หลังจากประมวลผลแล้ว (ดู otMessageFree())
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

ระบบจะเรียกใช้ตัวชี้พร้อมด้วยผลลัพธ์ของ otIp6RegisterMulticastListeners

รายละเอียด
พารามิเตอร์
[in] aContext
ตัวชี้ไปยังบริบทของผู้ใช้
[in] aError
OT_ERROR_NONE เมื่อส่ง MLR.req และได้รับ MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT สำเร็จเมื่อรับ MLR.rsp, OT_ERROR_PARSE ไม่สำเร็จเมื่อแยกวิเคราะห์ MLR.rsp
[in] aMlrStatus
สถานะการลงทะเบียน Listener มัลติแคสต์เมื่อ aError เป็น OT_ERROR_NONE
[in] aFailedAddresses
ตัวชี้ไปยังที่อยู่ IPv6 ที่ล้มเหลวเมื่อ aError คือ OT_ERROR_NONE
[in] aFailedAddressNum
จำนวนที่อยู่ IPv6 ที่ล้มเหลวเมื่อ aError คือ OT_ERROR_NONE
โปรดดูข้อมูลเพิ่มเติมที่
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

ตัวชี้ช่วยให้ผู้ใช้กรองคำนำหน้าและไม่อนุญาตให้ใช้ที่อยู่ SLAAC ที่อิงตามคำนำหน้าที่จะเพิ่ม

otIp6SetSlaacPrefixFilter() ใช้เพื่อตั้งค่าเครื่องจัดการตัวกรองได้ โมดูล SLAAC จะเรียกใช้ตัวแฮนเดิลตัวกรองเมื่อกำลังจะเพิ่มที่อยู่ SLAAC ตามคำนำหน้า ค่าการแสดงผลแบบบูลีนจะกำหนดว่าที่อยู่จะถูกกรอง (ไม่ได้เพิ่ม) หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aPrefix
ตัวชี้ไปยังคำนำหน้าซึ่งที่อยู่ SLAAC กำลังจะเพิ่ม
แสดงผลค่า
TRUE
ระบุว่าที่อยู่ SLAAC ตามคำนำหน้าควรกรองและไม่เพิ่ม
FALSE
ระบุว่าควรเพิ่มที่อยู่ SLAAC ตามคำนำหน้า

otMessageInfo

struct otMessageInfo otMessageInfo

แสดงที่อยู่ซ็อกเก็ต IPv6 ภายในและเพียร์

otNetifAddress

struct otNetifAddress otNetifAddress

แสดงที่อยู่ยูนิแคสต์อินเทอร์เฟซเครือข่าย IPv6

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

แสดงที่อยู่มัลติแคสต์ในอินเทอร์เฟซเครือข่าย IPv6

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

แสดงตัวนับสำหรับแพ็กเก็ตและไบต์

otSockAddr

struct otSockAddr otSockAddr

แสดงที่อยู่ซ็อกเก็ต IPv6

ตัวแปร

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

ฟังก์ชัน

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

เพิ่มที่อยู่อินเทอร์เฟซเครือข่ายลงในอินเทอร์เฟซเทรด

อินเทอร์เฟซเทรดจะคัดลอกอินสแตนซ์ที่ส่งผ่าน aAddress อินเทอร์เฟซเทรดรองรับที่อยู่ Unicast ที่เพิ่มภายนอกได้ในจำนวนจำกัดเท่านั้น ดู OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aAddress
ตัวชี้ไปยังที่อยู่อินเทอร์เฟซเครือข่าย
แสดงผลค่า
OT_ERROR_NONE
เพิ่ม (หรืออัปเดต) ที่อยู่อินเทอร์เฟซเครือข่ายสำเร็จแล้ว
OT_ERROR_INVALID_ARGS
ที่อยู่ IP ที่ระบุโดย aAddress เป็นที่อยู่ภายใน
OT_ERROR_NO_BUFS
อินเทอร์เฟซเครือข่ายจัดเก็บที่อยู่ภายนอกถึงจำนวนสูงสุดที่อนุญาตแล้ว

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

เพิ่มพอร์ตไปยังรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาต

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aPort
ค่าของพอร์ต
แสดงผลค่า
OT_ERROR_NONE
เพิ่มพอร์ตไปยังรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาตเรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
พอร์ตไม่ถูกต้อง (ค่า 0 สงวนไว้สำหรับใช้ภายใน)
OT_ERROR_NO_BUFS
รายการพอร์ตที่ไม่ปลอดภัยเต็มแล้ว

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

แปลงสตริงที่อยู่ IPv6 ที่มนุษย์อ่านได้เป็นค่าแทนแบบไบนารี

รายละเอียด
พารามิเตอร์
[in] aString
ตัวชี้ไปยังสตริงที่สิ้นสุดค่า NULL
[out] aAddress
ตัวชี้ไปยังที่อยู่ IPv6
แสดงผลค่า
OT_ERROR_NONE
แยกวิเคราะห์ aString และอัปเดต aAddress เรียบร้อยแล้ว
OT_ERROR_PARSE
แยกวิเคราะห์ aString เป็นที่อยู่ IPv6 ไม่สำเร็จ

otIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

แปลงที่อยู่ IPv6 ที่ระบุเป็นสตริงที่มนุษย์อ่านได้

สตริงที่อยู่ IPv6 มีรูปแบบเป็นค่าฐานสิบหก 16 ค่า โดยคั่นด้วยเครื่องหมาย ':' (เช่น "%x:%x:%x:...:%x").

หากสตริงผลลัพธ์ไม่พอดีกับ aBuffer (ภายใน aSize อักขระ) ระบบจะตัดสตริงให้สั้นลง แต่สตริงที่ส่งออกจะเป็นค่าว่างเสมอ

รายละเอียด
พารามิเตอร์
[in] aAddress
ตัวชี้ไปยังที่อยู่ IPv6 (ต้องไม่ใช่ NULL)
[out] aBuffer
ตัวชี้ไปยังอาร์เรย์อักขระเพื่อแสดงสตริง (ต้องไม่ใช่ NULL)
[in] aSize
ขนาด aBuffer (ในหน่วยไบต์) แนะนำให้ใช้ OT_IP6_ADDRESS_STRING_SIZE

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

ทดสอบว่าคำนำหน้า IPv6 ทั้งสองเหมือนกันหรือไม่

รายละเอียด
พารามิเตอร์
[in] aFirst
ตัวชี้ไปยังคำนำหน้า IPv6 แรกเพื่อเปรียบเทียบ
[in] aSecond
ตัวชี้ไปยังคำนำหน้า IPv6 รายการที่ 2 เพื่อเปรียบเทียบ
แสดงผลค่า
TRUE
คำนำหน้า IPv6 ทั้งสองค่าเหมือนกัน
FALSE
คำนำหน้า IPv6 ทั้งสองค่าไม่เหมือนกัน

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

รับตัวนับการกำหนดเส้นทางเส้นขอบ

ต้องเปิดใช้ฟีเจอร์เวลาบิลด์ OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE รายการ

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังตัวนับการกำหนดเส้นทางชายแดน

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

รับรายการที่อยู่แบบมัลติแคสต์แบบ IPv6 ที่สมัครใช้บริการอินเทอร์เฟซเทรด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังที่อยู่มัลติแคสต์ในอินเทอร์เฟซเครือข่ายแรก

otIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

รับคำนำหน้าที่มี aLength จาก aAddress

รายละเอียด
พารามิเตอร์
[in] aAddress
ตัวชี้ไปยังที่อยู่ IPv6
[in] aLength
ความยาวของคำนำหน้าเป็นบิต
[out] aPrefix
ตัวชี้สำหรับเอาต์พุตคำนำหน้า IPv6

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

รับรายการที่อยู่ IPv6 ที่กําหนดให้กับอินเทอร์เฟซเทรด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังที่อยู่อินเทอร์เฟซเครือข่ายรายการแรก

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

แสดงผลตัวชี้ไปยังรายการพอร์ตที่ไม่ปลอดภัย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aNumEntries
จำนวนข้อมูลในรายการ
การส่งคืน
ตัวชี้ไปยังรายการพอร์ตที่ไม่ปลอดภัย

otIp6HasUnicastAddress

bool otIp6HasUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

ระบุว่ามีการกำหนดที่อยู่ IPv6 แบบยูนิแคสต์ไปยังอินเทอร์เฟซเทรดหรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aAddress
ตัวชี้ไปยังที่อยู่ Unicast
แสดงผลค่า
TRUE
หากกําหนด aAddress ให้กับอินเทอร์เฟซเทรด
FALSE
หากไม่ได้กำหนด aAddress ให้กับอินเทอร์เฟซเทรด

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

ทดสอบว่าที่อยู่ IPv6 ซ้ำกัน 2 รายการหรือไม่

รายละเอียด
พารามิเตอร์
[in] aFirst
ตัวชี้ไปยังที่อยู่ IPv6 แรกเพื่อเปรียบเทียบ
[in] aSecond
ตัวชี้ไปยังที่อยู่ IPv6 ที่ 2 เพื่อเปรียบเทียบ
แสดงผลค่า
TRUE
ที่อยู่ IPv6 ทั้ง 2 ที่อยู่เหมือนกัน
FALSE
ที่อยู่ IPv6 ทั้งสองนี้ไม่เหมือนกัน

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

ระบุว่าที่อยู่ IPv6 ที่ระบุเป็นที่อยู่ที่ไม่ระบุหรือไม่

รายละเอียด
พารามิเตอร์
[in] aAddress
ตัวชี้ไปยังที่อยู่ IPv6
แสดงผลค่า
TRUE
หากที่อยู่ IPv6 เป็นที่อยู่ที่ไม่ระบุ
FALSE
หากที่อยู่ IPv6 ไม่ใช่ที่อยู่ที่ไม่ระบุ

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

ระบุว่าอินเทอร์เฟซ IPv6 ใช้งานได้หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
TRUE
เปิดใช้งานอินเทอร์เฟซ IPv6 แล้ว
FALSE
อินเทอร์เฟซ IPv6 ปิดใช้อยู่

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

ตรวจสอบว่ามีการเปิดใช้โหมด Promiscuous มัลติแคสต์ ในอินเทอร์เฟซเทรดหรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
ดูเพิ่มเติมที่
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

ระบุว่ามีการกรองการรับส่งข้อมูลแบบควบคุมเทรดออกเมื่อส่ง Datagram ของ IPv6 ผ่านโค้ดเรียกกลับที่ระบุใน otIp6SetReceiveCallback() หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
TRUE หากการเข้าชมการควบคุมเทรดถูกกรองออก หากไม่เป็นเช่นนั้น FALSE
โปรดดูข้อมูลเพิ่มเติมที่
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

ระบุว่าโมดูล SLAAC เปิดใช้งานอยู่หรือไม่

ต้องเปิดใช้ฟีเจอร์เวลาบิลด์ OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE รายการ

รายละเอียด
แสดงผลค่า
TRUE
เปิดใช้งานโมดูล SLAAC แล้ว
FALSE
โมดูล SLAAC ปิดใช้อยู่

otIp6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

จัดสรรบัฟเฟอร์ข้อความใหม่สำหรับการส่งข้อความ IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSettings
ตัวชี้ไปยังการตั้งค่าข้อความหรือ NULL เพื่อตั้งค่าเริ่มต้น
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์ข้อความหรือค่า NULL หากไม่มีบัฟเฟอร์ข้อความหรือพารามิเตอร์ไม่ถูกต้อง
ดูเพิ่มเติม:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

จัดสรรบัฟเฟอร์ข้อความใหม่และเขียน IPv6 Datagram ลงในบัฟเฟอร์ข้อความสำหรับการส่งข้อความ IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aData
ตัวชี้ไปยังบัฟเฟอร์ Datagram ของ IPv6
[in] aDataLength
ขนาดของบัฟเฟอร์ Datagram ของ IPv6 ที่ชี้โดย aData
[in] aSettings
ตัวชี้ไปยังการตั้งค่าข้อความหรือ NULL เพื่อตั้งค่าเริ่มต้น
การส่งคืน
ตัวชี้ไปยังข้อความหรือค่า NULL หากมีส่วนหัว IPv6 ที่มีรูปแบบไม่ถูกต้องหรือบัฟเฟอร์ข้อความไม่เพียงพอ
ดูเพิ่มเติม:
otMessageFree

otIp6PrefixFromString

otError otIp6PrefixFromString(
  const char *aString,
  otIp6Prefix *aPrefix
)

แปลงสตริงคำนำหน้า IPv6 ที่มนุษย์อ่านได้เป็นค่าแทนแบบไบนารี

พารามิเตอร์ aString ควรเป็นสตริงในรูปแบบ "

/" โดยที่
คือที่อยู่ IPv6 และ คือความยาวของคำนำหน้า

รายละเอียด
พารามิเตอร์
[in] aString
ตัวชี้ไปยังสตริงที่สิ้นสุดค่า NULL
[out] aPrefix
ตัวชี้ไปยังคำนำหน้า IPv6
แสดงผลค่า
OT_ERROR_NONE
แยกวิเคราะห์สตริงเป็นคำนำหน้า IPv6 และอัปเดต aPrefix เรียบร้อยแล้ว
OT_ERROR_PARSE
แยกวิเคราะห์ aString เป็นคำนำหน้า IPv6 ไม่สำเร็จ

otIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

แสดงผลความยาวการจับคู่คำนำหน้า (บิต) สำหรับที่อยู่ IPv6 จำนวน 2 รายการ

รายละเอียด
พารามิเตอร์
[in] aFirst
ตัวชี้ไปยังที่อยู่ IPv6 แรก
[in] aSecond
ตัวชี้ไปยังที่อยู่ IPv6 ที่ 2
การส่งคืน
ความยาวการจับคู่คำนำหน้าเป็นบิต

otIp6PrefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

แปลงคำนำหน้า IPv6 ที่ระบุเป็นสตริงที่มนุษย์อ่านได้

สตริงที่อยู่ IPv6 จะมีรูปแบบเป็น "%x:%x:%x:...[::]/plen"

หากสตริงผลลัพธ์ไม่พอดีกับ aBuffer (ภายใน aSize อักขระ) ระบบจะตัดสตริงให้สั้นลง แต่สตริงที่ส่งออกจะเป็นค่าว่างเสมอ

รายละเอียด
พารามิเตอร์
[in] aPrefix
ตัวชี้ไปยังคำนำหน้า IPv6 (ต้องไม่ใช่ NULL)
[out] aBuffer
ตัวชี้ไปยังอาร์เรย์อักขระเพื่อแสดงสตริง (ต้องไม่ใช่ NULL)
[in] aSize
ขนาด aBuffer (ในหน่วยไบต์) แนะนำให้ใช้ OT_IP6_PREFIX_STRING_SIZE

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

แปลงหมายเลขโปรโตคอล IP ที่ระบุเป็นสตริงที่มนุษย์อ่านได้

รายละเอียด
พารามิเตอร์
[in] aIpProto
หมายเลขโปรโตคอล IP (การแจกแจง OT_IP6_PROTO_*)
การส่งคืน
สตริงที่มีค่าแทน aIpProto

otIp6RegisterMulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

ลงทะเบียน Listener มัลติแคสต์ไปยังเราเตอร์ Backbone หลัก

ต้องเปิดใช้ OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE และ OPENTHREAD_CONFIG_COMMISSIONER_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aAddresses
อาร์เรย์ที่อยู่มัลติแคสต์ที่จะลงทะเบียน
[in] aAddressNum
จำนวนของที่อยู่มัลติแคสต์ที่จะลงทะเบียน (0 หาก aAddresses เป็น NULL)
[in] aTimeout
ตัวชี้ไปยังค่าระยะหมดเวลา (เป็นวินาที) ที่จะรวมอยู่ใน MLR.req ค่าการหมดเวลาที่ 0 จะนำ Listener มัลติแคสต์ที่เกี่ยวข้องออก หาก NULL ได้ MLR.req จะไม่มี Tlv แบบระยะหมดเวลาโดยค่าเริ่มต้น
[in] aCallback
ตัวชี้ไปยังฟังก์ชันเรียกกลับ
[in] aContext
ตัวชี้ไปยังบริบทของผู้ใช้
แสดงผลค่า
OT_ERROR_NONE
ส่ง MLR.req เรียบร้อยแล้ว จะเรียก aCallback ว่า "หากวิธีนี้แสดงผล OT_ERROR_NONE"
OT_ERROR_BUSY
หากการลงทะเบียนครั้งก่อนหน้ายังดำเนินอยู่
OT_ERROR_INVALID_ARGS
หากอาร์กิวเมนต์อย่างน้อย 1 รายการไม่ถูกต้อง
OT_ERROR_INVALID_STATE
หากอุปกรณ์ไม่อยู่ในสถานะที่ถูกต้องสำหรับส่ง MLR.req (เช่น Commissioner ไม่เริ่มทำงาน ไม่พบเราเตอร์ Backbone หลัก)
OT_ERROR_NO_BUFS
หากมีบัฟเฟอร์ข้อความไม่เพียงพอ
โปรดดูข้อมูลเพิ่มเติมที่
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

นำพอร์ตทั้งหมดออกจากรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาต

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

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

นำที่อยู่อินเทอร์เฟซเครือข่ายออกจากอินเทอร์เฟซเทรด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aAddress
ตัวชี้ไปยังที่อยู่ IP
แสดงผลค่า
OT_ERROR_NONE
นำที่อยู่อินเทอร์เฟซเครือข่ายออกสำเร็จแล้ว
OT_ERROR_INVALID_ARGS
ที่อยู่ IP ที่ระบุโดย aAddress เป็นที่อยู่ภายใน
OT_ERROR_NOT_FOUND
ไม่พบที่อยู่ IP ที่ระบุโดย aAddress

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

นำพอร์ตออกจากรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาต

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aPort
ค่าของพอร์ต
แสดงผลค่า
OT_ERROR_NONE
นำพอร์ตออกจากรายการพอร์ตที่ไม่ปลอดภัยที่อนุญาตเรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
พอร์ตไม่ถูกต้อง (ค่า 0 สงวนไว้สำหรับใช้ภายใน)
OT_ERROR_NOT_FOUND
ไม่พบพอร์ตในรายการพอร์ตที่ไม่ปลอดภัย

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

รีเซ็ตตัวนับการกำหนดเส้นทางชายแดน

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

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

ดำเนินการเลือกที่อยู่ต้นทางของ OpenThread

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in,out] aMessageInfo
ตัวชี้ไปยังข้อมูลข้อความ
แสดงผลค่า
OT_ERROR_NONE
พบที่อยู่ต้นทางและกรอกลงใน mSockAddr ของ aMessageInfo แล้ว
OT_ERROR_NOT_FOUND
ไม่พบที่อยู่ต้นทางและ aMessageInfo จะไม่เปลี่ยนแปลง

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

ส่ง IPv6 Datagram ผ่านอินเทอร์เฟซเทรด

ผู้โทรจะโอนสิทธิ์การเป็นเจ้าของ aMessage เมื่อทำการโทรนี้ OpenThread จะเพิ่มพื้นที่ว่าง aMessage เมื่อการประมวลผลเสร็จสมบูรณ์ รวมถึงเมื่อแสดงผลค่าอื่นที่ไม่ใช่ OT_ERROR_NONE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMessage
ตัวชี้ไปยังบัฟเฟอร์ข้อความที่มี IPv6 Datagram
แสดงผลค่า
OT_ERROR_NONE
ประมวลผลข้อความสำเร็จแล้ว
OT_ERROR_DROP
ข้อความมีรูปแบบที่ถูกต้อง แต่ยังประมวลผลไม่เสร็จสมบูรณ์เนื่องจากกฎการประมวลผลแพ็กเก็ต
OT_ERROR_NO_BUFS
จัดสรรบัฟเฟอร์ข้อความที่จำเป็นเมื่อประมวลผล Datagram ไม่ได้
OT_ERROR_NO_ROUTE
ไม่มีเส้นทางไปยังโฮสต์
OT_ERROR_INVALID_SOURCE_ADDRESS
ที่อยู่ต้นทางไม่ถูกต้อง เช่น ที่อยู่ Anycast หรือที่อยู่มัลติแคสต์
OT_ERROR_PARSE
พบส่วนหัวที่มีรูปแบบไม่ถูกต้องเมื่อประมวลผลข้อความ
OT_ERROR_INVALID_ARGS
ข้อมูลเมตาของข้อความไม่ถูกต้อง เช่น ข้อความใช้ OT_MESSAGE_ORIGIN_THREAD_NETIF เป็นต้นทาง

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

ลงทะเบียนโค้ดเรียกกลับเพื่อแจ้งการเปลี่ยนแปลงที่อยู่ IPv6 ภายใน

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCallback
ตัวชี้ไปยังฟังก์ชันที่เรียกใช้เมื่อมีการเพิ่มหรือนำที่อยู่ IPv6 ภายในออก NULL เพื่อปิดใช้โค้ดเรียกกลับ
[in] aCallbackContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

นำอินเทอร์เฟซ IPv6 ขึ้นหรือลง

เรียกใช้รายการนี้เพื่อเปิดหรือปิดการสื่อสารแบบ IPv6

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
TRUE เพื่อเปิดใช้งาน IPv6 มิฉะนั้นเป็น FALSE
แสดงผลค่า
OT_ERROR_NONE
ขึ้น/ลงอินเทอร์เฟซ IPv6 สำเร็จแล้ว
OT_ERROR_INVALID_STATE
อินเทอร์เฟซ IPv6 ไม่พร้อมใช้งานเนื่องจากอุปกรณ์ทำงานในโหมดข้อมูลดิบของลิงก์ (ใช้ได้เมื่อเปิดใช้ฟีเจอร์ OPENTHREAD_CONFIG_LINK_RAW_ENABLE เท่านั้น)

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

ตั้งค่า Mesh Local IID (เพื่อการทดสอบ)

ต้องใช้ OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aIid
ตัวชี้ไปยัง IID ในเครื่องของ Mesh เพื่อตั้งค่า
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่า IID ในเครื่องของ Mesh เรียบร้อยแล้ว
OT_ERROR_INVALID_STATE
เปิดใช้โปรโตคอลเทรดแล้ว

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

เปิดหรือปิดใช้โหมด Multicast Promiscuous ในอินเทอร์เฟซเทรด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
TRUE เพื่อเปิดใช้โหมด Multicast Promiscuous ไม่เป็น FALSE
ดูเพิ่มเติมที่
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

ลงทะเบียนโค้ดเรียกกลับเพื่อมอบ IPv6 Datagram ที่ได้รับ

โดยค่าเริ่มต้น โค้ดเรียกกลับนี้จะไม่ส่งการรับส่งข้อมูลของการควบคุมเทรด โปรดดู otIp6SetReceiveFilterEnabled() เพื่อเปลี่ยนการตั้งค่าตัวกรองการรับส่งข้อมูลของการควบคุมเทรด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCallback
ตัวชี้ไปยังฟังก์ชันที่เรียกใช้เมื่อได้รับ IPv6 Datagram หรือ NULL เพื่อปิดใช้การเรียกกลับ
[in] aCallbackContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน
โปรดดูข้อมูลเพิ่มเติมที่
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

ตั้งค่าว่าจะกรองการรับส่งข้อมูลแบบควบคุมเทรดออกเมื่อส่ง Datagram ของ IPv6 ผ่านโค้ดเรียกกลับที่ระบุใน otIp6SetReceiveCallback() หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
TRUE หากการเข้าชมการควบคุมเทรดถูกกรองออก หากไม่เป็นเช่นนั้น FALSE
โปรดดู
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

เปิด/ปิดใช้โมดูล SLAAC

ต้องเปิดใช้ฟีเจอร์เวลาบิลด์ OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE รายการ

เมื่อเปิดใช้โมดูล SLAAC ระบบจะเพิ่มที่อยู่ SLAAC (ตามคำนำหน้าที่ทำงานร่วมกันในข้อมูลเครือข่าย) ลงในอินเทอร์เฟซ เมื่อปิดใช้โมดูล SLAAC ที่อยู่ SLAAC ที่เพิ่มไว้ก่อนหน้านี้จะถูกนำออก

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
TRUE เพื่อเปิดใช้ FALSE เพื่อปิดใช้

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

ตั้งค่าเครื่องจัดการตัวกรองโมดูล SLAAC

ต้องเปิดใช้ฟีเจอร์เวลาบิลด์ OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE รายการ

โมดูล SLAAC จะเรียกใช้เครื่องจัดการตัวกรองเมื่อกำลังจะเพิ่มที่อยู่ SLAAC โดยอิงตามคำนำหน้าเพื่อตัดสินใจว่าควรเพิ่มที่อยู่ดังกล่าวหรือไม่

ตัวแฮนเดิลตัวกรอง NULL จะปิดใช้การกรองและอนุญาตให้เพิ่มที่อยู่ SLAAC ทั้งหมดได้

หากไม่มีการเรียกฟังก์ชันนี้ ตัวกรองเริ่มต้นที่โมดูล SLAAC ใช้จะเป็น NULL (ปิดใช้การกรองอยู่)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aFilter
ตัวชี้ไปยังเครื่องจัดการตัวกรองคำนำหน้า 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 อักขระ) ระบบจะตัดสตริงให้สั้นลง แต่สตริงที่ส่งออกจะเป็นค่าว่างเสมอ

รายละเอียด
พารามิเตอร์
[in] aSockAddr
ตัวชี้ไปยังที่อยู่ของซ็อกเก็ต IPv6 (ต้องไม่ใช่ NULL)
[out] aBuffer
ตัวชี้ไปยังอาร์เรย์อักขระเพื่อแสดงสตริง (ต้องไม่ใช่ NULL)
[in] aSize
ขนาด aBuffer (ในหน่วยไบต์) แนะนำให้ใช้ OT_IP6_SOCK_ADDR_STRING_SIZE

otIp6SubscribeMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

สมัครรับข้อมูลอินเทอร์เฟซเทรดกับที่อยู่มัลติแคสต์อินเทอร์เฟซเครือข่าย

ระบบจะคัดลอกในอินสแตนซ์ aAddress ที่ส่งผ่านโดยอินเทอร์เฟซเทรด อินเทอร์เฟซเทรดรองรับที่อยู่แบบมัลติแคสต์ที่เพิ่มภายนอกได้เป็นจำนวนที่กำหนดไว้เท่านั้น ดู OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aAddress
ตัวชี้ไปยังที่อยู่ IP
แสดงผลค่า
OT_ERROR_NONE
สมัครใช้ที่อยู่ Multicast ของอินเทอร์เฟซเครือข่ายเรียบร้อยแล้ว
OT_ERROR_ALREADY
สมัครรับที่อยู่มัลติแคสต์แล้ว
OT_ERROR_INVALID_ARGS
ที่อยู่ IP ที่ระบุโดย aAddress เป็นที่อยู่มัลติแคสต์ที่ไม่ถูกต้อง
OT_ERROR_REJECTED
ที่อยู่ IP ที่ระบุโดย aAddress เป็นที่อยู่มัลติแคสต์ภายใน
OT_ERROR_NO_BUFS
อินเทอร์เฟซเครือข่ายจัดเก็บที่อยู่มัลติแคสต์ภายนอกสูงสุดที่อนุญาตอยู่แล้ว

otIp6UnsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

ยกเลิกการสมัครใช้อินเทอร์เฟซเทรดไปยังที่อยู่ Multicast ของอินเทอร์เฟซเครือข่าย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aAddress
ตัวชี้ไปยังที่อยู่ IP
แสดงผลค่า
OT_ERROR_NONE
ยกเลิกการสมัครไปยังที่อยู่ Multicast ของอินเทอร์เฟซเครือข่ายสำเร็จแล้ว
OT_ERROR_REJECTED
ที่อยู่ IP ที่ระบุโดย aAddress เป็นที่อยู่ภายใน
OT_ERROR_NOT_FOUND
ไม่พบที่อยู่ IP ที่ระบุโดย aAddress

มาโคร

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

ค่าออฟเซ็ตของช่อง Proto ในส่วนหัว IPv6 (ไบต์)

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 สูงสุดที่รองรับโดยการลงทะเบียน Listener มัลติแคสต์

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

แหล่งข้อมูล

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