TREL - Platform
Modul ini mencakup abstraksi platform untuk Thread Radio Encapsulation Link (TREL) menggunakan DNS-SD dan UDP/IPv6.
Ringkasan
Typedef |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
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 |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
Ini adalah fungsi callback dari lapisan platform untuk melaporkan info peer TREL yang ditemukan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
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 |
|
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 |
|
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 |
|
Referensi
Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.