nl::Inet

סיכום

ספירות

@7{
  kInetEvent_TCPConnectComplete = _INET_CONFIG_EVENT(0),
  kInetEvent_TCPConnectionReceived = _INET_CONFIG_EVENT(1),
  kInetEvent_TCPDataReceived = _INET_CONFIG_EVENT(2),
  kInetEvent_TCPDataSent = _INET_CONFIG_EVENT(3),
  kInetEvent_TCPError = _INET_CONFIG_EVENT(4),
  kInetEvent_UDPDataReceived = _INET_CONFIG_EVENT(5),
  kInetEvent_DNSResolveComplete = _INET_CONFIG_EVENT(6),
  kInetEvent_TunDataReceived = _INET_CONFIG_EVENT(7),
  kInetEvent_RawDataReceived = _INET_CONFIG_EVENT(8)
}
טיפוסים בני מנייה (enum)
ההגדרות של סוגי האירועים בשכבה Inet.
DNSOptions{
  kDNSOption_AddrFamily_Mask = 0x07,
  kDNSOption_Flags_Mask = 0xF8,
  kDNSOption_AddrFamily_Any = 0x00,
  kDNSOption_AddrFamily_IPv4Only = 0x01,
  kDNSOption_AddrFamily_IPv4Preferred = 0x02,
  kDNSOption_AddrFamily_IPv6Only = 0x03,
  kDNSOption_AddrFamily_IPv6Preferred = 0x04,
  kDNSOption_ValidFlags = 0
}
טיפוסים בני מנייה (enum)
אפשרויות לשליטה על אופן ביצוע הפענוח של כתובת ה-IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
טיפוסים בני מנייה (enum)
משפחת כתובות של פרוטוקולי אינטרנט.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
טיפוסים בני מנייה (enum)
המספרים של חלק מהפרוטוקולים במשפחת ה-IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
טיפוסים בני מנייה (enum)
מזהי קבוצות של שידורים מרובים של פרוטוקול אינטרנט.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
טיפוסים בני מנייה (enum)
הגרסה של פרוטוקול ה-IP שבו נעשה שימוש.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
טיפוסים בני מנייה (enum)
דגלים ל-multicast של פרוטוקול אינטרנט v6.
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
טיפוסים בני מנייה (enum)
היקף כתובת multicast של פרוטוקול אינטרנט.

ערכי דף

InterfaceId typedef
struct netif *
אינדיקטור לממשקי הרשת של המערכת.

משתנים

sIOCTLSocket = -1
int

פונקציות

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
סגירת השקע הגלובלי שנוצר על ידי GetIOCTLSocket.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
בהינתן שגיאת Inet Layer, מחזירה מחרוזת C קטועה של NULL, המסווגת על ידי בני אדם, שמתארת את השגיאה.
GetIOCTLSocket(void)
int
מחזירה socket גלובלי לשימוש כללי שיכול לשמש להפעלה של IOCTL מסוימות ברשת.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
קבלת שם של ממשק רשת.
INET_IsInetEvent(Weave::System::EventType aType)
bool
צריך לבדוק אם סוג האירוע System::EventType הוא סוג אירוע חוקי של שכבת Inet.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
חפשו את השם שצוין ברשימת ממשקי הרשתות.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
חישוב אורך קידומת מסיכת רשת באורך משתנה.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
נתחו מחרוזת שאנשים יכולים לקרוא, המכילה מארח או כתובת IP ומספר יציאה אופציונלי (מופרדים בתו ':'), עם תמיכה בפורמטים הבאים:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
נתחו מחרוזת שאנשים יכולים לקרוא, המכילה מארח או כתובת IP, מספר יציאה אופציונלי (מופרדים באמצעות ':') ושם ממשק אופציונלי (מופרדים באמצעות ''), עם תמיכה בפורמטים הבאים:
RegisterInetLayerErrorFormatter(void)
void
רושמים מעצב שגיאות טקסט לשגיאות בשכבת Inet.
SocketsIPv4JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsIPv6JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsSetMulticastLoopback(int aSocket, bool aLoopback, int aProtocol, int aOption)
SocketsSetMulticastLoopback(int aSocket, IPVersion aIPVersion, bool aLoopback)

מחלקות

nl::Inet::AsyncDNSResolverSockets

זוהי מחלקה פנימית ל-InetLayer שמספקת ממשקי API של עזרה לרזולוציית DNS (Asynchronous Domain Name System) ב-InetLayer.

nl::Inet::DNSResolver

זוהי מחלקה פנימית ל-InetLayer שמספקת את הפשטה של רזולוציית ה-DNS ב-InetLayer.

nl::Inet::EndPointBasis

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

nl::Inet::IPAddress

כתובת פרוטוקול האינטרנט.

nl::Inet::IPEndPointBasis

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

nl::Inet::IPPacketInfo

מידע על הודעה/חיבור נכנסים/יוצאים.

nl::Inet::IPPrefix

קידומת כתובת של פרוטוקול אינטרנט.

nl::Inet::InetLayer

הפעולה הזו מספקת גישה לשירותי אינטרנט, כולל טיימרים, רזולוציית DNS, העברת רשת TCP, תעבורת רשת UDP ותעבורת נתונים גולמית ברשת, עבור שרשור יחיד.

nl::Inet::InetLayerBasis

זהו הסיווג הבסיסי של אובייקטים שנספרו כהפניות, שמנוהלים על ידי אובייקט InetLayer.

nl::Inet::InterfaceAddressIterator

איטרטור לרשימת כתובות ה-IP של ממשק הרשת של המערכת.

nl::Inet::InterfaceIterator

איטרטור לרשימת ממשקי הרשת של המערכת.

nl::Inet::RawEndPoint

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

nl::Inet::SocketEvents

ייצוג של קבוצת אירועי קלט/פלט (I/O) המבוקשים/הממתינים לשקע.

nl::Inet::TCPEndPoint

אובייקטים מהמחלקה הזו מייצגים נקודות קצה להעברת TCP.

nl::Inet::TunEndPoint

האובייקטים במחלקה הזו מייצגים ממשקי מנהרה.

nl::Inet::UDPEndPoint

אובייקטים מהמחלקה הזו מייצגים נקודות קצה להעברת UDP.

התאגדויות

nl::Inet::PeerSockAddr

מרחבי שמות

nl::Inet::Platform

ספירות

@7

 @7

ההגדרות של סוגי האירועים בשכבה Inet.

תכונות
kInetEvent_DNSResolveComplete

האירוע השלמה של פענוח שם ה-DNS.

kInetEvent_RawDataReceived

האירוע של קליטת נתונים מעל נקודת קצה גולמית של InetLayer.

kInetEvent_TCPConnectComplete

האירוע להשלמת חיבור TCP.

kInetEvent_TCPConnectionReceived

האירוע של קליטת חיבור TCP.

kInetEvent_TCPDataReceived

האירוע של קבלת נתונים בחיבור TCP.

kInetEvent_TCPDataSent

האירוע של העברת הנתונים בחיבור TCP.

kInetEvent_TCPError

האירוע של שגיאה בחיבור TCP.

kInetEvent_TunDataReceived

האירוע של קבלת נתונים במנהרת Weave.

kInetEvent_UDPDataReceived

האירוע של קבלת נתונים באמצעות UDP.

DNSOptions

 DNSOptions

אפשרויות לשליטה על אופן ביצוע הפענוח של כתובת ה-IP.

תכונות
kDNSOption_AddrFamily_Any

החזרת כתובות IPv4 ו/או IPv6 לפי הסדר שמוחזר על ידי שרת השמות.

kDNSOption_AddrFamily_IPv4Only

החזרת כתובות IPv4 בלבד.

kDNSOption_AddrFamily_IPv4Preferred

מחזירים כתובות IPv4 ו/או IPv6, כאשר כתובות IPv4 רשומות ראשונות.

kDNSOption_AddrFamily_IPv6Only

החזרת כתובות IPv6 בלבד.

kDNSOption_AddrFamily_IPv6Preferred

מחזירים כתובות IPv4 ו/או IPv6, כאשר כתובות IPv6 רשומות ראשונות.

kDNSOption_AddrFamily_Mask

סיביות בתוך ערך של מספר שלם ב-DNSOptions, שמייצג את משפחת הכתובות הרצויה.

kDNSOption_Flags_Mask

סיביות בתוך ערך של מספר שלם ב-DNSOptions השמור לדגלים.

kDNSOption_ValidFlags

קבוצת כל הסימונים החוקיים של DNSOption.

IPAddressType

 IPAddressType

משפחת כתובות של פרוטוקולי אינטרנט.

ערכים מסוג IPAddressType מוחזרים באמצעות השיטה IPAddress::Type(). הם מציינים את משפחת הכתובות הנכללת בשימוש בכתובת.

תכונות
kIPAddressType_Any

כתובת האינטרנט שלא צוינה (ללא קשר לגרסת הפרוטוקול)

kIPAddressType_IPv4

פרוטוקול אינטרנט גרסה 4.

kIPAddressType_IPv6

פרוטוקול אינטרנט גרסה 6.

kIPAddressType_Unknown

לא בשימוש.

IPProtocol

 IPProtocol

המספרים של חלק מהפרוטוקולים במשפחת ה-IP.

תכונות
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

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

ערכים מסוג IPV6MulticastGroup משמשים לקריאה ל-method IPAddress::MakeIPv6Multicast(). הם מציינים מזהי קבוצה ייחודיים שרשומים על ידי IETF ב-IANA.

תכונות
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

הגרסה של פרוטוקול ה-IP שבו נעשה שימוש.

תכונות
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

דגלים ל-multicast של פרוטוקול אינטרנט v6.

ערכים מסוג IPv6MulticastFlag משמשים להפעלת השיטות IPAddress::MakeIPv6Multicast(). הם מציינים את סוג כתובת ה-multicast של IPv6 שצריך ליצור. מספרים אלה רשומים על ידי IETF ב-IANA.

תכונות
kIPv6MulticastFlag_Prefix

הכתובת של השידורים מרובים (1) מבוססת על קידומת רשת.

kIPv6MulticastFlag_Transient

הכתובת של שידורים מרובים היא (1) זמנית (כלומר, מוקצית באופן דינמי) ולא (0) ידועה (כלומר, שהוקצה ל-IANA).

IPv6MulticastScope

 IPv6MulticastScope

היקף כתובת multicast של פרוטוקול אינטרנט.

ערכים מסוג IPv6MulticastScope משמשים לקריאה ל-method IPAddress::MakeIPv6Multicast(). הם מציינים את ההיקף הניתן לניתוב של קבוצת השידורים מרובים שצוינה על ידי התוצאה. מספרים אלה רשומים על ידי IETF ב-IANA.

תכונות
kIPv6MulticastScope_Admin

היקף הרשאות מקומיות.

kIPv6MulticastScope_Global

היקף גלובלי.

kIPv6MulticastScope_IPv4

היקף Realm-local ("IPv4").

kIPv6MulticastScope_Interface

היקף מקומי בממשק.

kIPv6MulticastScope_Link

היקף מקומי של קישור.

kIPv6MulticastScope_Organization

היקף מקומי של הארגון.

kIPv6MulticastScope_Site

היקף הרשאות מקומיות.

ערכי דף

InterfaceId

struct netif * InterfaceId

אינדיקטור לממשקי הרשת של המערכת.

ניידות תלויה בכך שלעולם לא תהיה עד לכינוי הזה. בעתיד ייתכן שהוא יוחלף בשכבת בטון אטומה.

שימו לב: המונח "מזהה ממשק" מתייחס גם באופן מקובל ל-64 הביטים התחתונים של כתובת IPv6 בכל המסמכים הרלוונטיים של תקני IETF, שבהם נעשה שימוש לעתים קרובות בקיצור "IID". בטקסט זה, המונח "מחוון ממשק" מתייחס לערכים מסוג כינוי זה.

משתנים

sIOCTLSocket

int sIOCTLSocket = -1

פונקציות

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

סגירת השקע הגלובלי שנוצר על ידי GetIOCTLSocket.

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

NB: ביחס ל-GetIOCTLSocket, הפונקציה הזו לא בטוחה לשרשורים.

FormatInetLayerError

bool FormatInetLayerError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

בהינתן שגיאת Inet Layer, מחזירה מחרוזת C קטועה של NULL, המסווגת על ידי בני אדם, שמתארת את השגיאה.

פרטים
פרמטרים
[in] buf
מאגר הנתונים הזמני שאליו תוצב מחרוזת השגיאה.
[in] bufSize
גודל מאגר הנתונים הזמני שסופק בבייטים.
[in] err
השגיאה שתוארה.
החזרות
True אם מחרוזת תיאור נכתבה למאגר הנתונים הזמני.
החזרות
false אם השגיאה שסופקה לא הייתה שגיאת Inet Layer.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

מחזירה socket גלובלי לשימוש כללי שיכול לשמש להפעלה של IOCTL מסוימות ברשת.

הפונקציה הזו בטוחה לשרשורים בכל הפלטפורמות.

GetInterfaceName

NL_DLL_EXPORT INET_ERROR GetInterfaceName(
  InterfaceId intfId,
  char *nameBuf,
  size_t nameBufSize
)

קבלת שם של ממשק רשת.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf. The name of the unspecified network interface is the empty
string.

פרטים
פרמטרים
[in] intfId
ממשק רשת
[in] nameBuf
אזור הזיכרון שבו צריך לכתוב את שם הממשק
[in] nameBufSize
גודל האזור, המצוין על ידי nameBuf
ערכים מוחזרים
INET_NO_ERROR
תוצאה מוצלחת, שם הממשק נכתב
INET_ERROR_NO_MEMORY
השם גדול מדי ולא ניתן לכתוב אותו במאגר
other
שגיאת מערכת או שגיאה אחרת

INET_IsInetEvent

bool INET_IsInetEvent(
  Weave::System::EventType aType
)

צריך לבדוק אם סוג האירוע System::EventType הוא סוג אירוע חוקי של שכבת Inet.

פרטים
פרמטרים
[in] aType
אירוע מסוג Weave System Layer.
החזרות
TRUE אם הוא נמצא בטווח הנקוב; אחרת, FALSE.

InterfaceNameToId

NL_DLL_EXPORT INET_ERROR InterfaceNameToId(
  const char *intfName,
  InterfaceId & intfId
)

חפשו את השם שצוין ברשימת ממשקי הרשתות.

On LwIP, this function must be called with the LwIP stack lock acquired.

The \c intfId parameter is not updated unless the value returned is
\c INET_NO_ERROR. It should be initialized with \c INET_NULL_INTERFACEID
before calling this function.

פרטים
פרמטרים
[in] intfName
של ממשק הרשת כדי למצוא
[out] intfId
אינדיקטור של ממשק הרשת להקצאה
ערכים מוחזרים
INET_NO_ERROR
הצלחה, ממשק הרשת צוין
INET_ERROR_UNKNOWN_INTERFACE
לא נמצא ממשק רשת
other
שגיאת מערכת או שגיאה אחרת

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

NetmaskToPrefixLength

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

חישוב אורך קידומת מסיכת רשת באורך משתנה.

ParseHostAndPort

INET_ERROR ParseHostAndPort(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort
)

נתחו מחרוזת שאנשים יכולים לקרוא, המכילה מארח או כתובת IP ומספר יציאה אופציונלי (מופרדים בתו ':'), עם תמיכה בפורמטים הבאים:

  • :
  • :
  • []:

פרטים
פרמטרים
[in] aString
המחרוזת שאנשים יכולים לנתח.
[in] aStringLen
האורך, בתווים, של aString.
[out] aHost
מצביע על החלק של שם המארח במחרוזת המנותחת.
[out] aHostLen
האורך, בתווים, של aHost.
[out] aPort
מספר היציאה, אם קיים, ונותח בהצלחה. אחרת, יהיה 0.
החזרות
INET_ERROR_INVALID_HOST_NAME אם הקלט לניתוח הוא באורך אפס או פגום בצורה אחרת.
החזרות
INET_ERROR_HOST_NAME_TOO_LONG אם שם המארח חורג מ-253 תווים.
החזרות
INET_NO_ERROR בהצלחה.

ParseHostPortAndInterface

INET_ERROR ParseHostPortAndInterface(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort,
  const char *& aInterface,
  uint16_t & aInterfaceLen
)

נתחו מחרוזת שאנשים יכולים לקרוא, המכילה מארח או כתובת IP, מספר יציאה אופציונלי (מופרדים באמצעות ':') ושם ממשק אופציונלי (מופרדים באמצעות ''), עם תמיכה בפורמטים הבאים:

  • %
  • :
  • :%
  • %
  • :
  • :%
  • %
  • []:
  • []:%

פרטים
פרמטרים
[in] aString
המחרוזת שאנשים יכולים לנתח.
[in] aStringLen
האורך, בתווים, של aString.
[out] aHost
מצביע על החלק של שם המארח במחרוזת המנותחת.
[out] aHostLen
האורך, בתווים, של aHost.
[out] aPort
מספר היציאה, אם קיים, ונותח בהצלחה. אחרת, יהיה 0.
[out] aInterface
מצביע על חלק הממשק של המחרוזת המנותחת.
[out] aInterfaceLen
האורך, בתווים, של aInterface.
החזרות
INET_ERROR_INVALID_HOST_NAME אם הקלט לניתוח הוא באורך אפס או פגום בצורה אחרת.
החזרות
INET_ERROR_HOST_NAME_TOO_LONG אם שם המארח חורג מ-253 תווים.
החזרות
INET_NO_ERROR בהצלחה.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

רושמים מעצב שגיאות טקסט לשגיאות בשכבת Inet.

SocketsIPv4JoinLeaveMulticastGroup

INET_ERROR SocketsIPv4JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsIPv6JoinLeaveMulticastGroup

INET_ERROR SocketsIPv6JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  bool aLoopback,
  int aProtocol,
  int aOption
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  IPVersion aIPVersion,
  bool aLoopback
)