TREL - Platform

Modul ini mencakup abstraksi platform untuk Thread Radio Encapsulation Link (TREL) menggunakan DNS-SD dan UDP/IPv6.

Ringkasan

Typedef

otPlatTrelPeerInfo typedef
Mewakili info peer TREL yang ditemukan menggunakan jelajah DNS-SD pada nama layanan "_trel._udp".

Fungsi

otPlatTrelDisable(otInstance *aInstance)
void
Menonaktifkan lapisan platform TREL.
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
void
Menginisialisasi dan mengaktifkan lapisan platform TREL.
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
void
Ini adalah fungsi callback dari lapisan platform untuk melaporkan info peer TREL yang ditemukan.
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
Merupakan callback dari platform untuk memberi tahu paket UDP TREL yang diterima.
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
void
Mendaftarkan layanan baru yang akan diiklankan menggunakan DNS-SD [RFC6763].
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
Meminta paket UDP TREL untuk dikirim ke tujuan tertentu.

Struct

otPlatTrelPeerInfo

Mewakili info peer TREL yang ditemukan menggunakan jelajah DNS-SD pada nama layanan "_trel._udp".

Typedef

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

Mewakili info peer TREL yang ditemukan menggunakan jelajah DNS-SD pada nama layanan "_trel._udp".

Fungsi

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

Menonaktifkan lapisan platform TREL.

Setelah panggilan ini, lapisan platform HARUS menghentikan penjelajahan DNS-SD pada nama layanan "_trel._udp", berhenti mengiklankan layanan TREL DNS-SD (dari otPlatTrelRegisterService()), dan HARUS menutup soket UDP yang digunakan untuk menerima pesan TREL.

[dalam] aInstance Instance OpenThread.

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

Menginisialisasi dan mengaktifkan lapisan platform TREL.

Setelah panggilan ini, lapisan platform HARUS melakukan hal berikut:

1) Lapisan platform TREL HARUS membuka soket UDP untuk mendengarkan dan menerima pesan TREL dari rekan-rekan. Soket terikat dengan nomor port efemeral yang dipilih oleh lapisan platform. Nomor port HARUS ditampilkan dalam aUdpPort. Soket juga terikat ke antarmuka jaringan tempat TREL didukung. Soket dan port yang dipilih harus tetap valid selama TREL diaktifkan.

2) Lapisan platform HARUS memulai penjelajahan DNS-SD yang sedang berlangsung pada nama layanan "_trel._udp" dalam domain penjelajahan lokal untuk menemukan perangkat lain yang mendukung TREL. Penjelajahan yang sedang berlangsung akan menghasilkan dua jenis peristiwa yang berbeda: peristiwa "tambahkan" dan "hapus". Ketika penjelajahan dimulai, penjelajahan akan menghasilkan peristiwa "add" untuk setiap peer TREL yang saat ini ada di jaringan. Setiap kali peer TREL offline, peristiwa "remove" harus dihasilkan. Namun, peristiwa "remove" tidak dijamin. Ketika instance layanan TREL ditemukan, kueri DNS-SD baru yang sedang berlangsung untuk data AAAA harus dimulai pada nama host yang ditunjukkan dalam data SRV dari instance yang ditemukan. Jika beberapa alamat IPv6 {i>host<i} ditemukan untuk rekan, satu dengan cakupan tertinggi di antara semua alamat HARUS dilaporkan (jika ada beberapa alamat pada ruang lingkup yang sama, satu harus dipilih secara acak).

Platform TREL HARUS memberi sinyal kembali info pembanding yang ditemukan menggunakan callback otPlatTrelHandleDiscoveredPeerInfo(). Callback ini HARUS dipanggil saat peer baru ditemukan, saat ada perubahan dalam entri yang sudah ada (misalnya, data TXT baru atau nomor port baru atau alamat IPv6 baru), atau saat peer dihapus.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[out] aUdpPort
Pointer untuk menampilkan nomor port yang dipilih menurut lapisan platform.

otPlatTrelHandleDiscoveredPeerInfo

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

Ini adalah fungsi callback dari lapisan platform untuk melaporkan info peer TREL yang ditemukan.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[in] aInfo
Pointer ke info peer TREL.

otPlatTrelHandleReceived

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

Merupakan callback dari platform untuk memberi tahu paket UDP TREL yang diterima.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aBuffer
Buffering yang berisi payload UDP yang diterima.
[in] aLength
Panjang payload UDP (jumlah byte).

otPlatTrelRegisterService

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

Mendaftarkan layanan baru yang akan diiklankan menggunakan DNS-SD [RFC6763].

Nama layanannya adalah "_trel._udp". Platform harus menggunakan nama host-nya sendiri, yang jika digabungkan dengan nama layanan dan nama domain DNS-SD lokal akan menghasilkan nama instance layanan lengkap, misalnya "example-host._trel._udp.local.".

Domain tempat nama instance layanan muncul adalah 'local' untuk mDNS, dan akan menjadi domain apa pun yang digunakan untuk pendaftaran layanan dalam kasus layanan DNS-SD lokal non-mDNS.

Panggilan berikutnya ke fungsi ini akan mengupdate layanan sebelumnya. File ini digunakan untuk memperbarui data data TXT dan/atau nomor port.

Buffer aTxtData tidak dipertahankan setelah ditampilkan dari fungsi ini. Lapisan platform TIDAK BOLEH menyimpan pointer dan sebagai gantinya menyalin konten jika diperlukan.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[in] aPort
Nomor port yang akan disertakan dalam data SRV dari layanan yang diiklankan.
[in] aTxtData
Pointer ke data data TXT (dienkode) yang akan disertakan dalam layanan yang diiklankan.
[in] aTxtLength
Panjang aTxtData (jumlah byte).

otPlatTrelSend

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

Meminta paket UDP TREL untuk dikirim ke tujuan tertentu.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aUdpPayload
Pointer ke payload UDP.
[in] aUdpPayloadLen
Panjang payload (jumlah byte).
[in] aDestSockAddr
Alamat soket tujuan.

Referensi

Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.