nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

ออบเจ็กต์ของคลาสนี้แสดงถึงปลายทางเครือข่าย IP ดิบ

สรุป

Nest Inet Layer สรุปวิธีการในการโต้ตอบกับปลายทางเครือข่าย IP (ซ็อกเก็ต SOCK_RAW ในระบบที่ได้รับ Linux และ BSD) หรือบล็อกการควบคุมโปรโตคอลดิบ LwIP เนื่องจากมีการกำหนดค่าของระบบให้สอดคล้องกัน

การสืบทอด

รับค่าจาก: nl::Inet::IPEndPointBasis

แอตทริบิวต์สาธารณะ

IPProto
IPProtocol
เวอร์ชันของ Internet Control Message Protocol (ICMP)
IPVer
IPVersion
เวอร์ชันของอินเทอร์เน็ตโปรโตคอล

ฟังก์ชันสาธารณะ

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซ
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
เชื่อมโยงปลายทางข้อมูลดิบกับที่อยู่ขอบเขตลิงก์ภายในของ IPv6 ที่ดัชนีอินเทอร์เฟซที่ระบุ
BindInterface(IPAddressType addrType, InterfaceId intf)
เชื่อมโยงปลายทางกับอินเทอร์เฟซเครือข่าย
Close(void)
void
ปิดปลายทาง
Free(void)
void
ปิดปลายทางและใช้หน่วยความจำอีกครั้ง
GetBoundInterface(void)
InterfaceId
รับอินเทอร์เฟซที่เชื่อมโยงบนปลายทางนี้
Listen(void)
เตรียมปลายทางเพื่อรับข้อความ ICMP
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
ส่งข้อความ ICMP ไปยังปลายทางที่ระบุ
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
คำพ้องความหมายของ SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags)
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
ส่งข้อความ ICMP ไปยังที่อยู่ปลายทางที่ระบุ
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
ตั้งค่าพารามิเตอร์ตัวกรอง ICMP6 ในกลุ่มเครือข่าย

แอตทริบิวต์สาธารณะ

IPProto

IPProtocol IPProto

เวอร์ชันของ Internet Control Message Protocol (ICMP)

แม้ว่าช่องนี้จะเป็นตัวแปรคลาสที่เปลี่ยนแปลงได้ แต่เป็นตัวแปรคงที่ของคลาสที่จะไม่มีการแก้ไข

IPVer

IPVersion IPVer

เวอร์ชันของอินเทอร์เน็ตโปรโตคอล

แม้ว่าช่องนี้จะเป็นตัวแปรคลาสที่เปลี่ยนแปลงได้ แต่เป็นตัวแปรคงที่ของคลาสที่จะไม่มีการแก้ไข

ฟังก์ชันสาธารณะ

เชื่อมโยง

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซ

เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซเครือข่ายที่ระบุ

รายละเอียด
พารามิเตอร์
[in] addrType
เวอร์ชันโปรโตคอลของที่อยู่ IP
[in] addr
ที่อยู่ IP (ต้องเป็นที่อยู่อินเทอร์เฟซ)
[in] intfId
ตัวบ่งชี้อินเทอร์เฟซเครือข่ายที่ไม่บังคับ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: เชื่อมโยงกับที่อยู่ปลายทาง
INET_ERROR_INCORRECT_STATE
มีการผูกปลายทางไว้ก่อนหน้านี้
INET_NO_MEMORY
หน่วยความจำไม่เพียงพอสำหรับปลายทาง
INET_ERROR_UNKNOWN_INTERFACE
ในบางแพลตฟอร์มจะไม่มีอินเทอร์เฟซที่ระบุซึ่งไม่บังคับ
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ไม่ตรงกับ IPVer
INET_ERROR_WRONG_ADDRESS_TYPE
addrType เท่ากับ kIPAddressType_Any หรือประเภทของ addr ไม่เท่ากับ addrType
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

ใน LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

เชื่อมโยงปลายทางข้อมูลดิบกับที่อยู่ขอบเขตลิงก์ภายในของ IPv6 ที่ดัชนีอินเทอร์เฟซที่ระบุ

และตั้งค่าตัวเลือกซ็อกเก็ต IPv6 ที่หลากหลายที่เหมาะสำหรับการส่งแพ็กเก็ตไปยังและจากปลายทางแบบออนลิงก์

เชื่อมโยงปลายทางกับที่อยู่ลิงก์ภายในของ IPv6 addr ในอินเทอร์เฟซเครือข่ายที่ระบุโดย intf

รายละเอียด
พารามิเตอร์
[in] intf
InterfaceId สำหรับระบุขอบเขตของที่อยู่
[in] addr
ออบเจ็กต์ IPAddress ของขอบเขตลิงก์ภายในของ IPv6
พารามิเตอร์
[in] intf
สัญญาณบอกสถานะอินเทอร์เฟซเครือข่าย
[in] addr
ที่อยู่ IP (ต้องเป็นที่อยู่อินเทอร์เฟซ)
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: เชื่อมโยงกับที่อยู่ปลายทาง
INET_ERROR_INCORRECT_STATE
มีการผูกปลายทางไว้ก่อนหน้านี้
INET_NO_MEMORY
หน่วยความจำไม่เพียงพอสำหรับปลายทาง
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ไม่ตรงกับ IPVer
INET_ERROR_WRONG_ADDRESS_TYPE
addr ไม่ใช่ที่อยู่แบบลิงก์ภายในของ IPv6 หรือ intf คือ INET_NULL_INTERFACEID
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น
การคืนสินค้า
INET_NO_ERROR ในขณะสำเร็จ หรือข้อผิดพลาดของระบบปฏิบัติการที่แมปเมื่อล้มเหลว รายการพารามิเตอร์ที่ไม่ถูกต้องอาจทำให้เกิด INET_ERROR_WRONG_ADDRESS_TYPE หากปลายทางข้อมูลดิบมีการเชื่อมโยงอยู่แล้วหรือกำลังฟังอยู่ ให้แสดงผล INET_ERROR_INCORRECT_STATE เชื่อมโยงปลายทางกับที่อยู่ลิงก์ภายในของอินเทอร์เฟซ IPv6

ใน LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

เชื่อมโยงปลายทางกับอินเทอร์เฟซเครือข่าย

เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซเครือข่ายที่ระบุ

รายละเอียด
พารามิเตอร์
[in] addrType
เวอร์ชันโปรโตคอลของที่อยู่ IP
[in] intf
สัญญาณบอกสถานะอินเทอร์เฟซเครือข่าย
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: เชื่อมโยงกับที่อยู่ปลายทาง
INET_NO_MEMORY
หน่วยความจำไม่เพียงพอสำหรับปลายทาง
INET_ERROR_NOT_IMPLEMENTED
การติดตั้งระบบไม่เสร็จสมบูรณ์
INET_ERROR_UNKNOWN_INTERFACE
ในบางแพลตฟอร์มจะไม่มีอินเทอร์เฟซ
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

ใน LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

ปิด

void Close(
  void
)

ปิดปลายทาง

หากเป็น mState != kState_Closed ให้ปิดปลายทางดังกล่าว โดยนำออกจากชุดปลายทางที่มีสิทธิ์สำหรับเหตุการณ์การสื่อสาร

ในระบบ LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

ฟรี

void Free(
  void
)

ปิดปลายทางและใช้หน่วยความจำอีกครั้ง

เรียกใช้เมธอด Close แล้วเรียกใช้เมธอด InetLayerBasis::Release เพื่อส่งคืนออบเจ็กต์ไปยังพูลหน่วยความจำ

ในระบบ LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

รับอินเทอร์เฟซที่เชื่อมโยงบนปลายทางนี้

รายละเอียด
การคืนสินค้า
InterfaceId รหัสอินเทอร์เฟซที่เชื่อมโยง

ฟัง

INET_ERROR Listen(
  void
)

เตรียมปลายทางเพื่อรับข้อความ ICMP

หาก mState เป็น kState_Listening อยู่แล้ว แสดงว่าไม่มีการดำเนินการใดๆ มิเช่นนั้น จะตั้งค่า mState เป็น kState_Listening และเตรียมปลายทางให้ได้รับข้อความ ICMPv6 ตามความหมายของแพลตฟอร์ม

รายละเอียด
ผลลัพธ์
INET_NO_ERROR
แสดงผลทุกครั้ง

ใน LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

ส่งข้อความ ICMP ไปยังปลายทางที่ระบุ

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

รายละเอียด
พารามิเตอร์
[in] pktInfo
ข้อมูลปลายทางของข้อความ
[in] msg
บัฟเฟอร์แพ็กเก็ตที่มีข้อความ UDP
[in] sendFlags
Flag ตัวเลือกการส่งที่ไม่บังคับ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: msg อยู่ในคิวสำหรับการส่ง
INET_ERROR_NOT_SUPPORTED
ระบบไม่สนับสนุนการดำเนินการที่ร้องขอ
INET_ERROR_WRONG_ADDRESS_TYPE
ที่อยู่ปลายทางและที่อยู่อินเทอร์เฟซที่เชื่อมโยงไม่มีเวอร์ชันโปรโตคอลหรือประเภทที่อยู่ที่ตรงกัน
INET_ERROR_MESSAGE_TOO_LONG
msg ไม่มีข้อความ ICMP ทั้งหมด
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
ในบางแพลตฟอร์ม มีเพียงบางส่วนของ msg ที่ตัดให้สั้นลงเท่านั้นได้รับการจัดคิวสำหรับส่ง
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

คำพ้องความหมายของ SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags)

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

ส่งข้อความ ICMP ไปยังที่อยู่ปลายทางที่ระบุ

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

รายละเอียด
พารามิเตอร์
[in] addr
ที่อยู่ IP ปลายทาง
[in] intfId
ตัวบ่งชี้อินเทอร์เฟซเครือข่ายที่ไม่บังคับ
[in] msg
บัฟเฟอร์แพ็กเก็ตที่มีข้อความ UDP
[in] sendFlags
Flag ตัวเลือกการส่งที่ไม่บังคับ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: msg อยู่ในคิวสำหรับการส่ง
INET_ERROR_NOT_SUPPORTED
ระบบไม่สนับสนุนการดำเนินการที่ร้องขอ
INET_ERROR_WRONG_ADDRESS_TYPE
ที่อยู่ปลายทางและที่อยู่อินเทอร์เฟซที่เชื่อมโยงไม่มีเวอร์ชันโปรโตคอลหรือประเภทที่อยู่ที่ตรงกัน
INET_ERROR_MESSAGE_TOO_LONG
msg ไม่มีข้อความ ICMP ทั้งหมด
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
ในบางแพลตฟอร์ม มีเพียงบางส่วนของ msg ที่ตัดให้สั้นลงเท่านั้นได้รับการจัดคิวสำหรับส่ง
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

ตั้งค่าพารามิเตอร์ตัวกรอง ICMP6 ในกลุ่มเครือข่าย

ใช้พารามิเตอร์การกรอง ICMPv6 สำหรับรหัสใน aICMPTypes กับปลายทางเบื้องหลังในสแต็กเครือข่ายของระบบ

รายละเอียด
พารามิเตอร์
[in] numICMPTypes
ความยาวของอาร์เรย์ aICMPTypes
[in] aICMPTypes
ชุดรหัสประเภท ICMPv6 ที่จะกรอง
ผลลัพธ์
INET_NO_ERROR
success: ตั้งค่าพารามิเตอร์ตัวกรอง
INET_ERROR_NOT_IMPLEMENTED
ระบบไม่ใช้
INET_ERROR_WRONG_ADDRESS_TYPE
ปลายทางไม่ใช่ประเภท IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
ปลายทางไม่ใช่ประเภท ICMP6
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น