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) typedef
void(*
نوع وظيفة معالجة حدث استقبال نص الرسالة
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
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

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

يتم إعداد العناصر في حالة "جاهزة"، ثم المتابعة إلى حالة "مرتبط" بعد الربط بعنوان واجهة محلّية، ثم المتابعة إلى حالة "الاستماع" عندما تكون هناك حالات مواصلة تسجيل معالجة الأحداث لتلقّي رسائل بروتوكول رسائل التحكّم في الإنترنت (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

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

يتم إعداد العناصر في حالة "جاهزة"، ثم المتابعة إلى حالة "مرتبط" بعد الربط بعنوان واجهة محلّية، ثم المتابعة إلى حالة "الاستماع" عندما تكون هناك حالات مواصلة تسجيل معالجة الأحداث لتلقّي رسائل بروتوكول رسائل التحكّم في الإنترنت (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
)

إنت

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
المرتجعات
مؤشر إلى معلومات العنوان عند النجاح؛ وإلا، تصبح فارغة إذا لم تكن هناك مساحة كافية في الحزمة لمعلومات العنوان.

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