Diagnostik Mesh

Modul ini mencakup definisi dan fungsi untuk Diagnostik Mesh.

Ringkasan

Mesh Diagnostik API memerlukan OPENTHREAD_CONFIG_MESH_DIAG_ENABLE dan OPENTHREAD_FTD.

Typedef

otMeshDiagChildEntry typedef
Menampilkan informasi tentang entri turunan dari otMeshDiagQueryChildTable().
otMeshDiagChildInfo typedef
Menampilkan informasi tentang turunan yang ditemukan dalam mesh Thread menggunakan otMeshDiagDiscoverTopology().
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
Mewakili callback yang digunakan oleh otMeshDiagQueryChildrenIp6Addrs() untuk memberikan informasi tentang turunan MTD dan daftar alamat IPv6-nya.
otMeshDiagChildIterator typedef
Iterator buram untuk melakukan iterasi atas daftar turunan router.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
Jenis pointer mewakili callback yang digunakan oleh otMeshDiagDiscoverTopology() untuk memberikan informasi tentang router yang ditemukan.
otMeshDiagDiscoverConfig typedef
Menggambarkan kumpulan konfigurasi yang digunakan saat menemukan topologi mesh yang menunjukkan item yang akan ditemukan.
otMeshDiagIp6AddrIterator typedef
Iterator buram untuk melakukan iterasi atas daftar alamat IPv6 router.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
Mewakili callback yang digunakan oleh otMeshDiagQueryChildTable() untuk memberikan informasi tentang entri tabel turunan.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
Mewakili callback yang digunakan oleh otMeshDiagQueryRouterNeighborTable() untuk memberikan informasi tentang entri tabel router tetangga.
otMeshDiagRouterInfo typedef
Menampilkan informasi tentang router dalam mesh Thread yang ditemukan menggunakan otMeshDiagDiscoverTopology().
otMeshDiagRouterNeighborEntry typedef
Menampilkan informasi tentang entri tetangga router dari otMeshDiagQueryRouterNeighborTable().

Fungsi

otMeshDiagCancel(otInstance *aInstance)
void
Membatalkan penemuan topologi yang sedang berlangsung jika ada, atau tidak ada tindakan.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
Memulai penemuan topologi jaringan.
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
Melakukan iterasi melalui turunan router yang ditemukan.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
Melakukan iterasi melalui alamat IPv6 yang ditemukan dari {i>router<i} atau anak MTD.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
Memulai kueri untuk tabel turunan untuk router tertentu.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
Mengirim kueri ke induk untuk mengambil alamat IPv6 semua turunan MTD-nya.
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
Memulai kueri untuk tabel tetangga router untuk router tertentu.

Struct

otMeshDiagChildEntry

Menampilkan informasi tentang entri turunan dari otMeshDiagQueryChildTable().

otMeshDiagChildInfo

Menampilkan informasi tentang turunan yang ditemukan dalam mesh Thread menggunakan otMeshDiagDiscoverTopology().

otMeshDiagDiscoverConfig

Menggambarkan kumpulan konfigurasi yang digunakan saat menemukan topologi mesh yang menunjukkan item yang akan ditemukan.

otMeshDiagRouterInfo

Menampilkan informasi tentang router dalam mesh Thread yang ditemukan menggunakan otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

Menampilkan informasi tentang entri tetangga router dari otMeshDiagQueryRouterNeighborTable().

Typedef

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

Menampilkan informasi tentang entri turunan dari otMeshDiagQueryChildTable().

mSupportsErrRate menunjukkan apakah fitur pelacakan error didukung atau tidak serta nilai mFrameErrorRate dan mMessageErrorRate valid. Tingkat error frame melacak error frame tx (ke arah turunan) di lapisan MAC, sementara mMessageErrorRate melacak tingkat error pesan IPv6 (di atas lapisan MAC dan setelah percobaan ulang MAC) ketika pesan IPv6 dihapus. Misalnya, jika pesan berukuran besar dan memerlukan fragmentasi 6LoWPAN, tx pesan dianggap gagal jika salah satu tx frame fragmennya gagal (misalnya, tidak pernah dikonfirmasi).

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

Menampilkan informasi tentang turunan yang ditemukan dalam mesh Thread menggunakan otMeshDiagDiscoverTopology().

otMeshDiagChildIp6AddrsCallback

void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)

Mewakili callback yang digunakan oleh otMeshDiagQueryChildrenIp6Addrs() untuk memberikan informasi tentang turunan MTD dan daftar alamat IPv6-nya.

Ketika aError adalah OT_ERROR_PENDING, ini menunjukkan bahwa ada lebih banyak turunan dan callback akan dipanggil lagi.

Detail
Parameter
[in] aError
OT_ERROR_PENDING Menunjukkan ada lebih banyak turunan dalam tabel. OT_ERROR_NONE Menunjukkan bahwa tabel telah selesai. OT_ERROR_RESPONSE_TIMEOUT Waktu tunggu respons habis.
[in] aChildRloc16
RLOC16 turunan. 0xfffe digunakan di OT_ERROR_RESPONSE_TIMEOUT.
[in] aIp6AddrIterator
Iterator untuk menelusuri alamat IPv6 turunan dengan aRloc menggunakan otMeshDiagGetNextIp6Address(). Disetel ke NULL pada OT_ERROR_RESPONSE_TIMEOUT.
[in] aContext
Konteks khusus aplikasi.

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

Iterator buram untuk melakukan iterasi atas daftar turunan router.

Pointer ke instance jenis ini disediakan di otMeshDiagRouterInfo.

otMeshDiagDiscoverCallback

void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)

Jenis pointer mewakili callback yang digunakan oleh otMeshDiagDiscoverTopology() untuk memberikan informasi tentang router yang ditemukan.

Jika aError bernilai OT_ERROR_PENDING, ini menunjukkan bahwa penemuan belum selesai dan akan ada lebih banyak router untuk ditemukan dan callback akan dipanggil lagi.

Detail
Parameter
[in] aError
OT_ERROR_PENDING Menunjukkan bahwa masih ada router yang perlu ditemukan. OT_ERROR_NONE Menunjukkan bahwa ini adalah router terakhir dan penemuan mesh selesai. OT_ERROR_RESPONSE_TIMEOUT Waktu tunggu habis dalam menunggu respons dari satu atau beberapa router.
[in] aRouterInfo
Info router yang ditemukan (dapat bernilai null jika aError adalah OT_ERROR_RESPONSE_TIMEOUT).
[in] aContext
Konteks khusus aplikasi.

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

Menggambarkan kumpulan konfigurasi yang digunakan saat menemukan topologi mesh yang menunjukkan item yang akan ditemukan.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

Iterator buram untuk melakukan iterasi atas daftar alamat IPv6 router.

Pointer ke instance jenis ini disediakan di otMeshDiagRouterInfo.

otMeshDiagQueryChildTableCallback

void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)

Mewakili callback yang digunakan oleh otMeshDiagQueryChildTable() untuk memberikan informasi tentang entri tabel turunan.

Jika aError adalah OT_ERROR_PENDING, ini menunjukkan bahwa tabel masih memiliki lebih banyak entri dan callback akan dipanggil lagi.

Detail
Parameter
[in] aError
OT_ERROR_PENDING Menunjukkan ada entri lainnya dalam tabel. OT_ERROR_NONE Menunjukkan bahwa tabel telah selesai. OT_ERROR_RESPONSE_TIMEOUT Waktu tunggu respons habis.
[in] aChildEntry
Entri turunan (dapat bernilai null jika aError adalah OT_ERROR_RESPONSE_TIMEOUT atau OT_ERROR_NONE).
[in] aContext
Konteks khusus aplikasi.

otMeshDiagQueryRouterNeighborTableCallback

void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)

Mewakili callback yang digunakan oleh otMeshDiagQueryRouterNeighborTable() untuk memberikan informasi tentang entri tabel router tetangga.

Jika aError adalah OT_ERROR_PENDING, ini menunjukkan bahwa tabel masih memiliki lebih banyak entri dan callback akan dipanggil lagi.

Detail
Parameter
[in] aError
OT_ERROR_PENDING Menunjukkan ada entri lainnya dalam tabel. OT_ERROR_NONE Menunjukkan bahwa tabel telah selesai. OT_ERROR_RESPONSE_TIMEOUT Waktu tunggu respons habis.
[in] aNeighborEntry
Entri tetangga (dapat bernilai null jika aError adalah RESPONSE_TIMEOUT atau NONE).
[in] aContext
Konteks khusus aplikasi.

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

Menampilkan informasi tentang router dalam mesh Thread yang ditemukan menggunakan otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

Menampilkan informasi tentang entri tetangga router dari otMeshDiagQueryRouterNeighborTable().

mSupportsErrRate menunjukkan apakah fitur pelacakan error didukung atau tidak serta nilai mFrameErrorRate dan mMessageErrorRate valid. Tingkat error frame melacak error frame tx (ke arah turunan) di lapisan MAC, sementara mMessageErrorRate melacak tingkat error pesan IPv6 (di atas lapisan MAC dan setelah percobaan ulang MAC) ketika pesan IPv6 dihapus. Misalnya, jika pesan berukuran besar dan memerlukan fragmentasi 6LoWPAN, tx pesan dianggap gagal jika salah satu tx frame fragmennya gagal (misalnya, tidak pernah dikonfirmasi).

Fungsi

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

Membatalkan penemuan topologi yang sedang berlangsung jika ada, atau tidak ada tindakan.

Jika penemuan yang sedang berlangsung dibatalkan, callback dari otMeshDiagDiscoverTopology() tidak akan dipanggil lagi.

otMeshDiagDiscoverTopology

otError otMeshDiagDiscoverTopology(
  otInstance *aInstance,
  const otMeshDiagDiscoverConfig *aConfig,
  otMeshDiagDiscoverCallback aCallback,
  void *aContext
)

Memulai penemuan topologi jaringan.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[in] aConfig
Konfigurasi yang akan digunakan untuk penemuan (misalnya, item mana yang akan ditemukan).
[in] aCallback
Callback untuk melaporkan router yang ditemukan.
[in] aContext
Konteks yang akan diteruskan dalam aCallback.
Nilai Pengembalian
OT_ERROR_NONE
Penemuan topologi jaringan berhasil dimulai.
OT_ERROR_BUSY
Permintaan penemuan sebelumnya masih berlangsung.
OT_ERROR_INVALID_STATE
Perangkat tidak terpasang.
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan buffering untuk mengirim pesan discovery.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

Melakukan iterasi melalui turunan router yang ditemukan.

Fungsi ini HARUS digunakan dari callback otMeshDiagDiscoverCallback() dan menggunakan mChildIterator dari struct aRouterInfo yang diberikan sebagai input ke callback.

Detail
Parameter
[in,out] aIterator
Iterator alamat yang akan digunakan.
[out] aChildInfo
Pointer untuk mengembalikan info turunan (jika ada).
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengambil turunan berikutnya. aChildInfo dan aIterator diperbarui.
OT_ERROR_NOT_FOUND
Tidak ada anak lagi. Mencapai akhir daftar.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

Melakukan iterasi melalui alamat IPv6 yang ditemukan dari {i>router<i} atau anak MTD.

HARUS digunakan

Detail
Parameter
[in,out] aIterator
Iterator alamat yang akan digunakan.
[out] aIp6Address
Pointer untuk mengembalikan alamat IPv6 berikutnya (jika ada).
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengambil alamat berikutnya. aIp6Address dan aIterator diperbarui.
OT_ERROR_NOT_FOUND
Tidak ada alamat lainnya. Mencapai akhir daftar.

otMeshDiagQueryChildTable

otError otMeshDiagQueryChildTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryChildTableCallback aCallback,
  void *aContext
)

Memulai kueri untuk tabel turunan untuk router tertentu.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[in] aRloc16
RLOC16 {i>router<i} yang akan dikueri.
[in] aCallback
Callback untuk melaporkan tabel turunan yang dikueri.
[in] aContext
Konteks yang akan diteruskan dalam aCallback.
Nilai Pengembalian
OT_ERROR_NONE
Kueri berhasil dimulai.
OT_ERROR_BUSY
Permintaan kueri atau penemuan sebelumnya masih berlangsung.
OT_ERROR_INVALID_ARGS
aRloc16 bukan router RLOC16 yang valid.
OT_ERROR_INVALID_STATE
Perangkat tidak terpasang.
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan buffer untuk mengirim pesan kueri.

otMeshDiagQueryChildrenIp6Addrs

otError otMeshDiagQueryChildrenIp6Addrs(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagChildIp6AddrsCallback aCallback,
  void *aContext
)

Mengirim kueri ke induk untuk mengambil alamat IPv6 semua turunan MTD-nya.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[in] aRloc16
RLOC16 induk untuk kueri.
[in] aCallback
Callback untuk melaporkan daftar alamat IPv6 turunan yang dikueri.
[in] aContext
Konteks yang akan diteruskan dalam aCallback.
Nilai Pengembalian
OT_ERROR_NONE
Kueri berhasil dimulai.
OT_ERROR_BUSY
Permintaan kueri atau penemuan sebelumnya masih berlangsung.
OT_ERROR_INVALID_ARGS
aRloc16 bukan RLOC16 yang valid.
OT_ERROR_INVALID_STATE
Perangkat tidak terpasang.
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan buffer untuk mengirim pesan kueri.

otMeshDiagQueryRouterNeighborTable

otError otMeshDiagQueryRouterNeighborTable(
  otInstance *aInstance,
  uint16_t aRloc16,
  otMeshDiagQueryRouterNeighborTableCallback aCallback,
  void *aContext
)

Memulai kueri untuk tabel tetangga router untuk router tertentu.

Detail
Parameter
[in] aInstance
Instance OpenThread.
[in] aRloc16
RLOC16 {i>router<i} yang akan dikueri.
[in] aCallback
Callback untuk melaporkan tabel yang dikueri.
[in] aContext
Konteks yang akan diteruskan dalam aCallback.
Nilai Pengembalian
OT_ERROR_NONE
Kueri berhasil dimulai.
OT_ERROR_BUSY
Permintaan kueri atau penemuan sebelumnya masih berlangsung.
OT_ERROR_INVALID_ARGS
aRloc16 bukan router RLOC16 yang valid.
OT_ERROR_INVALID_STATE
Perangkat tidak terpasang.
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan buffer untuk mengirim pesan kueri.

Makro

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

Menentukan bahwa Versi Thread tidak diketahui.

Ini digunakan di otMeshDiagRouterInfo untuk properti mVersion saat perangkat tidak menyediakan versinya. Hal ini menunjukkan bahwa perangkat mungkin menjalankan 1.3.0 (nilai versi 4) atau yang lebih lama.

Referensi

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