nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

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

ملخّص

الاكتساب

يتم اكتسابه من: nl::Inet::EndPointBasis
الفئات الفرعية المعروفة المباشرة:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

الأنواع العامة

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
تعداد
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
تعداد
إرسال علامات الخيارات لطريقة SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) تعريف الكتابة
void(*
نوع وظيفة معالجة حدث استقبال نص الرسالة.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) تعريف الكتابة
void(*
نوع وظيفة معالجة حدث خطأ الاستقبال.

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

OnMessageReceived
تفويض وظيفة معالجة حدث استلام رسالة نقطة النهاية
OnReceiveError
تفويض وظيفة معالجة حدث الخطأ في نقطة النهاية.
mState
enum nl::Inet::IPEndPointBasis::@8
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.

السمات المحمية

mBoundIntfId
InterfaceId

وظائف عامة

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
انضم إلى مجموعة بث متعدّد عناوين IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
مغادرة مجموعة بث متعدّد عناوين IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
يمكنك تحديد ما إذا كان يجب تكرار حركة بيانات البث المتعدد لعناوين IP مرة أخرى.

الدوال المحمية

Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO(uint16_t aPort)
void
Init(InetLayer *aInetLayer)
void
PrepareIO(void)
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

الدوال الثابتة العامة

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

الدوال الثابتة المحمية

GetPacketInfo(Weave::System::PacketBuffer *buf)
الحصول على معلومات عن مصدر طبقة IP لبروتوكول LwIP وعن الوجهة

الأنواع العامة

8

 @8

الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.

يتم إعداد العناصر في حالة "جاهز" انتقل إلى علامة التبويب "bound" بعد الربط بعنوان واجهة محلية، ثم انتقِل إلى زر "الاستماع" عند تسجيل عمليات الاستمرار لمعالجة الأحداث لاستقبال رسائل بروتوكول رسائل التحكّم في الإنترنت (ICMP).

ملاحظة: يتم ربط التعداد على مستوى الحالة kBasisState_Closed بـ kState_Ready لأسباب سابقة تتعلّق بالتوافق الثنائي. تهدف kState_Closed الحالية إلى تحديد الفرق بين "لم يتم فتحه بعد" بشكل منفصل. و"سبق أن تم فتحها مغلق الآن" التي كانت متوفّرة سابقًا في الحالتين kState_Ready وkState_Closed.

أماكن إقامة
kState_Bound

تم تضمين نقطة النهاية، ولكن لا يمكن الاستماع إليها.

kState_Closed

تم إغلاق نقطة النهاية وأصبحت جاهزة للإصدار.

kState_Listening

نقطة نهاية تتلقى مخططات البيانات.

kState_Ready

تم إعداد نقطة النهاية، ولكن لم يتم فتحها.

9@

 @9

إرسال علامات الخيارات لطريقة SendMsg.

أماكن إقامة
kSendFlag_RetainBuffer

عدم التسبب في تلف الرسالة مباشرةً في قائمة الانتظار.

ضَع نسخة في قائمة المحتوى التالي.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

نوع وظيفة معالجة حدث استقبال نص الرسالة.

توفير وظيفة من هذا النوع للعضو المفوَّض في OnMessageReceived لمعالجة أحداث استلام الرسائل النصية في endPoint حيث يكون msg هو نص الرسالة المُستلَمة من المُرسِل على senderAddr

التفاصيل
المعلمات
[in] endPoint
نقطة النهاية المرتبطة بالحدث.
[in] msg
تم استلام نص الرسالة.
[in] senderAddr
عنوان IP للمرسِل.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

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

يتم توفير وظيفة من هذا النوع للعضو المفوَّض في OnReceiveError لمعالجة أحداث خطأ الاستقبال في endPoint. توفّر الوسيطة err تفاصيل محدّدة حول نوع الخطأ.

التفاصيل
المعلمات
[in] endPoint
نقطة النهاية المرتبطة بالحدث.
[in] err
سبب الخطأ.

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

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

تفويض وظيفة معالجة حدث استلام رسالة نقطة النهاية

OnReceiveError

OnReceiveErrorFunct OnReceiveError

تفويض وظيفة معالجة حدث الخطأ في نقطة النهاية.

mState

enum nl::Inet::IPEndPointBasis::@8 mState

الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.

يتم إعداد العناصر في حالة "جاهز" انتقل إلى علامة التبويب "bound" بعد الربط بعنوان واجهة محلية، ثم انتقِل إلى زر "الاستماع" عند تسجيل عمليات الاستمرار لمعالجة الأحداث لاستقبال رسائل بروتوكول رسائل التحكّم في الإنترنت (ICMP).

ملاحظة: يتم ربط التعداد على مستوى الحالة kBasisState_Closed بـ kState_Ready لأسباب سابقة تتعلّق بالتوافق الثنائي. تهدف kState_Closed الحالية إلى تحديد الفرق بين "لم يتم فتحه بعد" بشكل منفصل. و"سبق أن تم فتحها مغلق الآن" التي كانت متوفّرة سابقًا في الحالتين kState_Ready وkState_Closed.

السمات المحمية

mBoundIntfId

InterfaceId mBoundIntfId

وظائف عامة

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

انضم إلى مجموعة بث متعدّد عناوين IP.

انضم إلى نقطة النهاية في مجموعة البث المتعدد المقدّمة على الواجهة المحددة.

التفاصيل
المعلمات
[in] aInterfaceId
مؤشر واجهة الشبكة المطلوب إضافتها إلى مجموعة البث المتعدد
[in] aAddress
مجموعة البث المتعدد لإضافة الواجهة إلى
قيم الإرجاع
INET_NO_ERROR
تم بنجاح: تمت إزالة مجموعة البث المتعدد
INET_ERROR_UNKNOWN_INTERFACE
واجهة شبكة غير معروفة، aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress ليس kIPAddressType_IPv4 أو kIPAddressType_IPv6 أو ليس بثًا متعدّدًا
other
خطأ آخر في النظام أو النظام الأساسي

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

مغادرة مجموعة بث متعدّد عناوين IP.

إزالة نقطة النهاية من مجموعة البث المتعدد المقدّمة على الواجهة المحددة

التفاصيل
المعلمات
[in] aInterfaceId
مؤشر واجهة الشبكة المراد إزالتها من مجموعة البث المتعدد
[in] aAddress
مجموعة البث المتعدد لإزالة الواجهة من
قيم الإرجاع
INET_NO_ERROR
تم بنجاح: تمت إزالة مجموعة البث المتعدد
INET_ERROR_UNKNOWN_INTERFACE
واجهة شبكة غير معروفة، aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress ليس kIPAddressType_IPv4 أو kIPAddressType_IPv6 أو ليس بثًا متعدّدًا
other
خطأ آخر في النظام أو النظام الأساسي

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

يمكنك تحديد ما إذا كان يجب تكرار حركة بيانات البث المتعدد لعناوين IP مرة أخرى.

حدِّد ما إذا كان يجب تكرار حركة بيانات البث المتعدد لعناوين IP إلى نقطة النهاية هذه أم لا.

التفاصيل
المعلمات
[in] aIPVersion
[in] aLoop
قيم الإرجاع
INET_NO_ERROR
النجاح: تم ضبط سلوك استرجاع البث المتعدد
other
خطأ آخر في النظام أو النظام الأساسي

الدوال المحمية

الارتباط

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Init

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

الدوال الثابتة العامة

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

الدوال الثابتة المحمية

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

الحصول على معلومات عن مصدر طبقة IP لبروتوكول LwIP وعن الوجهة

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

التفاصيل
المعلمات
[in] aBuffer
المخزن المؤقت للحزم الذي يحتوي على رسالة IP
المرتجعات
مؤشر إلى معلومات العنوان عند النجاح بخلاف ذلك، NULL إذا لم تكن هناك مساحة كافية في الحزمة لمعلومات العنوان.

في معظم الحالات، هذه الخدعة الخاصة بتخزين المعلومات قبل نجاح البيانات تعمل لأن المخزن المؤقت الأول في رسالة IP LwIP يحتوي على المساحة المستخدمة لعناوين Ethernet/IP/UDP. ومع ذلك، ونظرًا للحجم الحالي لبنية IPPacketInfo (40 بايت)، قد لا تكون هناك مساحة كافية لتخزين البنية مع الحمولة في مخزن تخزين مؤقت واحد للحزمة. من الناحية العملية، من المفترض أن يحدث هذا فقط لحزم IPv4 الكبيرة جدًا التي تصل بدون رأس Ethernet.