nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

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

ملخّص

تضم طبقة Nest Inet طُرقًا للتفاعل مع نقاط نهاية شبكة 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)

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

بروتوكول IPVer

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
success: مجموعة معلمات الفلتر
INET_ERROR_NOT_IMPLEMENTED
لا ينفذ النظام
INET_ERROR_WRONG_ADDRESS_TYPE
نقطة النهاية ليست من نوع IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
نقطة النهاية ليست من نوع ICMP6
other
خطأ آخر في النظام أو النظام الأساسي