بروتوكول ICMPv6

تشمل هذه الوحدة وظائف تتحكم في اتصال ICMPv6.

الملخّص

التعدادات

otIcmp6Code{
  OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE = 0,
  OT_ICMP6_CODE_FRAGM_REAS_TIME_EX = 1
}
تعداد
رموز رسائل ICMPv6.
otIcmp6EchoMode{
  OT_ICMP6_ECHO_HANDLER_DISABLED = 0,
  OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY = 1,
  OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY = 2,
  OT_ICMP6_ECHO_HANDLER_ALL = 3
}
تعداد
أوضاع الرد على صدى ICMPv6.
otIcmp6Type{
  OT_ICMP6_TYPE_DST_UNREACH = 1,
  OT_ICMP6_TYPE_PACKET_TO_BIG = 2,
  OT_ICMP6_TYPE_TIME_EXCEEDED = 3,
  OT_ICMP6_TYPE_PARAMETER_PROBLEM = 4,
  OT_ICMP6_TYPE_ECHO_REQUEST = 128,
  OT_ICMP6_TYPE_ECHO_REPLY = 129,
  OT_ICMP6_TYPE_ROUTER_SOLICIT = 133,
  OT_ICMP6_TYPE_ROUTER_ADVERT = 134
}
تعداد
أنواع رسائل ICMPv6.

مواقد الخط

otIcmp6Code مَعلمة typetype
رموز رسائل ICMPv6.
otIcmp6EchoMode مَعلمة typetype
أوضاع الرد على صدى ICMPv6.
otIcmp6Handler مَعلمة typetype
تنفِّذ هذه البنية معالج رسائل ICMPv6.
otIcmp6Header مَعلمة typetype
struct otIcmp6Header
يمثل هذا النوع رأس ICMPv6.
otIcmp6ReceiveCallback)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader) مَعلمة typetype
void(*
ويسمح هذا الاستدعاء لـ OpenThread بإبلاغ تطبيق رسالة ICMPv6 المُستلَمة.
otIcmp6Type مَعلمة typetype
أنواع رسائل ICMPv6.

المتغيرات

OT_TOOL_PACKED_END

الدوال

otIcmp6GetEchoMode(otInstance *aInstance)
تشير هذه الدالة إلى ما إذا تم تفعيل معالجة ICMPv6 Echo.
otIcmp6RegisterHandler(otInstance *aInstance, otIcmp6Handler *aHandler)
تسجِّل هذه الدالة معالجًا لتوفير رسائل ICMPv6 المُستلَمة.
otIcmp6SendEchoRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, uint16_t aIdentifier)
ترسل هذه الدالة طلب ICMPv6 Echo عبر واجهة سلسلة المحادثات.
otIcmp6SetEchoMode(otInstance *aInstance, otIcmp6EchoMode aMode)
void
تحدد هذه الدالة ما إذا تم تفعيل معالجة ICMPv6 Echo أو لا.

التشريعات

otIcmp6Handler

تنفِّذ هذه البنية معالج رسائل ICMPv6.

otIcmp6Header

وتمثل هذه البنية رأس ICMPv6.

اتحادات

otIcmp6Header::OT_Tool_PACKED_FIELD

التعدادات

رمز otIcmp6

 otIcmp6Code

رموز رسائل ICMPv6.

المنشآت الفندقية
OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE

لا يمكن الوصول إلى الوجهة.

OT_ICMP6_CODE_FRAGM_REAS_TIME_EX

تم تجاوز وقت تقسيم الجزء.

otIcmp6EchoMode

 otIcmp6EchoMode

أوضاع الرد على صدى ICMPv6.

المنشآت الفندقية
OT_ICMP6_ECHO_HANDLER_ALL

تم تفعيل معالجة ICMPv6 Echo لطلبات البث الأحادي والمتعددة.

OT_ICMP6_ECHO_HANDLER_DISABLED

تم إيقاف معالجة ICMPv6 Echo.

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

لا يتم تفعيل معالجة صدى ICMPv6 إلا لطلبات البث المتعدد.

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

لا يتم تفعيل معالجة ICMPv6 Echo إلا لطلبات unicast.

نوع otIcmp6

 otIcmp6Type

أنواع رسائل ICMPv6.

المنشآت الفندقية
OT_ICMP6_TYPE_DST_UNREACH

لا يمكن الوصول إلى الوجهة.

OT_ICMP6_TYPE_ECHO_REPLY

صدى صدى

OT_ICMP6_TYPE_ECHO_REQUEST

طلب صدى صوت.

OT_ICMP6_TYPE_PACKET_TO_BIG

حزمة إلى حجم كبير.

OT_ICMP6_TYPE_PARAMETER_PROBLEM

مشكلة في المَعلمة.

OT_ICMP6_TYPE_ROUTER_ADVERT

إعلان موجّه.

OT_ICMP6_TYPE_ROUTER_SOLICIT

طلب الموجه.

OT_ICMP6_TYPE_TIME_EXCEEDED

تم تجاوز الوقت.

مواقد الخط

رمز otIcmp6

enum otIcmp6Code otIcmp6Code

رموز رسائل ICMPv6.

otIcmp6EchoMode

enum otIcmp6EchoMode otIcmp6EchoMode

أوضاع الرد على صدى ICMPv6.

معالج otIcmp6

struct otIcmp6Handler otIcmp6Handler

تنفِّذ هذه البنية معالج رسائل ICMPv6.

رأس otIcmp6

struct otIcmp6Header otIcmp6Header

يمثل هذا النوع رأس ICMPv6.

otIcmp6ReceiveCallback

void(* otIcmp6ReceiveCallback)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader)

ويسمح هذا الاستدعاء لـ OpenThread بإبلاغ تطبيق رسالة ICMPv6 المُستلَمة.

التفاصيل
المعلَمات
[in] aContext
مؤشر لمعلومات السياق العشوائية.
[in] aMessage
مؤشر للرسالة المستلمة.
[in] aMessageInfo
مؤشر لمعلومات الرسالة المرتبطة بـ aMessage.
[in] aIcmpHeader
مؤشر إلى عنوان ICMPv6 الذي تم استلامه.

نوع otIcmp6

enum otIcmp6Type otIcmp6Type

أنواع رسائل ICMPv6.

المتغيرات

OT_Tool_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIcmp6Header OT_TOOL_PACKED_END

الدوال

otIcmp6GetEchoMode

otIcmp6EchoMode otIcmp6GetEchoMode(
  otInstance *aInstance
)

تشير هذه الدالة إلى ما إذا تم تفعيل معالجة ICMPv6 Echo.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
قيم الإرجاع
OT_ICMP6_ECHO_HANDLER_DISABLED
تم إيقاف معالجة ICMPv6 Echo.
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY
تم تفعيل معالجة ICMPv6 Echo لطلبات unicast فقط.
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY
تم تفعيل معالجة صدى ICMPv6 لطلبات البث المتعدد فقط.
OT_ICMP6_ECHO_HANDLER_ALL
تم تفعيل معالجة ICMPv6 Echo لطلبات البث الأحادي والمتعددة.

معالج otIcmp6

otError otIcmp6RegisterHandler(
  otInstance *aInstance,
  otIcmp6Handler *aHandler
)

تسجِّل هذه الدالة معالجًا لتوفير رسائل ICMPv6 المُستلَمة.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aHandler
مؤشر إلى معالج يحتوي على رد اتصال يتم استدعاءه عند استلام رسالة ICMPv6.

otIcmp6SendEchoRequest

otError otIcmp6SendEchoRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  uint16_t aIdentifier
)

ترسل هذه الدالة طلب ICMPv6 Echo عبر واجهة سلسلة المحادثات.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aMessage
مؤشر إلى المخزن المؤقت للرسائل يحتوي على حمولة ICMPv6.
[in] aMessageInfo
إشارة إلى معلومات الرسالة المرتبطة بـ aMessage.
[in] aIdentifier
معرّف للمساعدة في مطابقة الردود على Echo لطلب Echo هذا. قد يكون صفرًا.

otIcmp6SetEchoMode

void otIcmp6SetEchoMode(
  otInstance *aInstance,
  otIcmp6EchoMode aMode
)

تحدد هذه الدالة ما إذا تم تفعيل معالجة ICMPv6 Echo أو لا.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aMode
وضع معالجة صدى ICMPv6.

وحدات ماكرو

OT_ICMP6_HEAD_DATA_SIZE

 OT_ICMP6_HEADER_DATA_SIZE 4

حجم بيانات رسالة محددة من عنوان ICMPv6.

المراجع

تنشأ مواضيع واجهة برمجة التطبيقات المرجعية لـ OpenThread من رمز المصدر، المتوفر على GitHub. للاطّلاع على مزيد من المعلومات أو للمساهمة في مستنداتنا، يُرجى الرجوع إلى المراجع.