TREL - پلت فرم

این ماژول شامل انتزاع پلتفرم برای پیوند رادیویی ریسمانی (TREL) با استفاده از DNS-SD و UDP/IPv6 است.

خلاصه

Typedefs

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" کشف شده است.

Typedefs

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

نشان دهنده یک اطلاعات همتا TREL است که با استفاده از مرور DNS-SD در نام سرویس "_trel._udp" کشف شده است.

کارکرد

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

لایه پلت فرم TREL را غیرفعال می کند.

پس از این تماس، لایه پلت فرم باید مرور DNS-SD را در نام سرویس "_trel._udp" متوقف کند، تبلیغات سرویس TREL DNS-SD (از otPlatTrelRegisterService() ) را متوقف کند و باید سوکت UDP مورد استفاده برای دریافت پیام های TREL را ببندد.

[in] aInstance نمونه OpenThread.

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

لایه پلت فرم TREL را راه اندازی و فعال می کند.

پس از این فراخوانی، لایه پلتفرم باید کارهای زیر را انجام دهد:

1) لایه پلت فرم TREL باید یک سوکت UDP را برای گوش دادن و دریافت پیام های TREL از همتایان باز کند. سوکت به یک شماره پورت زودگذر که توسط لایه پلتفرم انتخاب شده است، متصل است. شماره پورت باید در aUdpPort برگردانده شود. سوکت همچنین به واسط شبکه (هایی) که TREL قرار است روی آن پشتیبانی شود، متصل است. سوکت و پورت انتخابی باید تا زمانی که TREL فعال است معتبر بمانند.

2) لایه پلتفرم باید یک مرور DNS-SD در حال انجام را در نام سرویس "_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 (تعداد بایت).

otPlatTrelRegisterService

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

سرویس جدیدی را برای تبلیغ با استفاده از DNS-SD [RFC6763] ثبت می کند.

نام سرویس "_trel._udp" است. پلتفرم باید از نام میزبان خود استفاده کند، که وقتی با نام سرویس و نام دامنه محلی DNS-SD ترکیب شود، نام نمونه سرویس کامل را تولید می کند، به عنوان مثال "example-host._trel._udp.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 API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.