تريل - منصة
تتضمّن هذه الوحدة ملخصًا للنظام الأساسي لرابط تسلسل راديو سلسلة المحادثات (TREL) باستخدام DNS-SD وUDP/6v6.
ملخّص
أنواع المحددات |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
يمثل معلومات 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 جديد) أو عند إزالة نظير.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
هذه دالة رد اتصال من طبقة النظام الأساسي للإبلاغ عن معلومات زميل TREL التي تم اكتشافها.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
عبارة عن رد اتصال من النظام الأساسي لإرسال إشعار إلى حزمة TREL 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
بعد عرض هذه الدالة. يجب ألا تحتفظ طبقة النظام الأساسي بمؤشر الماوس وأن تنسخ المحتوى بدلاً من ذلك إذا لزم الأمر.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
يتم طلب إرسال حزمة TREL UDP لإرسالها إلى وجهة معينة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
الموارد
تبدأ مواضيع مراجع واجهة برمجة تطبيقات OpenThread من رمز المصدر، وهو متاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.