จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

วัตถุของชั้นเรียนนี้แสดงถึงปลายทางเครือข่าย IP ดิบ

สรุป

Nest Inet Layer ครอบคลุมวิธีโต้ตอบกับปลายทางเครือข่าย IP (SOCK_RAW Socket ใน 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-Local Link หรือ 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
)

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

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

ฟัง

INET_ERROR Listen(
  void
)

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

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

รายละเอียด
แสดงผลค่า
INET_NO_ERROR
แสดงผลเสมอ

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

ส่ง Msg

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
แฟล็กตัวเลือกการส่งที่ไม่บังคับ
แสดงผลค่า
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
ข้อผิดพลาดระบบหรือแพลตฟอร์มอื่น

ส่งถึง

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

คําพ้องความหมายสําหรับ SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags)

ส่งถึง

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
แฟล็กตัวเลือกการส่งที่ไม่บังคับ
แสดงผลค่า
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
ข้อผิดพลาดระบบหรือแพลตฟอร์มอื่น

ตัวกรอง SetICMP

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

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

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

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