Diagnostyka sieci typu mesh
Ten moduł zawiera definicje i funkcje diagnostyki sieci typu mesh.
Podsumowanie
Interfejsy API diagnostyki sieci typu mesh wymagają OPENTHREAD_CONFIG_MESH_DIAG_ENABLE
i OPENTHREAD_FTD
.
Definicje typów |
|
---|---|
otMeshDiagChildEntry
|
typedefstruct otMeshDiagChildEntry
Reprezentuje informacje o wpisie podrzędnym z otMeshDiagQueryChildTable() . |
otMeshDiagChildInfo
|
typedefstruct otMeshDiagChildInfo
Reprezentuje informacje o wykrytym elemencie podrzędnym w siatce wątków przy użyciu elementu otMeshDiagDiscoverTopology() . |
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)
|
typedefvoid(*
Reprezentuje wywołanie zwrotne używane przez otMeshDiagQueryChildrenIp6Addrs() do dostarczania informacji o podrzędnym MTD i jego liście adresów IPv6. |
otMeshDiagChildIterator
|
typedefstruct otMeshDiagChildIterator
Nieprzejrzysty iterator do iteracji na liście elementów podrzędnych routera. |
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)
|
typedefvoid(*
Typ wskaźnika reprezentuje wywołanie zwrotne używane przez otMeshDiagDiscoverTopology() do dostarczania informacji o wykrytym routerze. |
otMeshDiagDiscoverConfig
|
typedefstruct otMeshDiagDiscoverConfig
Reprezentuje zbiór konfiguracji używanych podczas odkrywania topologii sieci typu mesh wskazującej elementy do wykrycia. |
otMeshDiagIp6AddrIterator
|
typedefstruct otMeshDiagIp6AddrIterator
Nieprzejrzysty iterator do iteracji na liście adresów IPv6 routera. |
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)
|
typedefvoid(*
Reprezentuje wywołanie zwrotne używane przez funkcję otMeshDiagQueryChildTable() w celu dostarczenia informacji o wpisach w tabeli podrzędnej. |
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)
|
typedefvoid(*
Reprezentuje wywołanie zwrotne używane przez otMeshDiagQueryRouterNeighborTable() do dostarczania informacji o wpisach w tabeli sąsiedniego routera. |
otMeshDiagRouterInfo
|
typedefstruct otMeshDiagRouterInfo
Reprezentuje informacje o routerze w sieci typu Thread mesh wykrytego przy użyciu otMeshDiagDiscoverTopology() . |
otMeshDiagRouterNeighborEntry
|
typedef Reprezentuje informacje o wpisie sąsiada routera z otMeshDiagQueryRouterNeighborTable() . |
Funkcje |
|
---|---|
otMeshDiagCancel(otInstance *aInstance)
|
void
Anuluje trwające odkrycie topologii, jeśli trwa. W przeciwnym razie nie musisz wykonywać żadnych działań.
|
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
|
Rozpoczyna wykrywanie topologii sieci.
|
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
|
Przelatuje przez wykryte elementy podrzędne routera.
|
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
|
Przeprowadza iterację przez wykryte adresy IPv6 routera lub podrzędnego MTD.
|
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
|
Rozpoczyna zapytanie o tabelę podrzędną dla danego routera.
|
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
|
Wysyła zapytanie do elementu nadrzędnego w celu pobrania adresów IPv6 wszystkich jego elementów podrzędnych MTD.
|
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
|
Rozpoczyna zapytanie o tabelę sąsiadów routera dla danego routera.
|
Konstrukcja |
|
---|---|
otMeshDiagChildEntry |
Reprezentuje informacje o wpisie podrzędnym z |
otMeshDiagChildInfo |
Reprezentuje informacje o wykrytym elemencie podrzędnym w siatce wątków przy użyciu elementu |
otMeshDiagDiscoverConfig |
Reprezentuje zbiór konfiguracji używanych podczas odkrywania topologii sieci typu mesh wskazującej elementy do wykrycia. |
otMeshDiagRouterInfo |
Reprezentuje informacje o routerze w sieci typu Thread mesh wykrytego przy użyciu |
otMeshDiagRouterNeighborEntry |
Reprezentuje informacje o wpisie sąsiada routera z |
Definicje typów
otMeshDiagChildEntry
struct otMeshDiagChildEntry otMeshDiagChildEntry
Reprezentuje informacje o wpisie podrzędnym z otMeshDiagQueryChildTable()
.
mSupportsErrRate
wskazuje, czy funkcja śledzenia błędów jest obsługiwana, a wartości mFrameErrorRate
i mMessageErrorRate
są prawidłowe. Odsetek błędów klatek śledzi błędy przesyłania klatek (od strony podrzędnej) w warstwie MAC, natomiast mMessageErrorRate
śledzi odsetek błędów związanych z komunikatami IPv6 (powyżej warstwy MAC i po ponownych próbach MAC), gdy komunikat IPv6 zostanie utracony. Jeśli na przykład wiadomość jest duża i wymaga fragmentacji 6LoWPAN, wiadomość tx jest uznawana za nieudaną, jeśli transakcja tx z jej fragmentem nie powiodła się (na przykład nie została potwierdzona).
otMeshDiagChildInfo
struct otMeshDiagChildInfo otMeshDiagChildInfo
Reprezentuje informacje o wykrytym elemencie podrzędnym w siatce wątków przy użyciu elementu otMeshDiagDiscoverTopology()
.
otMeshDiagChildIp6AddrsCallback
void(* otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext)
Reprezentuje wywołanie zwrotne używane przez otMeshDiagQueryChildrenIp6Addrs()
do dostarczania informacji o podrzędnym MTD i jego liście adresów IPv6.
Gdy aError
ma wartość OT_ERROR_PENDING
, oznacza to, że jest więcej elementów podrzędnych i wywołanie zwrotne zostanie wykonane ponownie.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
otMeshDiagChildIterator
struct otMeshDiagChildIterator otMeshDiagChildIterator
Nieprzejrzysty iterator do iteracji na liście elementów podrzędnych routera.
Wskaźniki do instancji tego typu są podane w pliku otMeshDiagRouterInfo
.
otMeshDiagDiscoverCallback
void(* otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext)
Typ wskaźnika reprezentuje wywołanie zwrotne używane przez otMeshDiagDiscoverTopology()
do dostarczania informacji o wykrytym routerze.
Gdy aError
ma wartość OT_ERROR_PENDING
, oznacza to, że wykrywanie nie zostało jeszcze zakończone i będzie więcej routerów do wykrycia i wywołanie zwrotne zostanie wykonane ponownie.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otMeshDiagDiscoverConfig
struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig
Reprezentuje zbiór konfiguracji używanych podczas odkrywania topologii sieci typu mesh wskazującej elementy do wykrycia.
otMeshDiagIp6AddrIterator
struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator
Nieprzejrzysty iterator do iteracji na liście adresów IPv6 routera.
Wskaźniki do instancji tego typu są podane w pliku otMeshDiagRouterInfo
.
otMeshDiagQueryChildTableCallback
void(* otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext)
Reprezentuje wywołanie zwrotne używane przez funkcję otMeshDiagQueryChildTable()
w celu dostarczenia informacji o wpisach w tabeli podrzędnej.
Jeśli aError
ma wartość OT_ERROR_PENDING
, oznacza to, że tabela nadal ma więcej wpisów i wywołanie zwrotne zostanie wykonane ponownie.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otMeshDiagQueryRouterNeighborTableCallback
void(* otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext)
Reprezentuje wywołanie zwrotne używane przez otMeshDiagQueryRouterNeighborTable()
do dostarczania informacji o wpisach w tabeli sąsiedniego routera.
Jeśli aError
ma wartość OT_ERROR_PENDING
, oznacza to, że tabela nadal ma więcej wpisów i wywołanie zwrotne zostanie wykonane ponownie.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otMeshDiagRouterInfo
struct otMeshDiagRouterInfo otMeshDiagRouterInfo
Reprezentuje informacje o routerze w sieci typu Thread mesh wykrytego przy użyciu otMeshDiagDiscoverTopology()
.
otMeshDiagRouterNeighborEntry
struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry
Reprezentuje informacje o wpisie sąsiada routera z otMeshDiagQueryRouterNeighborTable()
.
mSupportsErrRate
wskazuje, czy funkcja śledzenia błędów jest obsługiwana, a wartości mFrameErrorRate
i mMessageErrorRate
są prawidłowe. Odsetek błędów klatek śledzi błędy przesyłania klatek (od strony podrzędnej) w warstwie MAC, natomiast mMessageErrorRate
śledzi odsetek błędów związanych z komunikatami IPv6 (powyżej warstwy MAC i po ponownych próbach MAC), gdy komunikat IPv6 zostanie utracony. Jeśli na przykład wiadomość jest duża i wymaga fragmentacji 6LoWPAN, wiadomość tx jest uznawana za nieudaną, jeśli transakcja tx z jej fragmentem nie powiodła się (na przykład nie została potwierdzona).
Funkcje
otMeshDiagCancel
void otMeshDiagCancel( otInstance *aInstance )
Anuluje trwające odkrycie topologii, jeśli trwa. W przeciwnym razie nie musisz wykonywać żadnych działań.
Po anulowaniu bieżącego wykrywania wywołanie zwrotne z otMeshDiagDiscoverTopology()
nie będzie już wywoływane.
otMeshDiagDiscoverTopology
otError otMeshDiagDiscoverTopology( otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext )
Rozpoczyna wykrywanie topologii sieci.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otMeshDiagGetNextChildInfo
otError otMeshDiagGetNextChildInfo( otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo )
Przelatuje przez wykryte elementy podrzędne routera.
Ta funkcja MUSI być używana z wywołania zwrotnego otMeshDiagDiscoverCallback()
i używania mChildIterator
z struktury aRouterInfo
, która jest udostępniana jako dane wejściowe wywołania zwrotnego.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otMeshDiagGetNextIp6Address
otError otMeshDiagGetNextIp6Address( otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address )
Przeprowadza iterację przez wykryte adresy IPv6 routera lub podrzędnego MTD.
MUSI być używana
- z wywołania zwrotnego
otMeshDiagDiscoverCallback()
i użyjmIp6AddrIterator
z strukturyaRouterInfo
, która jest udostępniana jako dane wejściowe dla wywołania zwrotnego lub - z wywołania zwrotnego
otMeshDiagChildIp6AddrsCallback()
wraz z podanym adresemaIp6AddrIterator
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otMeshDiagQueryChildTable
otError otMeshDiagQueryChildTable( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext )
Rozpoczyna zapytanie o tabelę podrzędną dla danego routera.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otMeshDiagQueryChildrenIp6Addrs
otError otMeshDiagQueryChildrenIp6Addrs( otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext )
Wysyła zapytanie do elementu nadrzędnego w celu pobrania adresów IPv6 wszystkich jego elementów podrzędnych MTD.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
otMeshDiagQueryRouterNeighborTable
otError otMeshDiagQueryRouterNeighborTable( otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext )
Rozpoczyna zapytanie o tabelę sąsiadów routera dla danego routera.
Szczegóły | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||
Zwracane wartości |
|
Makra
OT_MESH_DIAG_VERSION_UNKNOWN
OT_MESH_DIAG_VERSION_UNKNOWN 0xffff
Określa, że wersja wątku jest nieznana.
Jest ona używana w właściwości otMeshDiagRouterInfo
w przypadku mVersion
, gdy urządzenie nie podaje swojej wersji. Wskazuje to, że urządzenie prawdopodobnie ma wersję 1.3.0 (wartość 4) lub wcześniejszą.
Zasoby
Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.