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)
}
تعداد
تعريفات نوع حدث طبقة البيانات الداخلية.
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 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
بالنظر إلى خطأ في طبقة البيانات الداخلية، يتم عرض سلسلة C تم إنهاؤها ويمكن لشخص عادي قراءتها وتصف الخطأ.
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
تسجيل أداة تنسيق أخطاء النص لأخطاء طبقة الإدخال.
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

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

nl::Inet::TunEndPoint

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

nl::Inet::UDPEndPoint

تمثّل كائنات هذه الفئة نقاط نهاية النقل باستخدام بروتوكول UDP.

الاتحادات

nl::Inet::PeerSockAddr

مساحات الاسم

nl::Inet::Platform

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

@7

 @7

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

أماكن إقامة
kInetEvent_DNSResolveComplete

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

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

الإصدار الرابع من بروتوكول الإنترنت.

kIPAddressType_IPv6

الإصدار السادس من بروتوكول الإنترنت.

kIPAddressType_Unknown

غير مستخدَم.

IPProtocol

 IPProtocol

أعداد بعض البروتوكولات في مجموعة عناوين IP.

أماكن إقامة
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

الإصدار 6 من بروتوكول ICMP.

IPV6MulticastGroup

 IPV6MulticastGroup

معرِّفات مجموعة البث المتعدد لبروتوكول الإنترنت.

تُستخدم قيم النوع IPV6MulticastGroup لاستدعاء الطريقة IPAddress::MakeIPv6Multicast(). وهي تشير إلى معرّفات المجموعة المميزة التي سجلتها مجموعة مهندسي شبكة الإنترنت (IETF) لدى منظمة IANA (المنظمة المعنية بأرقام الإنترنت المخصصة).

أماكن إقامة
kIPV6MulticastGroup_AllRouters

RFC 4291

IPVersion

 IPVersion

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

أماكن إقامة
kIPVersion_4

IPv4

kIPVersion_6

الإصدار 6 من بروتوكول IP.

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

مؤشر لواجهات شبكة النظام

تعتمد قابلية النقل على عدم مشاهدة هذا الاسم المستعار مطلقًا. قد يتم استبدالها بفئة غير شفافة ملموسة في المستقبل.

ملاحظة جيدة: يشير مصطلح "معرف الواجهة" بشكل تقليدي أيضًا إلى الجزء السفلي من عنوان 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
)

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

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

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.
المرتجعات
true إذا كانت تقع ضمن النطاق العددي؛ وإلا، فخطأ.

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
)

تسجيل أداة تنسيق أخطاء النص لأخطاء طبقة الإدخال.

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
)