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,
  OT_ICMP6_TYPE_NEIGHBOR_SOLICIT = 135,
  OT_ICMP6_TYPE_NEIGHBOR_ADVERT = 136
}
تعداد
أنواع رسائل ICMPv6.

تحديدات النوع

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

المتغيرات

OT_TOOL_PACKED_END

الدوال

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

الهياكل

otIcmp6Handler

تنفيذ معالج رسائل ICMPv6

otIcmp6Header

يمثل عنوان ICMPv6.

الاتحادات

otIcmp6Header::OT_TOOL_PACKED_FIELD

عمليات التعداد

otIcmp6Code

 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 لطلبات البث الأحادي والتعدد.

OT_ICMP6_ECHO_HANDLER_DISABLED

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

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

تم تفعيل معالجة ارتداد ICMPv6 فقط لطلبات البث المتعدد فقط.

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

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

otIcmp6Type

 otIcmp6Type

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

أماكن إقامة
OT_ICMP6_TYPE_DST_UNREACH

تعذر الوصول إلى الوجهة.

OT_ICMP6_TYPE_ECHO_REPLY

رسالة Echo Reply (رد الارتداد)

OT_ICMP6_TYPE_ECHO_REQUEST

رسالة Echo Request (طلب الرد).

OT_ICMP6_TYPE_NEIGHBOR_ADVERT

إعلان الجيران.

OT_ICMP6_TYPE_NEIGHBOR_SOLICIT

طلب الجيران.

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

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

تحديدات النوع

otIcmp6Code

enum otIcmp6Code otIcmp6Code

رموز رسائل ICMPv6.

otIcmp6EchoMode

enum otIcmp6EchoMode otIcmp6EchoMode

أوضاع رد ارتداد ICMPv6.

otIcmp6Handler

struct otIcmp6Handler otIcmp6Handler

تنفيذ معالج رسائل ICMPv6

otIcmp6Header

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 الذي تم استلامه.

otIcmp6Type

enum otIcmp6Type otIcmp6Type

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

المتغيرات

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIcmp6Header OT_TOOL_PACKED_END

الدوال

otIcmp6GetEchoMode

otIcmp6EchoMode otIcmp6GetEchoMode(
  otInstance *aInstance
)

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

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

otIcmp6RegisterHandler

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 من خلال واجهة سلسلة المحادثات.

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

otIcmp6SetEchoMode

void otIcmp6SetEchoMode(
  otInstance *aInstance,
  otIcmp6EchoMode aMode
)

تحدِّد هذه السياسة ما إذا كانت معالجة ارتداد ICMPv6 مفعّلة أم لا.

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

وحدات ماكرو

OT_ICMP6_HEADER_DATA_SIZE

 OT_ICMP6_HEADER_DATA_SIZE 4

حجم عنوان ICMPv6

OT_ICMP6_ROUTER_ADVERT_MIN_SIZE

 OT_ICMP6_ROUTER_ADVERT_MIN_SIZE 16

حجم رسالة إعلان جهاز التوجيه بدون أي خيارات.

المراجِع

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