nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

האובייקטים מהמחלקה הזו מייצגים נקודות קצה של פרוטוקול IP שאינן בשימוש.

סיכום

ירושה

ירשת מ: nl::Inet::EndPointBasis
מחלקות משנה ישירות ידועות:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

סוגים ציבוריים

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
טיפוסים בני מנייה (enum)
המצב הדינמי הבסיסי של נקודת הקצה בבסיס.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
טיפוסים בני מנייה (enum)
שידור דגלי אפשרויות ל-method SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
סוג הפונקציה לטיפול באירוע של קבלת טקסט מהודעה.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
סוג הפונקציה לטיפול באירועים בשגיאת קבלה.

מאפיינים ציבוריים

OnMessageReceived
הענקת גישה לפונקציית הטיפול באירוע העברת הודעות של נקודת הקצה.
OnReceiveError
הקצאת פונקציית טיפול באירועי שגיאות בנקודת הקצה (endpoint).
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

נקודת הקצה (endpoint) סגורה, מוכנה לפרסום.

kState_Listening

נקודות הקצה (endpoint) מקבלות תרשימים של נתונים.

kState_Ready

נקודת הקצה (endpoint) אותחלה, אבל לא פתוחה.

9@

 @9

שידור דגלי אפשרויות ל-method SendMsg.

תכונות
kSendFlag_RetainBuffer

אין להוסיף את ההודעה ישירות לתור.

מוסיפים עותק לתור.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

סוג הפונקציה לטיפול באירוע של קבלת טקסט מהודעה.

צריך לספק פונקציה מסוג זה לחבר עם ההרשאה OnMessageReceived כדי לעבד אירועים של קבלת הודעות טקסט ב-endPoint, כאשר msg הוא טקסט ההודעה שהתקבל מהשולח בשעה senderAddr.

פרטים
פרמטרים
[in] endPoint
נקודת הקצה שמשויכת לאירוע.
[in] msg
טקסט ההודעה התקבל.
[in] senderAddr
כתובת ה-IP של השולח.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

סוג הפונקציה לטיפול באירועים בשגיאת קבלה.

צריך לספק פונקציה מהסוג הזה לחבר המואצל OnReceiveError כדי שיעבד אירועים של שגיאת קבלה ב-endPoint. הארגומנט err מספק פרטים ספציפיים לגבי סוג השגיאה.

פרטים
פרמטרים
[in] endPoint
נקודת הקצה שמשויכת לאירוע.
[in] err
הסיבה לשגיאה.

מאפיינים ציבוריים

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

הענקת גישה לפונקציית הטיפול באירוע העברת הודעות של נקודת הקצה.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

הקצאת פונקציית טיפול באירועי שגיאות בנקודת הקצה (endpoint).

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.

מצרפים את נקודת הקצה לקבוצת שידורים מרובים בממשק שצוין.

פרטים
פרמטרים
[in] aInterfaceId
אינדיקטור של ממשק הרשת שיש להוסיף לקבוצת השידור
[in] aAddress
לקבוצת Multicast כדי להוסיף את הממשק
ערכים מוחזרים
INET_NO_ERROR
הצלחה: הקבוצה מרובת השידורים הוסרה
INET_ERROR_UNKNOWN_INTERFACE
ממשק רשת לא ידוע, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
הערך aAddress אינו kIPAddressType_IPv4 או kIPAddressType_IPv6 או שאינו שידורים מרובים
other
שגיאת מערכת או שגיאה אחרת

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

עזיבת קבוצה של שידורים מרובים של כתובת IP.

מסירים את נקודת הקצה מקבוצת ה-multicast שסופקה בממשק שצוין.

פרטים
פרמטרים
[in] aInterfaceId
אינדיקטור של ממשק הרשת שיש להסיר מקבוצת השידור
[in] aAddress
קבוצת Multicast להסרת הממשק
ערכים מוחזרים
INET_NO_ERROR
הצלחה: הקבוצה מרובת השידורים הוסרה
INET_ERROR_UNKNOWN_INTERFACE
ממשק רשת לא ידוע, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
הערך aAddress אינו kIPAddressType_IPv4 או kIPAddressType_IPv6 או שאינו שידורים מרובים
other
שגיאת מערכת או שגיאה אחרת

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

קובעים אם תעבורת הנתונים של שידורים מרובים של IP תחודש בלולאה.

אפשר לקבוע אם תעבורת הנתונים של השידורים מרובים של כתובת ה-IP תחובר בלופ אל נקודת הקצה הזו.

פרטים
פרמטרים
[in] aIPVersion
[in] aLoop
ערכים מוחזרים
INET_NO_ERROR
הצלחה: קבוצת התנהגות של לולאה חוזרת מסוג multicast
other
שגיאת מערכת או שגיאה אחרת

פונקציות מוגנות

כריכה

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
)

הפעלה

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, המידע על החבילה 'מוסתר' במקום השמור לפני תחילת הנתונים במאגר הזמני של החבילות. הפעולה הזאת נדרשת כי האירועים של שכבת המערכת מכילים רק שני ארגומנטים, שבמקרה הזה משמשים להעברת המצביע לנקודת הסיום והמצביע למאגר הנתונים הזמני.

פרטים
פרמטרים
[in] aBuffer
מאגר החבילות שמכיל את הודעת ה-IP
החזרות
מצביע אל פרטי הכתובת בהצלחה. אחרת, הערך NULL אם אין מספיק מקום בחבילה לפרטי הכתובת.

ברוב המקרים הטריק הזה של אחסון מידע לפני הנתונים פועל כי המאגר הראשון בהודעת LwIP IP מכיל את השטח ששימש לכותרות Ethernet/IP/UDP. עם זאת, בהתחשב בגודל הנוכחי של מבנה IPPacketInfo (40 בייט), ייתכן שלא יהיה מספיק מקום לאחסן את המבנה יחד עם המטען הייעודי (payload) במאגר חבילות יחיד. בפועל, זה אמור לקרות רק לחבילות IPv4 גדולות במיוחד שמגיעות ללא כותרת Ethernet.