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)
מזהי קבוצת Multicast של פרוטוקול אינטרנט.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
טיפוסים בני מנייה (enum)
הגרסה של פרוטוקול ה-IP שנעשה בו שימוש.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
טיפוסים בני מנייה (enum)
סימונים של פרוטוקול אינטרנט גרסה 6 של Multicast.
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
טיפוסים בני מנייה (enum)
היקף הכתובת של פרוטוקול אינטרנט מרובה-ערוצים.

Typedefs

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

משתנים

sIOCTLSocket = -1
int

פונקציות

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
סגירת ה-socket הגלובלי שנוצר על ידי 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 Layer.
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 של מערכת שמות דומיין אסינכרונית ב-InetLayer.

nl::Inet::DNSResolver

זוהי מחלקה פנימית ל-InetLayer שמספקת הפשטה של רזולוציית DNS (Domain Name System) ב-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

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

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

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

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

מאפיינים
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

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

מאפיינים
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

סימונים של פרוטוקול אינטרנט גרסה 6 של Multicast.

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

מאפיינים
kIPv6MulticastFlag_Prefix

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

kIPv6MulticastFlag_Transient

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

IPv6MulticastScope

 IPv6MulticastScope

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

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

מאפיינים
kIPv6MulticastScope_Admin

היקף מקומי-תחום.

kIPv6MulticastScope_Global

היקף גלובלי.

kIPv6MulticastScope_IPv4

היקף מסוג Realm-local (IPv4).

kIPv6MulticastScope_Interface

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

kIPv6MulticastScope_Link

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

kIPv6MulticastScope_Organization

היקף ברמת הארגון.

kIPv6MulticastScope_Site

היקף מקומי-תחום.

Typedefs

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
)

סגירת ה-socket הגלובלי שנוצר על ידי 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'.
החזרות
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 Layer.

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
)