nl::رقم Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

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

الملخّص

تشمل طبقة Nest Inet Sandbox طرقًا للتفاعل مع نقاط نهاية شبكة 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 المكدس مسبقًا.

ربط vIP6Link

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 المكدس مسبقًا.

التجليد

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
)

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

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

استماع

INET_ERROR Listen(
  void
)

تجهيز نقطة النهاية لتلقي رسائل ICMP.

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

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

على LwIP، يجب ألا يتم استدعاء هذه الطريقة باستخدام قفل LwIP المكدس مسبقًا

إرسال الرسالة

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
خطأ آخر في النظام أو النظام الأساسي

إرسال إلى

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

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

إرسال إلى

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
خطأ آخر في النظام أو النظام الأساسي

فلتر SetICMP

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
خطأ آخر في النظام أو النظام الأساسي