Diagnostica mesh

Questo modulo include definizioni e funzioni per la diagnostica mesh.

Riepilogo

Le API di diagnostica della rete mesh richiedono i criteri OPENTHREAD_CONFIG_MESH_DIAG_ENABLE e OPENTHREAD_FTD.

Typedef

otMeshDiagChildEntry typedef
Rappresenta le informazioni su una voce secondaria di otMeshDiagQueryChildTable().
otMeshDiagChildInfo typedef
Rappresenta le informazioni su un asset secondario rilevato nella rete mesh Thread utilizzando otMeshDiagDiscoverTopology().
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
Rappresenta il callback utilizzato da otMeshDiagQueryChildrenIp6Addrs() per fornire informazioni su un elemento secondario MTD e sul relativo elenco di indirizzi IPv6.
otMeshDiagChildIterator typedef
Un iteratore opaco per eseguire l'iterazione nell'elenco degli elementi secondari di un router.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
Il tipo di puntatore rappresenta il callback utilizzato da otMeshDiagDiscoverTopology() per fornire informazioni su un router rilevato.
otMeshDiagDiscoverConfig typedef
Rappresenta l'insieme di configurazioni utilizzate durante il rilevamento della topologia mesh che indicano quali elementi da scoprire.
otMeshDiagIp6AddrIterator typedef
Un iteratore opaco per eseguire l'iterazione sull'elenco di indirizzi IPv6 di un router.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
Rappresenta il callback utilizzato da otMeshDiagQueryChildTable() per fornire informazioni sulle voci della tabella figlio.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
Rappresenta il callback utilizzato da otMeshDiagQueryRouterNeighborTable() per fornire informazioni sulle voci nella tabella del router vicino.
otMeshDiagRouterInfo typedef
Rappresenta le informazioni su un router nella rete mesh Thread rilevata tramite otMeshDiagDiscoverTopology().
otMeshDiagRouterNeighborEntry typedef
Rappresenta le informazioni sulla voce di un vicino router da otMeshDiagQueryRouterNeighborTable().

Funzioni

otMeshDiagCancel(otInstance *aInstance)
void
Annulla il rilevamento della topologia in corso, se presente, altrimenti non verrà eseguita alcuna azione.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
Avvia il rilevamento della topologia di rete.
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
Itera attraverso i figli scoperti di un router.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
Itera attraverso gli indirizzi IPv6 rilevati di un router o di un server MTD secondario.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
Avvia la query per la tabella figlio per un determinato router.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
Invia una query a un padre per recuperare gli indirizzi IPv6 di tutti i relativi indirizzi secondari MTD.
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
Avvia la query per la tabella dei vicini router per un determinato router.

Strutture

otMeshDiagChildEntry

Rappresenta le informazioni su una voce secondaria di otMeshDiagQueryChildTable().

otMeshDiagChildInfo

Rappresenta le informazioni su un asset secondario rilevato nella rete mesh Thread utilizzando otMeshDiagDiscoverTopology().

otMeshDiagDiscoverConfig

Rappresenta l'insieme di configurazioni utilizzate durante il rilevamento della topologia mesh che indicano quali elementi da scoprire.

otMeshDiagRouterInfo

Rappresenta le informazioni su un router nella rete mesh Thread rilevata tramite otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

Rappresenta le informazioni sulla voce di un vicino router da otMeshDiagQueryRouterNeighborTable().

Typedef

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

Rappresenta le informazioni su una voce secondaria di otMeshDiagQueryChildTable().

mSupportsErrRate indica se la funzionalità di monitoraggio degli errori è supportata e i valori mFrameErrorRate e mMessageErrorRate sono validi. Il tasso di errore dei frame tiene traccia degli errori TX del frame (verso il livello secondario) a livello MAC, mentre mMessageErrorRate tiene traccia della percentuale di errori dei messaggi IPv6 (sopra il livello MAC e dopo i nuovi tentativi MAC) quando un messaggio IPv6 viene ignorato. Ad esempio, se il messaggio è di grandi dimensioni e richiede la frammentazione 6LoWPAN, il messaggio tx viene considerato non riuscito se uno dei suoi frammenti con tx ha esito negativo (ad esempio, mai ack).

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

Rappresenta le informazioni su un asset secondario rilevato nella rete mesh Thread utilizzando otMeshDiagDiscoverTopology().

otMeshDiagChildIp6AddrsCallback

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

Rappresenta il callback utilizzato da otMeshDiagQueryChildrenIp6Addrs() per fornire informazioni su un elemento secondario MTD e sul relativo elenco di indirizzi IPv6.

Quando aError è OT_ERROR_PENDING, indica che ci sono altri elementi secondari e il callback verrà richiamato.

Dettagli
Parametri
[in] aError
OT_ERROR_PENDING Indica la presenza di altri elementi figlio nella tabella. OT_ERROR_NONE Indica che la tabella è terminata. OT_ERROR_ANSWER_TIMEOUT Timeout durante l'attesa della risposta.
[in] aChildRloc16
RLOC16 del bambino. 0xfffe è in uso su OT_ERROR_RESPONSE_TIMEOUT.
[in] aIp6AddrIterator
Un iteratore per passare attraverso gli indirizzi IPv6 dell'organizzazione secondaria con aRloc utilizzando otMeshDiagGetNextIp6Address(). Impostato su NULL su OT_ERROR_RESPONSE_TIMEOUT.
[in] aContext
Contesto specifico per l'applicazione.

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

Un iteratore opaco per eseguire l'iterazione nell'elenco degli elementi secondari di un router.

I puntatori all'istanza di questo tipo sono forniti in otMeshDiagRouterInfo.

otMeshDiagDiscoverCallback

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

Il tipo di puntatore rappresenta il callback utilizzato da otMeshDiagDiscoverTopology() per fornire informazioni su un router rilevato.

Quando aError è OT_ERROR_PENDING, significa che il rilevamento non è ancora terminato e che devono essere rilevati altri router e che il callback verrà richiamato.

Dettagli
Parametri
[in] aError
OT_ERROR_PENDING Indica che sono presenti altri router da rilevare. OT_ERROR_NONE indica che è l'ultimo rilevamento di router e mesh completato. OT_ERROR_ANSWER_TIMEOUT Timeout durante l'attesa della risposta da uno o più router.
[in] aRouterInfo
Informazioni sul router rilevate (possono essere nulle se aError è OT_ERROR_ANSWER_TIMEOUT).
[in] aContext
Contesto specifico per l'applicazione.

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

Rappresenta l'insieme di configurazioni utilizzate durante il rilevamento della topologia mesh che indicano quali elementi da scoprire.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

Un iteratore opaco per eseguire l'iterazione sull'elenco di indirizzi IPv6 di un router.

I puntatori all'istanza di questo tipo sono forniti in otMeshDiagRouterInfo.

otMeshDiagQueryChildTableCallback

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

Rappresenta il callback utilizzato da otMeshDiagQueryChildTable() per fornire informazioni sulle voci della tabella figlio.

Quando aError è OT_ERROR_PENDING, indica che la tabella contiene ancora altre voci e il callback verrà richiamato.

Dettagli
Parametri
[in] aError
OT_ERROR_PENDING Indica che la tabella contiene altre voci. OT_ERROR_NONE Indica che la tabella è terminata. OT_ERROR_ANSWER_TIMEOUT Timeout durante l'attesa della risposta.
[in] aChildEntry
La voce secondaria (può essere nulla se aError è OT_ERROR_ANSWER_TIMEOUT o OT_ERROR_NONE).
[in] aContext
Contesto specifico per l'applicazione.

otMeshDiagQueryRouterNeighborTableCallback

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

Rappresenta il callback utilizzato da otMeshDiagQueryRouterNeighborTable() per fornire informazioni sulle voci nella tabella del router vicino.

Quando aError è OT_ERROR_PENDING, indica che la tabella contiene ancora altre voci e il callback verrà richiamato.

Dettagli
Parametri
[in] aError
OT_ERROR_PENDING Indica che la tabella contiene altre voci. OT_ERROR_NONE Indica che la tabella è terminata. OT_ERROR_ANSWER_TIMEOUT Timeout durante l'attesa della risposta.
[in] aNeighborEntry
La voce del vicino (può essere null se aError è ANSWER_TIMEOUT o NONE).
[in] aContext
Contesto specifico per l'applicazione.

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

Rappresenta le informazioni su un router nella rete mesh Thread rilevata tramite otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

Rappresenta le informazioni sulla voce di un vicino router da otMeshDiagQueryRouterNeighborTable().

mSupportsErrRate indica se la funzionalità di monitoraggio degli errori è supportata e i valori mFrameErrorRate e mMessageErrorRate sono validi. Il tasso di errore dei frame tiene traccia degli errori TX del frame (verso il livello secondario) a livello MAC, mentre mMessageErrorRate tiene traccia della percentuale di errori dei messaggi IPv6 (sopra il livello MAC e dopo i nuovi tentativi MAC) quando un messaggio IPv6 viene ignorato. Ad esempio, se il messaggio è di grandi dimensioni e richiede la frammentazione 6LoWPAN, il messaggio tx viene considerato non riuscito se uno dei suoi frammenti con tx ha esito negativo (ad esempio, mai ack).

Funzioni

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

Annulla il rilevamento della topologia in corso, se presente, altrimenti non verrà eseguita alcuna azione.

Quando il rilevamento in corso viene annullato, il callback da otMeshDiagDiscoverTopology() non verrà più chiamato.

otMeshDiagDiscoverTopology

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

Avvia il rilevamento della topologia di rete.

Dettagli
Parametri
[in] aInstance
L'istanza OpenThread.
[in] aConfig
La configurazione da utilizzare per il rilevamento (ad es. quali elementi rilevare).
[in] aCallback
Il callback per segnalare i router rilevati.
[in] aContext
Un contesto da trasmettere in aCallback.
Valori restituiti
OT_ERROR_NONE
Il rilevamento della topologia di rete è stato avviato.
OT_ERROR_BUSY
È ancora in corso una precedente richiesta di rilevamento.
OT_ERROR_INVALID_STATE
Il dispositivo non è collegato.
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per inviare i messaggi di rilevamento.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

Itera attraverso i figli scoperti di un router.

Questa funzione DEVE essere utilizzata dal callback otMeshDiagDiscoverCallback() e usa il mChildIterator dello struct aRouterInfo fornito come input per il callback.

Dettagli
Parametri
[in,out] aIterator
L'iteratore dell'indirizzo da utilizzare.
[out] aChildInfo
Un puntatore per restituire le informazioni relative al bambino (se presenti).
Valori restituiti
OT_ERROR_NONE
Elemento secondario successivo recuperato. aChildInfo e aIterator sono stati aggiornati.
OT_ERROR_NOT_FOUND
Nessun altro bambino. Raggiunta la fine dell'elenco.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

Itera attraverso gli indirizzi IPv6 rilevati di un router o di un server MTD secondario.

DEVE essere utilizzato

Dettagli
Parametri
[in,out] aIterator
L'iteratore dell'indirizzo da utilizzare.
[out] aIp6Address
Un puntatore per restituire l'indirizzo IPv6 successivo (se presente).
Valori restituiti
OT_ERROR_NONE
Indirizzo successivo recuperato. aIp6Address e aIterator sono stati aggiornati.
OT_ERROR_NOT_FOUND
Nessun altro indirizzo. Raggiunta la fine dell'elenco.

otMeshDiagQueryChildTable

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

Avvia la query per la tabella figlio per un determinato router.

Dettagli
Parametri
[in] aInstance
L'istanza OpenThread.
[in] aRloc16
L'RLOC16 del router su cui eseguire una query.
[in] aCallback
Il callback per segnalare la tabella figlio oggetto della query.
[in] aContext
Un contesto da trasmettere in aCallback.
Valori restituiti
OT_ERROR_NONE
La query è stata avviata.
OT_ERROR_BUSY
È ancora in corso una precedente richiesta di rilevamento o query.
OT_ERROR_INVALID_ARGS
aRloc16 non è un router RLOC16 valido.
OT_ERROR_INVALID_STATE
Il dispositivo non è collegato.
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per l'invio dei messaggi di query.

otMeshDiagQueryChildrenIp6Addrs

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

Invia una query a un padre per recuperare gli indirizzi IPv6 di tutti i relativi indirizzi secondari MTD.

Dettagli
Parametri
[in] aInstance
L'istanza OpenThread.
[in] aRloc16
L'RLOC16 dell'elemento padre di cui eseguire la query.
[in] aCallback
Il callback per segnalare l'elenco di indirizzi IPv6 secondari oggetto della query.
[in] aContext
Un contesto da trasmettere in aCallback.
Valori restituiti
OT_ERROR_NONE
La query è stata avviata.
OT_ERROR_BUSY
È ancora in corso una precedente richiesta di rilevamento o query.
OT_ERROR_INVALID_ARGS
aRloc16 non è un RLOC16 valido.
OT_ERROR_INVALID_STATE
Il dispositivo non è collegato.
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per l'invio dei messaggi di query.

otMeshDiagQueryRouterNeighborTable

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

Avvia la query per la tabella dei vicini router per un determinato router.

Dettagli
Parametri
[in] aInstance
L'istanza OpenThread.
[in] aRloc16
L'RLOC16 del router su cui eseguire una query.
[in] aCallback
Il callback per segnalare la tabella su cui è stata eseguita la query.
[in] aContext
Un contesto da trasmettere in aCallback.
Valori restituiti
OT_ERROR_NONE
La query è stata avviata.
OT_ERROR_BUSY
È ancora in corso una precedente richiesta di rilevamento o query.
OT_ERROR_INVALID_ARGS
aRloc16 non è un router RLOC16 valido.
OT_ERROR_INVALID_STATE
Il dispositivo non è collegato.
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per l'invio dei messaggi di query.

Macro

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

Specifica che la versione del thread è sconosciuta.

Viene utilizzato in otMeshDiagRouterInfo per la proprietà mVersion quando il dispositivo non fornisce la sua versione. Questo indica che probabilmente sul dispositivo è in esecuzione la versione 1.3.0 (valore della versione 4) o una versione precedente.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.