nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

تمثّل كائنات هذه الفئة نقاط نهاية شبكة IP الأولية.

ملخّص

تضم طبقة Nest Inet Layer طرقًا للتفاعل مع نقاط نهاية شبكة IP (مقابس SOCK_RAW على أنظمة Linux والأنظمة المشتقّة من BSD) أو كتل التحكم في بروتوكول LwIP الأولي، وفقًا لإعدادات النظام وفقًا لذلك.

الاكتساب

موروث من: nl::Inet::IPEndPointBasis

السمات العامة

IPProto
IPProtocol
إصدار من بروتوكول رسائل التحكم في شبكة الإنترنت (ICMP)
IPVer
IPVersion
إصدار بروتوكول الإنترنت.

الدوال العامة

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
ربط نقطة النهاية بعنوان IP للواجهة.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
ربط نقطة النهاية الأولية بعنوان نطاق محلي لرابط IPv6 في فهرس الواجهة المحدد
BindInterface(IPAddressType addrType, InterfaceId intf)
ربط نقطة النهاية بواجهة شبكة.
Close(void)
void
أغلق نقطة النهاية.
Free(void)
void
يمكنك إغلاق نقطة النهاية وإعادة تدوير الذاكرة.
GetBoundInterface(void)
InterfaceId
احصل على الواجهة المرتبطة في نقطة النهاية هذه.
Listen(void)
تحضير نقطة النهاية لتلقّي رسائل بروتوكول رسائل التحكّم في الإنترنت (ICMP).
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
إرسال رسالة ICMP إلى الوجهة المحدّدة.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
مرادف لكلمة SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
إرسال رسالة ICMP إلى عنوان الوجهة المحدَّد.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
اضبط معلمات الفلتر ICMP6 في مكدس الشبكة.

السمات العامة

IPProto

IPProtocol IPProto

إصدار من بروتوكول رسائل التحكم في شبكة الإنترنت (ICMP)

في حين أن هذا الحقل هو متغير فئة قابل للتغيير، إلا أنه لا يمكن تعديله في الفئة.

بروتوكول IPV

IPVersion IPVer

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

في حين أن هذا الحقل هو متغير فئة قابل للتغيير، إلا أنه لا يمكن تعديله في الفئة.

الدوال العامة

الارتباط

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

ربط نقطة النهاية بعنوان IP للواجهة.

يربط نقطة النهاية بعنوان IP المحدد لواجهة الشبكة.

التفاصيل
المَعلمات
[in] addrType
إصدار البروتوكول لعنوان IP
[in] addr
عنوان IP (يجب أن يكون عنوان واجهة)
[in] intfId
مؤشر اختياري لواجهة الشبكة
قيم الإرجاع
INET_NO_ERROR
النجاح: نقطة النهاية المرتبطة بالمعالجة
INET_ERROR_INCORRECT_STATE
تم ربط نقطة النهاية سابقًا
INET_NO_MEMORY
ذاكرة غير كافية لنقطة النهاية
INET_ERROR_UNKNOWN_INTERFACE
في بعض الأنظمة الأساسية، لا تتوفر الواجهة المحددة اختياريًا.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType لا يتطابق مع IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType يساوي kIPAddressType_Any، أو نوع addr لا يساوي addrType.
other
خطأ آخر في النظام أو في النظام الأساسي

على LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

ربط نقطة النهاية الأولية بعنوان نطاق محلي لرابط IPv6 في فهرس الواجهة المحدد

تعمل أيضًا على تعيين العديد من خيارات مقبس IPv6 المناسبة لنقل الحزم من وإلى وجهات الاتصال على الرابط.

يربط نقطة النهاية بعنوان رابط IPv6 المحلي addr على واجهة الشبكة المُشار إليها من خلال intf.

التفاصيل
المَعلمات
[in] intf
معرّف الواجهة لتحديد نطاق العنوان
[in] addr
كائن IPAddress لرابط نطاق محلي عبر IPv6.
المَعلمات
[in] intf
مؤشر واجهة الشبكة
[in] addr
عنوان IP (يجب أن يكون عنوان واجهة)
قيم الإرجاع
INET_NO_ERROR
النجاح: نقطة النهاية المرتبطة بالمعالجة
INET_ERROR_INCORRECT_STATE
تم ربط نقطة النهاية سابقًا
INET_NO_MEMORY
ذاكرة غير كافية لنقطة النهاية
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType لا يتطابق مع IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr ليس عنوانًا محليًا لرابط IPv6 أو intf هو INET_NULL_INTERFACEID.
other
خطأ آخر في النظام أو في النظام الأساسي
المرتجعات
INET_NO_ERROR عند النجاح، أو خطأ في نظام التشغيل الذي تم تعيينه عند الفشل. يمكن أن تؤدي قائمة المعلمات غير الصالحة إلى INET_ERROR_WRONG_ADDRESS_TYPE. إذا كانت نقطة النهاية الأولية مرتبطة بالفعل أو قيد الاستماع، يتم عرض INET_ERROR_INCORRECT_STATE. اربط نقطة النهاية بعنوان رابط IPv6 محلي للواجهة.

على LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

ربط نقطة النهاية بواجهة شبكة.

يربط نقطة النهاية بعنوان IP المحدد لواجهة الشبكة.

التفاصيل
المَعلمات
[in] addrType
إصدار بروتوكول لعنوان IP.
[in] intf
مؤشر واجهة الشبكة.
قيم الإرجاع
INET_NO_ERROR
النجاح: نقطة النهاية المرتبطة بالمعالجة
INET_NO_MEMORY
ذاكرة غير كافية لنقطة النهاية
INET_ERROR_NOT_IMPLEMENTED
لم تكتمل تنفيذ النظام.
INET_ERROR_UNKNOWN_INTERFACE
في بعض الأنظمة الأساسية، لا تتوفر الواجهة.
other
خطأ آخر في النظام أو في النظام الأساسي

على LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل.

إغلاق

void Close(
  void
)

أغلق نقطة النهاية.

في حال mState != kState_Closed، يتم إغلاق نقطة النهاية وإزالتها من مجموعة نقاط النهاية المؤهَّلة لأحداث الاتصال.

على أنظمة LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل.

مجاني

void Free(
  void
)

يمكنك إغلاق نقطة النهاية وإعادة تدوير الذاكرة.

يستدعي الإجراء Close، ثم يستدعي الطريقة InetLayerBasis::Release لإعادة العنصر إلى مساحة التخزين المجمّعة للذاكرة.

على أنظمة LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

احصل على الواجهة المرتبطة في نقطة النهاية هذه.

التفاصيل
المرتجعات
InterfaceId رقم تعريف الواجهة المرتبطة

استماع

INET_ERROR Listen(
  void
)

تحضير نقطة النهاية لتلقّي رسائل بروتوكول رسائل التحكّم في الإنترنت (ICMP).

إذا كانت قيمة السمة mState هي kState_Listening، لن يتم تنفيذ أي عملية، وإلا سيتم ضبط mState على kState_Listening ويتم إعداد نقطة النهاية لتلقّي رسائل ICMPv6، وفقًا لدلالات النظام الأساسي.

التفاصيل
قيم الإرجاع
INET_NO_ERROR
ودائمًا.

على LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

إرسال رسالة ICMP إلى الوجهة المحدّدة.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

التفاصيل
المَعلمات
[in] pktInfo
معلومات وجهة الرسالة
[in] msg
المخزن المؤقت للحزمة الذي يحتوي على رسالة UDP
[in] sendFlags
علامات خيار الإرسال الاختيارية
قيم الإرجاع
INET_NO_ERROR
نجاح: تمت إضافة msg إلى قائمة الانتظار للنقل.
INET_ERROR_NOT_SUPPORTED
أن النظام لا يتيح العملية المطلوبة.
INET_ERROR_WRONG_ADDRESS_TYPE
عنوان الوجهة وعنوان الواجهة المرتبطة ليس لهما إصدارات بروتوكول مطابِقة أو نوع عنوان مطابق.
INET_ERROR_MESSAGE_TOO_LONG
لا يحتوي msg على رسالة ICMP الكاملة.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
في بعض الأنظمة الأساسية، لم تتم إضافة سوى جزء مقتطَع من msg إلى قائمة الانتظار للنقل.
other
خطأ آخر في النظام أو في النظام الأساسي

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

مرادف لكلمة SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

إرسال رسالة ICMP إلى عنوان الوجهة المحدَّد.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

التفاصيل
المَعلمات
[in] addr
عنوان IP الوجهة
[in] intfId
مؤشر اختياري لواجهة الشبكة
[in] msg
المخزن المؤقت للحزمة الذي يحتوي على رسالة UDP
[in] sendFlags
علامات خيار الإرسال الاختيارية
قيم الإرجاع
INET_NO_ERROR
نجاح: تمت إضافة msg إلى قائمة الانتظار للنقل.
INET_ERROR_NOT_SUPPORTED
أن النظام لا يتيح العملية المطلوبة.
INET_ERROR_WRONG_ADDRESS_TYPE
عنوان الوجهة وعنوان الواجهة المرتبطة ليس لهما إصدارات بروتوكول مطابِقة أو نوع عنوان مطابق.
INET_ERROR_MESSAGE_TOO_LONG
لا يحتوي msg على رسالة ICMP الكاملة.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
في بعض الأنظمة الأساسية، لم تتم إضافة سوى جزء مقتطَع من msg إلى قائمة الانتظار للنقل.
other
خطأ آخر في النظام أو في النظام الأساسي

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

اضبط معلمات الفلتر ICMP6 في مكدس الشبكة.

يمكنك تطبيق معلمات فلترة ICMPv6 للرموز في aICMPTypes على نقطة النهاية الأساسية في حزمة شبكات النظام.

التفاصيل
المَعلمات
[in] numICMPTypes
طول المصفوفة عند aICMPTypes
[in] aICMPTypes
مجموعة رموز نوع ICMPv6 التي ستتم تصفيتها.
قيم الإرجاع
INET_NO_ERROR
النجاح: تعيين معلمات التصفية
INET_ERROR_NOT_IMPLEMENTED
لا ينفّذ النظام
INET_ERROR_WRONG_ADDRESS_TYPE
نقطة النهاية ليست من نوع IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
نقطة النهاية ليست من نوع ICMP6
other
خطأ آخر في النظام أو في النظام الأساسي