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)
}
تعداد
تعريفات نوع حدث طبقة 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
}
تعداد
خيارات التحكم في كيفية إجراء تحليل عنوان IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
تعداد
مجموعة عنوان بروتوكول الإنترنت
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
تعداد
عدد بعض البروتوكولات في مجموعة عناوين IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
تعداد
معرّفات مجموعات البث المتعدد لبروتوكول الإنترنت
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
تعداد
إصدار بروتوكول IP المُستخدَم.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
تعداد
علامات البث المتعدد - الإصدار 6 من بروتوكول الإنترنت
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
تعداد
نطاق عنوان البث المتعدد لبروتوكول الإنترنت.

تعريف الأنواع

InterfaceId تعريف الكتابة
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، يتم عرض سلسلة C NULL يتم إنهاؤها ويمكن لشخص عادي قراءتها لوصف الخطأ.
GetIOCTLSocket(void)
int
لعرض مقبس عمومي للأغراض العامة مفيد لاستدعاء أرقام 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 التي توفر واجهات برمجة تطبيقات مساعِدة لتحليل نظام أسماء النطاقات (DNS) غير المتزامن في 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

يمثل مجموعة من أحداث وحدات الإدخال والإخراج المطلوبة أو المعلقة على المقبس.

nl::Inet::TCPEndPoint

تمثل الكائنات من هذه الفئة نقاط نهاية نقل بروتوكول التحكم بالنقل.

nl::Inet::TunEndPoint

تمثل الكائنات من هذه الفئة واجهات النفق.

nl::Inet::UDPEndPoint

تمثّل الكائنات من هذه الفئة نقاط نهاية نقل UDP.

الاتحادات

nl::Inet::PeerSockAddr

مساحات الاسم

nl::Inet::Platform

عمليات التعداد

7@

 @7

تعريفات نوع حدث طبقة Inet.

أماكن إقامة
kInetEvent_DNSResolveComplete

حدث اكتمال تحليل اسم نظام أسماء النطاقات.

kInetEvent_RawDataReceived

حدث استقبال البيانات عبر نقطة نهاية InetLayer غير مُنسَّقة.

kInetEvent_TCPConnectComplete

حدث اكتمال اتصال TCP.

kInetEvent_TCPConnectionReceived

حدث استقبال اتصال TCP.

kInetEvent_TCPDataReceived

حدث استقبال البيانات عبر اتصال TCP.

kInetEvent_TCPDataSent

يشير ذلك المصطلح إلى حدث نقل البيانات عبر اتصال بروتوكول التحكم بالنقل.

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 لاستدعاء الطريقة IPAddress::MakeIPv6Multicast(). وهي تشير إلى معرّفات المجموعات المميزة المسجلة بواسطة مجموعة مهندسي شبكة الإنترنت (IETF) في منظمة IANA (المنظمة المعنية بأرقام الإنترنت المخصصة).

أماكن إقامة
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

إصدار بروتوكول IP المُستخدَم.

أماكن إقامة
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

علامات البث المتعدد - الإصدار 6 من بروتوكول الإنترنت

تُستخدم قيم النوع IPv6MulticastFlag لاستدعاء طرق IPAddress::MakeIPv6Multicast(). تشير إلى نوع عنوان البث المتعدد IPv6 المراد إنشاؤه. ويتم تسجيل هذه الأرقام من قِبل مجموعة مهندسي شبكة الإنترنت (IETF) لدى منظمة IANA (المنظمة المعنية بأرقام الإنترنت المخصصة).

أماكن إقامة
kIPv6MulticastFlag_Prefix

يستند عنوان البث المتعدد إلى بادئة الشبكة (1).

kIPv6MulticastFlag_Transient

عنوان البث المتعدد هو (1) مؤقت (أي يتم تعيينه ديناميكيًا) وليس (0) معروفًا جيدًا (أي تم تعيينه من قبل هيئة أرقام الإنترنت المخصصة (IANA)).

IPv6MulticastScope

 IPv6MulticastScope

نطاق عنوان البث المتعدد لبروتوكول الإنترنت.

يتم استخدام قيم النوع IPv6MulticastScope لاستدعاء الطريقة IPAddress::MakeIPv6Multicast(). فهي تشير إلى النطاق القابل للتوجيه لمجموعة البث المتعدد التي تحددها النتيجة. ويتم تسجيل هذه الأرقام من قِبل مجموعة مهندسي شبكة الإنترنت (IETF) لدى منظمة IANA (المنظمة المعنية بأرقام الإنترنت المخصصة).

أماكن إقامة
kIPv6MulticastScope_Admin

النطاق المحلي للنطاق.

kIPv6MulticastScope_Global

النطاق العمومي.

kIPv6MulticastScope_IPv4

النطاق المحلي ("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 العام مفتوحًا، وبالتالي سيتم تسجيلها كتسرّب.

ملاحظة: هذه الدالة غير آمنة لسلاسل المحادثات بالنسبة إلى الدالة GetIOCTLSocket.

FormatInetLayerError

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

بالنظر إلى خطأ في طبقة Inet، يتم عرض سلسلة C NULL يتم إنهاؤها ويمكن لشخص عادي قراءتها لوصف الخطأ.

التفاصيل
المعلمات
[in] buf
المخزن المؤقت الذي سيتم وضع سلسلة الخطأ فيه.
[in] bufSize
حجم المخزن المؤقت المقدم بالبايت.
[in] err
الخطأ المطلوب وصفه.
المرتجعات
true إذا تمت كتابة سلسلة وصف في المخزن المؤقت المقدم.
المرتجعات
false إذا لم يكن الخطأ المقدم خطأ Inet Layer.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

لعرض مقبس عمومي للأغراض العامة مفيد لاستدعاء أرقام 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
طول الواجهة، بالحروف.
المرتجعات
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
)