nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
ออบเจ็กต์ของคลาสนี้แสดงถึงปลายทางโปรโตคอล IP ที่ตรวจสอบไม่ได้
สรุป
การสืบทอด
รับค่าจาก: nl::Inet::EndPointBasisคลาสย่อยที่รู้จักโดยตรง:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
ประเภทสาธารณะ |
|
---|---|
@8{
|
enum สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ |
@9{
|
enum แฟล็กตัวเลือกการส่งสำหรับเมธอด SendMsg |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
Typedefvoid(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์การรับข้อความ |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
Typedefvoid(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดในการตอบรับ |
แอตทริบิวต์สาธารณะ |
|
---|---|
OnMessageReceived
|
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การรับข้อความของปลายทาง
|
OnReceiveError
|
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดการรับของอุปกรณ์ปลายทาง
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
|
แอตทริบิวต์ที่มีการป้องกัน |
|
---|---|
mBoundIntfId
|
InterfaceId
|
ฟังก์ชันสาธารณะ |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
เข้าร่วมกลุ่มมัลติแคสต์ IP
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
ออกจากกลุ่มมัลติแคสต์ IP
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
กำหนดว่าจะให้การรับส่งข้อมูลแบบมัลติแคสต์ของ IP วนซ้ำหรือไม่
|
ฟังก์ชันที่มีการป้องกัน |
|
---|---|
Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
|
|
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
|
|
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
|
|
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
|
void
|
HandlePendingIO(uint16_t aPort)
|
void
|
Init(InetLayer *aInetLayer)
|
void
|
PrepareIO(void)
|
|
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)
|
ฟังก์ชันสาธารณะแบบคงที่ |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
ฟังก์ชันแบบคงที่ที่มีการป้องกัน |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
รับข้อมูลที่อยู่ต้นทางและปลายทางของเลเยอร์ IP LwIP
|
ประเภทสาธารณะ
@8
@8
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
เริ่มต้นออบเจ็กต์ในสถานะ "พร้อม" ให้ดำเนินการต่อไปยัง "ขอบเขต" ของคุณหลังจากเชื่อมโยงกับที่อยู่ของอินเทอร์เฟซภายในแล้วดำเนินการต่อไปยังส่วน "การฟัง" สถานะเมื่อมีการลงทะเบียนอย่างต่อเนื่องในการจัดการเหตุการณ์เพื่อรับข้อความ ICMP
หมายเหตุ: การแจกแจงสถานะ kBasisState_Closed
จะแมปกับ kState_Ready
สำหรับเหตุผลด้านความเข้ากันได้กับไบนารีในอดีต kState_Closed
ที่มีอยู่มีไว้เพื่อระบุความแตกต่างระหว่าง "ยังไม่เปิด" แยกกัน และ "ได้เปิดก่อนหน้านี้
ปิดแล้ว" ที่มีอยู่ก่อนหน้านี้ในรัฐ kState_Ready
และ kState_Closed
พร็อพเพอร์ตี้ | |
---|---|
kState_Bound
|
ผูกกับปลายทางแล้ว แต่ไม่ได้ฟัง |
kState_Closed
|
ปิดปลายทางแล้ว พร้อมสำหรับการเผยแพร่ |
kState_Listening
|
ปลายทางที่ได้รับ Datagram |
kState_Ready
|
เริ่มต้นปลายทางแล้ว แต่ไม่เปิด |
@9
@9
แฟล็กตัวเลือกการส่งสำหรับเมธอด SendMsg
พร็อพเพอร์ตี้ | |
---|---|
kSendFlag_RetainBuffer
|
อย่าจัดคิวข้อความโดยตรงโดยไม่ทำให้ง่ายขึ้น จัดคิวสำเนา |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
ประเภทของฟังก์ชันการจัดการเหตุการณ์การรับข้อความ
จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnMessageReceived
เพื่อประมวลผลกิจกรรมการรับข้อความใน endPoint
โดยที่ msg
คือข้อความที่ได้รับจากผู้ส่งที่ senderAddr
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
ประเภทของฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดในการตอบรับ
จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnReceiveError
เพื่อประมวลผลเหตุการณ์ข้อผิดพลาดของการรับใน endPoint
อาร์กิวเมนต์ err
ให้รายละเอียดเฉพาะเกี่ยวกับประเภทของข้อผิดพลาด
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
แอตทริบิวต์สาธารณะ
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การรับข้อความของปลายทาง
OnReceiveError
OnReceiveErrorFunct OnReceiveError
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดการรับของอุปกรณ์ปลายทาง
mState
enum nl::Inet::IPEndPointBasis::@8 mState
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
เริ่มต้นออบเจ็กต์ในสถานะ "พร้อม" ให้ดำเนินการต่อไปยัง "ขอบเขต" ของคุณหลังจากเชื่อมโยงกับที่อยู่ของอินเทอร์เฟซภายในแล้วดำเนินการต่อไปยังส่วน "การฟัง" สถานะเมื่อมีการลงทะเบียนอย่างต่อเนื่องในการจัดการเหตุการณ์เพื่อรับข้อความ ICMP
หมายเหตุ: การแจกแจงสถานะ kBasisState_Closed
จะแมปกับ kState_Ready
สำหรับเหตุผลด้านความเข้ากันได้กับไบนารีในอดีต kState_Closed
ที่มีอยู่มีไว้เพื่อระบุความแตกต่างระหว่าง "ยังไม่เปิด" แยกกัน และ "ได้เปิดก่อนหน้านี้
ปิดแล้ว" ที่มีอยู่ก่อนหน้านี้ในรัฐ kState_Ready
และ kState_Closed
แอตทริบิวต์ที่มีการป้องกัน
mBoundIntfId
InterfaceId mBoundIntfId
ฟังก์ชันสาธารณะ
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
เข้าร่วมกลุ่มมัลติแคสต์ IP
รวมปลายทางไปยังกลุ่มมัลติแคสต์ที่จัดไว้ให้ในอินเทอร์เฟซที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
ผลลัพธ์ |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
ออกจากกลุ่มมัลติแคสต์ IP
นำปลายทางออกจากกลุ่มมัลติแคสต์ที่ให้มาในอินเทอร์เฟซที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
ผลลัพธ์ |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
กำหนดว่าจะให้การรับส่งข้อมูลแบบมัลติแคสต์ของ IP วนซ้ำหรือไม่
กำหนดว่าจะให้การรับส่งข้อมูลแบบมัลติแคสต์ของ IP วนซ้ำไปยังปลายทางนี้หรือไม่
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
ผลลัพธ์ |
|
ฟังก์ชันที่มีการป้องกัน
เชื่อมโยง
INET_ERROR Bind( IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId )
BindInterface
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
HandleDataReceived
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
HandlePendingIO
void HandlePendingIO( uint16_t aPort )
Init
void Init( InetLayer *aInetLayer )
PrepareIO
SocketEvents PrepareIO( void )
SendMsg
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
ฟังก์ชันสาธารณะแบบคงที่
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
ฟังก์ชันแบบคงที่ที่มีการป้องกัน
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
รับข้อมูลที่อยู่ต้นทางและปลายทางของเลเยอร์ IP LwIP
เมื่อใช้ข้อมูล LwIP เกี่ยวกับแพ็กเก็ตจะถูก "ซ่อน" ในพื้นที่ที่สงวนไว้ก่อนเริ่มข้อมูลในบัฟเฟอร์แพ็กเก็ต ซึ่งเป็นสิ่งจำเป็นเนื่องจากเหตุการณ์ในเลเยอร์ของระบบมีเพียง 2 อาร์กิวเมนต์เท่านั้น ในกรณีนี้จะใช้เพื่อแสดงตัวชี้ไปยังจุดสิ้นสุดและตัวชี้ไปยังบัฟเฟอร์
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
ตัวชี้ไปยังข้อมูลที่อยู่ที่แสดงว่าสำเร็จ มิฉะนั้น ให้ใช้ NULL หากมีพื้นที่ในแพ็กเก็ตไม่เพียงพอสำหรับข้อมูลที่อยู่
|
ในกรณีส่วนใหญ่ เคล็ดลับในการจัดเก็บข้อมูลนี้ก่อนที่ข้อมูลจะใช้ได้จริงเนื่องจากบัฟเฟอร์แรกในข้อความ IP ของ LwIP มีช่องว่างที่ใช้สำหรับส่วนหัวอีเทอร์เน็ต/IP/UDP อย่างไรก็ตาม สำหรับขนาดของโครงสร้าง IPPacketInfo ในปัจจุบัน (40 ไบต์) จึงเป็นไปได้ที่จะมีพื้นที่ไม่เพียงพอที่จะจัดเก็บโครงสร้างพร้อมกับเพย์โหลดในบัฟเฟอร์แพ็กเก็ตเดียว ในทางปฏิบัติ ปัญหานี้จะเกิดกับแพ็กเก็ต IPv4 ที่มีขนาดใหญ่มากซึ่งส่งมาโดยไม่มีส่วนหัวอีเทอร์เน็ตเท่านั้น