تريل - منصة

تتضمّن هذه الوحدة ملخصًا للنظام الأساسي لرابط تسلسل راديو سلسلة المحادثات (TREL) باستخدام DNS-SD وUDP/6v6.

ملخّص

أنواع المحددات

otPlatTrelPeerInfo typedef
يمثل معلومات TREL المشابهة التي تم اكتشافها باستخدام تصفُّح DNS-SD على اسم الخدمة "_trel__udp".

الدوال

otPlatTrelDisable(otInstance *aInstance)
void
لإيقاف طبقة النظام الأساسي TREL
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
void
لإعداد طبقة النظام الأساسي TREL وتفعيلها.
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
void
هذه دالة رد اتصال من طبقة النظام الأساسي للإبلاغ عن معلومات زميل TREL التي تم اكتشافها.
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
عبارة عن رد اتصال من النظام الأساسي لإرسال إشعار إلى حزمة TREL UDP المُستلَمة.
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
void
تسجِّل خدمة جديدة ليتم الإعلان عنها باستخدام DNS-SD [RFC6763].
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
يتم طلب إرسال حزمة TREL UDP لإرسالها إلى وجهة معينة.

هياكل

otPlatTrelPeerInfo

يمثل معلومات TREL المشابهة التي تم اكتشافها باستخدام تصفُّح DNS-SD على اسم الخدمة "_trel__udp".

أنواع المحددات

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

يمثل معلومات TREL المشابهة التي تم اكتشافها باستخدام تصفُّح DNS-SD على اسم الخدمة "_trel__udp".

الدوال

إيقاف otPlatTrel

void otPlatTrelDisable(
  otInstance *aInstance
)

لإيقاف طبقة النظام الأساسي TREL

بعد هذه المكالمة، يجب أن تتوقف طبقة النظام الأساسي عن تصفح DNS-SD في اسم الخدمة "_trel._udp"، وإيقاف الإعلان عن خدمة TREL DNS-SD (من otPlatTrelRegisterService()) ويجب أن تغلق مقبس UDP المستخدم لاستلام رسائل TREL.

[in] مثيل مثيل OpenThread

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

لإعداد طبقة النظام الأساسي TREL وتفعيلها.

عند هذه المكالمة، يجب أن تنفّذ طبقة النظام الأساسي ما يلي:

1) يجب أن تفتح طبقة نظام TREL مقبس UDP للاستماع إلى رسائل TREL وتلقّيها من الزملاء. يتم ربط المقبس برقم منفذ مؤقت يتم اختياره بواسطة طبقة النظام الأساسي. يجب عرض رقم المنفذ في aUdpPort. يرتبط المقبس أيضًا بواجهات الشبكة التي سيتم دعم TREL عليها. يجب أن يظل المقابس والمنفذ الذي تم اختياره صالحًا أثناء تفعيل بروتوكول TREL.

2) يجب أن تبدأ طبقة النظام الأساسي عملية تصفح مستمرة لنظام أسماء النطاقات (DNS) على اسم الخدمة "_trel._udp" ضمن نطاق التصفح المحلي لاكتشاف الأجهزة الأخرى التي تدعم TREL. ينتج عن التصفّح المستمر نوعَين مختلفَين من الأحداث: أحداث "الإضافة" وأحداث "الإزالة". عند بدء التصفُّح، من المُفترَض أن يؤدي ذلك إلى إنشاء حدث "إضافة" لكل نظير من برنامج TREL متاح حاليًا على الشبكة. عندما ينقطع اتصال نظير TREL بلا إنترنت، يجب إنشاء حدث "إزالة". ومع ذلك، ليس مضمونًا أحداث "إزالة". عندما يتم اكتشاف مثيل خدمة TREL، يجب أن يبدأ طلب بحث DNS-SD جديد قيد التشغيل لسجلّ AAAA في اسم المضيف المُشار إليه في سجلّ SRV للمثيل الذي تم اكتشافه. إذا تم اكتشاف عدة عناوين IPv6 للمضيف في نظير، يجب الإبلاغ عن أحد النطاقات ذات النطاق الأعلى من بين جميع العناوين (إذا كان هناك عدة عناوين في النطاق نفسه، يجب اختيار أحد العناوين بشكل عشوائي).

يجب أن تعرض منصّة TREL إشارة المعلومات المشابهة التي تم اكتشافها باستخدام ميزة معاودة الاتصال من otPlatTrelHandleDiscoveredPeerInfo(). يجب استدعاء هذه المكالمة عند اكتشاف زميل جديد، أو عند حدوث تغيير في إدخال حالي (على سبيل المثال، سجل TXT جديد أو رقم منفذ جديد أو عنوان IPv6 جديد) أو عند إزالة نظير.

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[out] aUdpPort
مؤشر لعرض رقم المنفذ المحدّد حسب طبقة النظام الأساسي.

otPlatTrelHandleDiscoveredPeerInfo

void otPlatTrelHandleDiscoveredPeerInfo(
  otInstance *aInstance,
  const otPlatTrelPeerInfo *aInfo
)

هذه دالة رد اتصال من طبقة النظام الأساسي للإبلاغ عن معلومات زميل TREL التي تم اكتشافها.

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[in] aInfo
مؤشر إلى معلومات زميل TREL

otPlatTrelHandleReceived

void otPlatTrelHandleReceived(
  otInstance *aInstance,
  uint8_t *aBuffer,
  uint16_t aLength
)

عبارة عن رد اتصال من النظام الأساسي لإرسال إشعار إلى حزمة TREL UDP المُستلَمة.

التفاصيل
المَعلمات
[in] aInstance
بنية مثيل OpenThread.
[in] aBuffer
وحدة تخزين مؤقت تحتوي على حمولة UDP التي تم استلامها
[in] aLength
طول حمولة UDP (عدد وحدات البايت)

otPlatTrelRecordService

void otPlatTrelRegisterService(
  otInstance *aInstance,
  uint16_t aPort,
  const uint8_t *aTxtData,
  uint8_t aTxtLength
)

تسجِّل خدمة جديدة ليتم الإعلان عنها باستخدام DNS-SD [RFC6763].

اسم الخدمة هو "_trel._udp". يجب أن تستخدم المنصة اسم المضيف الخاص بها، عند دمجه مع اسم الخدمة واسم نطاق نظام أسماء النطاقات (DNS) المحلي، سيتم إنشاء اسم مثيل الخدمة بالكامل، على سبيل المثال "example-host._trel._udp.local".

سيكون النطاق الذي يظهر ضمنه اسم مثيل الخدمة هو "local" لـ mDNS، وسيكون أي نطاق يُستخدم لتسجيل الخدمة في حال خدمة DNS-SD المحلية غير التابعة لـ mDNS.

يؤدي الطلب التالي إلى هذه الدالة إلى تعديل الخدمة السابقة. ويتم استخدامه لتعديل بيانات سجلّ TXT و/أو رقم المنفذ.

لا يستمر استخدام المخزن المؤقت لـ aTxtData بعد عرض هذه الدالة. يجب ألا تحتفظ طبقة النظام الأساسي بمؤشر الماوس وأن تنسخ المحتوى بدلاً من ذلك إذا لزم الأمر.

التفاصيل
المَعلمات
[in] aInstance
مثيل OpenThread.
[in] aPort
رقم النقل المراد تضمينه في سجلّ SRV للخدمة المُعلَن عنها.
[in] aTxtData
إشارة إلى بيانات سجلّ TXT (مُشفّرة) المراد تضمينها في الخدمة المُعلَن عنها
[in] aTxtLength
طول aTxtData (عدد وحدات البايت).

otPlatTrelSend

void otPlatTrelSend(
  otInstance *aInstance,
  const uint8_t *aUdpPayload,
  uint16_t aUdpPayloadLen,
  const otSockAddr *aDestSockAddr
)

يتم طلب إرسال حزمة TREL UDP لإرسالها إلى وجهة معينة.

التفاصيل
المَعلمات
[in] aInstance
بنية مثيل OpenThread.
[in] aUdpPayload
مؤشر إلى حمولة UDP
[in] aUdpPayloadLen
طول الحمولة (عدد وحدات البايت)
[in] aDestSockAddr
عنوان المقبس الوجهة.

الموارد

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