بيانات تشخيص الشبكة المتداخلة

تتضمن هذه الوحدة تعريفات ودوال لتشخيص الشبكة المتداخلة.

ملخّص

تتطلّب واجهات برمجة تطبيقات بيانات تشخيص الشبكة المتداخلة OPENTHREAD_CONFIG_MESH_DIAG_ENABLE وOPENTHREAD_FTD.

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

otMeshDiagChildEntry typedef
تعرض معلومات عن إدخال فرعي من otMeshDiagQueryChildTable().
otMeshDiagChildInfo typedef
تمثيل معلومات حول طفل تم اكتشافه في شبكة Thread باستخدام السمة otMeshDiagDiscoverTopology().
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
يمثل معاودة الاتصال المستخدمة من قِبل otMeshDiagQueryChildrenIp6Addrs() لتقديم معلومات عن عنصر MTD الثانوي وقائمة عناوين IPv6 التابعة له.
otMeshDiagChildIterator typedef
تكرار مبهم للتكرار على قائمة العناصر الثانوية لجهاز التوجيه.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
يمثّل نوع المؤشر معاودة الاتصال التي يستخدمها otMeshDiagDiscoverTopology() لتقديم معلومات عن جهاز توجيه تم اكتشافه.
otMeshDiagDiscoverConfig typedef
تمثّل هذه السمة مجموعة الإعدادات المستخدَمة عند اكتشاف مخطط الشبكة المتداخلة الذي يشير إلى العناصر المطلوب اكتشافها.
otMeshDiagIp6AddrIterator typedef
هو تكرار مبهم للتكرار على قائمة عناوين IPv6 لجهاز التوجيه.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
تمثل هذه السمة رد الاتصال الذي يستخدمه otMeshDiagQueryChildTable() لتقديم معلومات عن إدخالات الجدول الثانوي.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
تمثل هذه السمة طريقة معاودة الاتصال المستخدمة من قِبل otMeshDiagQueryRouterNeighborTable() لتقديم معلومات عن إدخالات جدول جهاز التوجيه المجاور.
otMeshDiagRouterInfo typedef
يعرض هذا التمثيل معلومات عن جهاز توجيه في شبكة Thread التي تم اكتشافها باستخدام otMeshDiagDiscoverTopology().
otMeshDiagRouterNeighborEntry typedef
يعرض هذا الحقل معلومات عن إدخال مجاور لجهاز التوجيه من otMeshDiagQueryRouterNeighborTable().

الدوال

otMeshDiagCancel(otInstance *aInstance)
void
يؤدي إلى إلغاء اكتشاف تسلسلي مستمر في حال توفُّر أي إجراء، وإلا لن يتم اتّخاذ أي إجراء.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
بدء اكتشاف طوبولوجيا الشبكة
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
يتكرر اكتشاف العناصر الثانوية لجهاز التوجيه.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
يتكرر من خلال عناوين IPv6 المكتشفة لجهاز التوجيه أو جهاز MTD الفرعي.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
لبدء استعلام لجدول فرعي لجهاز توجيه معين.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
لإرسال طلب إلى أحد الوالدَين لاسترداد عناوين IPv6 من جميع عناصر MTD الثانوية
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
لبدء الاستعلام عن جدول جار جهاز التوجيه لجهاز توجيه معين.

الهياكل

otMeshDiagChildEntry

تعرض معلومات عن إدخال فرعي من otMeshDiagQueryChildTable().

otMeshDiagChildInfo

تمثيل معلومات حول طفل تم اكتشافه في شبكة Thread باستخدام السمة otMeshDiagDiscoverTopology().

otMeshDiagDiscoverConfig

تمثّل هذه السمة مجموعة الإعدادات المستخدَمة عند اكتشاف مخطط الشبكة المتداخلة الذي يشير إلى العناصر المطلوب اكتشافها.

otMeshDiagRouterInfo

يعرض هذا التمثيل معلومات عن جهاز توجيه في شبكة Thread التي تم اكتشافها باستخدام otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

يعرض هذا الحقل معلومات عن إدخال مجاور لجهاز التوجيه من otMeshDiagQueryRouterNeighborTable().

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

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

تعرض معلومات عن إدخال فرعي من otMeshDiagQueryChildTable().

تشير السمة mSupportsErrRate إلى ما إذا كانت ميزة تتبُّع الأخطاء متاحة أم لا، وأنّ القيمتَين mFrameErrorRate وmMessageErrorRate صالحتَين. يتتبّع معدّل أخطاء الإطارات في الثانية أخطاء ضبط الإطارات (في اتجاه النطاق الفرعي) في طبقة MAC، في حين يتتبّع mMessageErrorRate معدّل أخطاء رسالة IPv6 (أعلى طبقة MAC وبعد إعادة محاولة MAC) عند حذف رسالة IPv6. على سبيل المثال، إذا كانت الرسالة كبيرة وتتطلب تجزئة 6LoWPAN، فسيتم اعتبار الرسالة tx على أنها قد فشلت في حال فشل أحد إطاراتها المجزأة (على سبيل المثال، عدم التأكيد مطلقًا).

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

تمثيل معلومات حول طفل تم اكتشافه في شبكة Thread باستخدام السمة otMeshDiagDiscoverTopology().

otMeshDiagChildIp6AddrsCallback

void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)

يمثل معاودة الاتصال المستخدمة من قِبل otMeshDiagQueryChildrenIp6Addrs() لتقديم معلومات عن عنصر MTD الثانوي وقائمة عناوين IPv6 التابعة له.

وعندما تكون قيمة السمة aError هي OT_ERROR_PENDING، يعني ذلك وجود المزيد من العناصر الثانوية وسيتم استدعاء معاودة الاتصال مرة أخرى.

التفاصيل
المَعلمات
[in] aError
يشير OT_ERROR_PENDING إلى وجود المزيد من العناصر الثانوية في الجدول. يشير OT_ERROR_NONE إلى انتهاء الجدول. انتهت مهلة OT_ERROR_RESPONSE_CAMPAIGNS في انتظار الرد.
[in] aChildRloc16
RLOC16 للطفل. يتم استخدام 0xfffe في OT_ERROR_RESPONSE_TIMEOUT.
[in] aIp6AddrIterator
مُكرّر لاستعراض عناوين IPv6 التابعة للطفل الذي لديه aRloc باستخدام otMeshDiagGetNextIp6Address(). تم الضبط على "فارغ" في OT_ERROR_RESPONSE_TIMEOUT.
[in] aContext
سياق خاص بالتطبيق:

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

تكرار مبهم للتكرار على قائمة العناصر الثانوية لجهاز التوجيه.

تتوفّر مؤشرات لمثيل من هذا النوع في otMeshDiagRouterInfo.

otMeshDiagDiscoverCallback

void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)

يمثّل نوع المؤشر معاودة الاتصال التي يستخدمها otMeshDiagDiscoverTopology() لتقديم معلومات عن جهاز توجيه تم اكتشافه.

عندما تكون قيمة السمة aError هي OT_ERROR_PENDING، يعني ذلك أنّ عملية الاكتشاف لم تكتمل بعد وسيكون هناك المزيد من أجهزة التوجيه لاكتشافها وسيتم طلب معاودة الاتصال مرة أخرى.

التفاصيل
المَعلمات
[in] aError
يشير OT_ERROR_PENDING إلى وجود المزيد من الموجهات التي يمكن اكتشافها. يشير OT_ERROR_NONE إلى أن هذا هو آخر جهاز توجيه وتم اكتشاف الشبكة المتداخلة. انتهت مهلة OT_ERROR_RESPONSE_QUANTITY لانتظار الاستجابة من جهاز توجيه واحد أو أكثر.
[in] aRouterInfo
معلومات جهاز التوجيه التي تم اكتشافها (يمكن أن تكون قيمة فارغة إذا كانت قيمة aError OT_ERROR_RESPONSE_من).
[in] aContext
سياق خاص بالتطبيق:

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

تمثّل هذه السمة مجموعة الإعدادات المستخدَمة عند اكتشاف مخطط الشبكة المتداخلة الذي يشير إلى العناصر المطلوب اكتشافها.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

هو تكرار مبهم للتكرار على قائمة عناوين IPv6 لجهاز التوجيه.

تتوفّر مؤشرات لمثيل من هذا النوع في otMeshDiagRouterInfo.

otMeshDiagQueryChildTableCallback

void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)

تمثل هذه السمة رد الاتصال الذي يستخدمه otMeshDiagQueryChildTable() لتقديم معلومات عن إدخالات الجدول الثانوي.

وعندما تكون قيمة الحقل "aError" هي "OT_ERROR_PENDING"، يعني ذلك أنّ الجدول لا يزال يحتوي على المزيد من الإدخالات وسيتم استدعاء معاودة الاتصال مرة أخرى.

التفاصيل
المَعلمات
[in] aError
يشير OT_ERROR_PENDING إلى وجود المزيد من الإدخالات في الجدول. يشير OT_ERROR_NONE إلى انتهاء الجدول. انتهت مهلة OT_ERROR_RESPONSE_CAMPAIGNS في انتظار الرد.
[in] aChildEntry
الإدخال الفرعي (يمكن أن يكون فارغًا إذا كان aError OT_ERROR_RESPONSE_QUANTITY أو OT_ERROR_NONE).
[in] aContext
سياق خاص بالتطبيق:

otMeshDiagQueryRouterNeighborTableCallback

void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)

تمثل هذه السمة طريقة معاودة الاتصال المستخدمة من قِبل otMeshDiagQueryRouterNeighborTable() لتقديم معلومات عن إدخالات جدول جهاز التوجيه المجاور.

وعندما تكون قيمة الحقل "aError" هي "OT_ERROR_PENDING"، يعني ذلك أنّ الجدول لا يزال يحتوي على المزيد من الإدخالات وسيتم استدعاء معاودة الاتصال مرة أخرى.

التفاصيل
المَعلمات
[in] aError
يشير OT_ERROR_PENDING إلى وجود المزيد من الإدخالات في الجدول. يشير OT_ERROR_NONE إلى انتهاء الجدول. انتهت مهلة OT_ERROR_RESPONSE_CAMPAIGNS في انتظار الرد.
[in] aNeighborEntry
الإدخال المجاور (يمكن أن يكون صفرًا إذا كان aError RESPONSE_QUANTITY أو NONE).
[in] aContext
سياق خاص بالتطبيق:

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

يعرض هذا التمثيل معلومات عن جهاز توجيه في شبكة Thread التي تم اكتشافها باستخدام otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

يعرض هذا الحقل معلومات عن إدخال مجاور لجهاز التوجيه من otMeshDiagQueryRouterNeighborTable().

تشير السمة mSupportsErrRate إلى ما إذا كانت ميزة تتبُّع الأخطاء متاحة أم لا، وأنّ القيمتَين mFrameErrorRate وmMessageErrorRate صالحتَين. يتتبّع معدّل أخطاء الإطارات في الثانية أخطاء ضبط الإطارات (في اتجاه النطاق الفرعي) في طبقة MAC، في حين يتتبّع mMessageErrorRate معدّل أخطاء رسالة IPv6 (أعلى طبقة MAC وبعد إعادة محاولة MAC) عند حذف رسالة IPv6. على سبيل المثال، إذا كانت الرسالة كبيرة وتتطلب تجزئة 6LoWPAN، فسيتم اعتبار الرسالة tx على أنها قد فشلت في حال فشل أحد إطاراتها المجزأة (على سبيل المثال، عدم التأكيد مطلقًا).

الدوال

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

يؤدي إلى إلغاء اكتشاف تسلسلي مستمر في حال توفُّر أي إجراء، وإلا لن يتم اتّخاذ أي إجراء.

عند إلغاء عملية رصد جارية، لن يتم استدعاء معاودة الاتصال من "otMeshDiagDiscoverTopology()".

otMeshDiagDiscoverTopology

otError otMeshDiagDiscoverTopology(
  otInstance *aInstance,
  const otMeshDiagDiscoverConfig *aConfig,
  otMeshDiagDiscoverCallback aCallback,
  void *aContext
)

بدء اكتشاف طوبولوجيا الشبكة

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[in] aConfig
الإعدادات المطلوب استخدامها لاكتشاف العناصر (مثل العناصر المطلوب اكتشافها).
[in] aCallback
معاودة الاتصال للإبلاغ عن أجهزة التوجيه المكتشفة.
[in] aContext
سياق يجب تمريره في aCallback.
قيم الإرجاع
OT_ERROR_NONE
بدأ اكتشاف طوبولوجيا الشبكة بنجاح.
OT_ERROR_BUSY
لا يزال طلب استكشاف سابق قيد التنفيذ.
OT_ERROR_INVALID_STATE
لم يتم توصيل الجهاز.
OT_ERROR_NO_BUFS
تعذَّر تخصيص مخزن مؤقت لإرسال رسائل الاكتشاف.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

يتكرر اكتشاف العناصر الثانوية لجهاز التوجيه.

يجب استخدام هذه الدالة من رد الاتصال otMeshDiagDiscoverCallback() واستخدام mChildIterator من بنية aRouterInfo التي يتم توفيرها كإدخال في رد الاتصال.

التفاصيل
المَعلمات
[in,out] aIterator
مكرّر العنوان المطلوب استخدامه.
[out] aChildInfo
مؤشر لإرجاع المعلومات الفرعية (إن وجدت).
قيم الإرجاع
OT_ERROR_NONE
تم استرداد الطفل التالي بنجاح. تم تعديل aChildInfo وaIterator.
OT_ERROR_NOT_FOUND
ما مِن طفل بعد الآن. لقد وصلت إلى نهاية القائمة.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

يتكرر من خلال عناوين IPv6 المكتشفة لجهاز التوجيه أو جهاز MTD الفرعي.

يجب استخدام

  • من معاودة الاتصال otMeshDiagDiscoverCallback() واستخدام mIp6AddrIterator من بنية aRouterInfo التي يتم توفيرها كإدخال في رد الاتصال، أو
  • من معاودة الاتصال "otMeshDiagChildIp6AddrsCallback()" بالإضافة إلى "aIp6AddrIterator" المُقدَّم

التفاصيل
المَعلمات
[in,out] aIterator
مكرّر العنوان المطلوب استخدامه.
[out] aIp6Address
مؤشر لإرجاع عنوان IPv6 التالي (إن وجد).
قيم الإرجاع
OT_ERROR_NONE
تم استرداد العنوان التالي بنجاح. تم تعديل aIp6Address وaIterator.
OT_ERROR_NOT_FOUND
ما مِن عنوان آخر. لقد وصلت إلى نهاية القائمة.

otMeshDiagQueryChildTable

otError otMeshDiagQueryChildTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryChildTableCallback aCallback,
  void *aContext
)

لبدء استعلام لجدول فرعي لجهاز توجيه معين.

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[in] aRloc16
RLOC16 لجهاز التوجيه للاستعلام.
[in] aCallback
رد الاتصال للإبلاغ عن الجدول الفرعي الذي تم الاستعلام عنه.
[in] aContext
سياق يجب تمريره في aCallback.
قيم الإرجاع
OT_ERROR_NONE
بدأ الاستعلام بنجاح.
OT_ERROR_BUSY
لا يزال طلب اكتشاف أو طلب بحث سابق قيد التنفيذ.
OT_ERROR_INVALID_ARGS
لا يمثّل aRloc16 جهاز توجيه RLOC16 صالحًا.
OT_ERROR_INVALID_STATE
لم يتم توصيل الجهاز.
OT_ERROR_NO_BUFS
تعذَّر تخصيص مخزن مؤقت لإرسال رسائل طلب البحث.

otMeshDiagQueryChildrenIp6Addrs

otError otMeshDiagQueryChildrenIp6Addrs(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagChildIp6AddrsCallback aCallback,
  void *aContext
)

لإرسال طلب إلى أحد الوالدَين لاسترداد عناوين IPv6 من جميع عناصر MTD الثانوية

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[in] aRloc16
RLOC16 الأصل المطلوب الاستعلام عنه.
[in] aCallback
رد الاتصال للإبلاغ عن قائمة عناوين IPv6 الثانوية التي تم الاستعلام عنها.
[in] aContext
سياق يجب تمريره في aCallback.
قيم الإرجاع
OT_ERROR_NONE
بدأ الاستعلام بنجاح.
OT_ERROR_BUSY
لا يزال طلب اكتشاف أو طلب بحث سابق قيد التنفيذ.
OT_ERROR_INVALID_ARGS
قيمة aRloc16 ليست RLOC16 صالحة.
OT_ERROR_INVALID_STATE
لم يتم توصيل الجهاز.
OT_ERROR_NO_BUFS
تعذَّر تخصيص مخزن مؤقت لإرسال رسائل طلب البحث.

otMeshDiagQueryRouterNeighborTable

otError otMeshDiagQueryRouterNeighborTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryRouterNeighborTableCallback aCallback,
  void *aContext
)

لبدء الاستعلام عن جدول جار جهاز التوجيه لجهاز توجيه معين.

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[in] aRloc16
RLOC16 لجهاز التوجيه للاستعلام.
[in] aCallback
تمثّل هذه السمة معاودة الاتصال للإبلاغ عن الجدول الذي تم الاستعلام عنه.
[in] aContext
سياق يجب تمريره في aCallback.
قيم الإرجاع
OT_ERROR_NONE
بدأ الاستعلام بنجاح.
OT_ERROR_BUSY
لا يزال طلب اكتشاف أو طلب بحث سابق قيد التنفيذ.
OT_ERROR_INVALID_ARGS
لا يمثّل aRloc16 جهاز توجيه RLOC16 صالحًا.
OT_ERROR_INVALID_STATE
لم يتم توصيل الجهاز.
OT_ERROR_NO_BUFS
تعذَّر تخصيص مخزن مؤقت لإرسال رسائل طلب البحث.

وحدات ماكرو

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

تشير هذه السمة إلى أنّ إصدار سلسلة المحادثات غير معروف.

تُستخدَم هذه السمة في otMeshDiagRouterInfo للسمة mVersion عندما لا يوفّر الجهاز إصداره. ويشير هذا إلى أنّ الجهاز يعمل على الأرجح بالإصدار 1.3.0 (قيمة الإصدار 4) أو إصدار أقدم.

المراجِع

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