Diagnostic du réseau maillé

Ce module comprend les définitions et les fonctions des diagnostics de réseau maillé.

Résumé

Les API de diagnostic du maillage nécessitent OPENTHREAD_CONFIG_MESH_DIAG_ENABLE et OPENTHREAD_FTD.

Typedefs

otMeshDiagChildEntry typedef
Représente les informations sur une entrée enfant de otMeshDiagQueryChildTable().
otMeshDiagChildInfo typedef
Représente les informations sur un enfant détecté dans le maillage Thread à l'aide de otMeshDiagDiscoverTopology().
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
Représente le rappel utilisé par otMeshDiagQueryChildrenIp6Addrs() pour fournir des informations sur un enfant MTD et sa liste d'adresses IPv6.
otMeshDiagChildIterator typedef
Itérateur opaque permettant d'itérer la liste des enfants d'un routeur.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
Le type de pointeur représente le rappel utilisé par otMeshDiagDiscoverTopology() pour fournir des informations sur un routeur détecté.
otMeshDiagDiscoverConfig typedef
Représente l'ensemble des configurations utilisées lors de la découverte de la topologie du maillage, indiquant les éléments à découvrir.
otMeshDiagIp6AddrIterator typedef
Itérateur opaque permettant d'itérer la liste des adresses IPv6 d'un routeur.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
Représente le rappel utilisé par otMeshDiagQueryChildTable() pour fournir des informations sur les entrées de la table enfant.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
Représente le rappel utilisé par otMeshDiagQueryRouterNeighborTable() pour fournir des informations sur les entrées de la table de routeur voisines.
otMeshDiagRouterInfo typedef
Représente les informations sur un routeur du réseau maillé Thread découvertes à l'aide de otMeshDiagDiscoverTopology().
otMeshDiagRouterNeighborEntry typedef
Représente les informations sur l'entrée du voisin du routeur à partir de otMeshDiagQueryRouterNeighborTable().

distantes

otMeshDiagCancel(otInstance *aInstance)
void
Annule une découverte de topologie en cours s'il y en a une, sinon aucune action n'est requise.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
Démarre la découverte de la topologie du réseau.
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
Il itère les enfants découverts d'un routeur.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
Itération des adresses IPv6 découvertes d'un routeur ou d'un enfant MTD.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
Lance une requête pour la table enfant pour un routeur donné.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
Envoie une requête à un parent pour récupérer les adresses IPv6 de tous ses enfants MTD.
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
Lance une requête pour la table des voisins du routeur pour un routeur donné.

Structs

otMeshDiagChildEntry

Représente les informations sur une entrée enfant de otMeshDiagQueryChildTable().

otMeshDiagChildInfo

Représente les informations sur un enfant détecté dans le maillage Thread à l'aide de otMeshDiagDiscoverTopology().

otMeshDiagDiscoverConfig

Représente l'ensemble des configurations utilisées lors de la découverte de la topologie du maillage, indiquant les éléments à découvrir.

otMeshDiagRouterInfo

Représente les informations sur un routeur du réseau maillé Thread découvertes à l'aide de otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

Représente les informations sur l'entrée du voisin du routeur à partir de otMeshDiagQueryRouterNeighborTable().

Typedefs

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

Représente les informations sur une entrée enfant de otMeshDiagQueryChildTable().

mSupportsErrRate indique si la fonctionnalité de suivi des erreurs est compatible ou non, et si les valeurs mFrameErrorRate et mMessageErrorRate sont valides. Le taux d'erreur de trame suit les erreurs de trame (vers l'enfant) au niveau de la couche MAC, tandis que mMessageErrorRate suit le taux d'erreur des messages IPv6 (au-dessus de la couche MAC et après les nouvelles tentatives MAC) lorsqu'un message IPv6 est abandonné. Par exemple, si le message est volumineux et nécessite une fragmentation 6LoWPAN, le message tx est considéré comme ayant échoué si l'un de ses fragments de trame tx échoue (par exemple, jamais confirmé).

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

Représente les informations sur un enfant détecté dans le maillage Thread à l'aide de otMeshDiagDiscoverTopology().

otMeshDiagChildIp6AddrsCallback

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

Représente le rappel utilisé par otMeshDiagQueryChildrenIp6Addrs() pour fournir des informations sur un enfant MTD et sa liste d'adresses IPv6.

Lorsque aError est défini sur OT_ERROR_PENDING, cela signifie qu'il existe d'autres enfants et que le rappel est à nouveau invoqué.

Détails
Paramètres
[in] aError
OT_ERROR_PENDING Indique que le tableau contient d'autres enfants. OT_ERROR_NONE Indique que la table est terminée. OT_ERROR_ANSWER_TIMEOUT Délai d'attente dépassé.
[in] aChildRloc16
RLOC16 de l'enfant. 0xfffe est utilisé sur OT_ERROR_RESPONSE_TIMEOUT.
[in] aIp6AddrIterator
Itérateur pour parcourir les adresses IPv6 de l'enfant avec aRloc à l'aide de otMeshDiagGetNextIp6Address(). Définissez sa valeur sur NULL pour OT_ERROR_RESPONSE_TIMEOUT.
[in] aContext
Contexte spécifique à l'application

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

Itérateur opaque permettant d'itérer la liste des enfants d'un routeur.

Les pointeurs vers une instance de ce type sont fournis dans otMeshDiagRouterInfo.

otMeshDiagDiscoverCallback

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

Le type de pointeur représente le rappel utilisé par otMeshDiagDiscoverTopology() pour fournir des informations sur un routeur détecté.

Lorsque aError est défini sur OT_ERROR_PENDING, cela signifie que la découverte n'est pas encore terminée, qu'il y aura d'autres routeurs à découvrir et que le rappel sera à nouveau invoqué.

Détails
Paramètres
[in] aError
OT_ERROR_PENDING Indique qu'il y a d'autres routeurs à découvrir. OT_ERROR_NONE Indique qu'il s'agit du dernier routeur et que la découverte du réseau maillé est terminée. OT_ERROR_ANSWER_TIMEOUT Délai expiré en attente de la réponse d'un ou de plusieurs routeurs.
[in] aRouterInfo
Les informations sur le routeur découverts (peuvent être nulles si aError est défini sur OT_ERROR_ANSWER_TIMEOUT).
[in] aContext
Contexte spécifique à l'application

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

Représente l'ensemble des configurations utilisées lors de la découverte de la topologie du maillage, indiquant les éléments à découvrir.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

Itérateur opaque permettant d'itérer la liste des adresses IPv6 d'un routeur.

Les pointeurs vers une instance de ce type sont fournis dans otMeshDiagRouterInfo.

otMeshDiagQueryChildTableCallback

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

Représente le rappel utilisé par otMeshDiagQueryChildTable() pour fournir des informations sur les entrées de la table enfant.

Si aError est défini sur OT_ERROR_PENDING, cela signifie que la table comporte encore d'autres entrées et que le rappel est à nouveau appelé.

Détails
Paramètres
[in] aError
OT_ERROR_PENDING Indique que le tableau contient d'autres entrées. OT_ERROR_NONE Indique que la table est terminée. OT_ERROR_ANSWER_TIMEOUT Délai d'attente dépassé.
[in] aChildEntry
L'entrée enfant (peut être nulle si aError est OT_ERROR_ANSWER_TIMEOUT ou OT_ERROR_NONE).
[in] aContext
Contexte spécifique à l'application

otMeshDiagQueryRouterNeighborTableCallback

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

Représente le rappel utilisé par otMeshDiagQueryRouterNeighborTable() pour fournir des informations sur les entrées de la table de routeur voisines.

Si aError est défini sur OT_ERROR_PENDING, cela signifie que la table comporte encore d'autres entrées et que le rappel est à nouveau appelé.

Détails
Paramètres
[in] aError
OT_ERROR_PENDING Indique que le tableau contient d'autres entrées. OT_ERROR_NONE Indique que la table est terminée. OT_ERROR_ANSWER_TIMEOUT Délai d'attente dépassé.
[in] aNeighborEntry
L'entrée voisine (peut être nulle si aError est ANSWER_TIMEOUT ou NONE).
[in] aContext
Contexte spécifique à l'application

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

Représente les informations sur un routeur du réseau maillé Thread découvertes à l'aide de otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

Représente les informations sur l'entrée du voisin du routeur à partir de otMeshDiagQueryRouterNeighborTable().

mSupportsErrRate indique si la fonctionnalité de suivi des erreurs est compatible ou non, et si les valeurs mFrameErrorRate et mMessageErrorRate sont valides. Le taux d'erreur de trame suit les erreurs de trame (vers l'enfant) au niveau de la couche MAC, tandis que mMessageErrorRate suit le taux d'erreur des messages IPv6 (au-dessus de la couche MAC et après les nouvelles tentatives MAC) lorsqu'un message IPv6 est abandonné. Par exemple, si le message est volumineux et nécessite une fragmentation 6LoWPAN, le message tx est considéré comme ayant échoué si l'un de ses fragments de trame tx échoue (par exemple, jamais confirmé).

distantes

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

Annule une découverte de topologie en cours s'il y en a une, sinon aucune action n'est requise.

Lorsque la découverte en cours est annulée, le rappel de otMeshDiagDiscoverTopology() n'est plus appelé.

otMeshDiagDiscoverTopology

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

Démarre la découverte de la topologie du réseau.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[in] aConfig
Configuration à utiliser pour la découverte (par exemple, les éléments à découvrir).
[in] aCallback
Rappel permettant de signaler les routeurs détectés.
[in] aContext
Contexte à transmettre dans aCallback.
Valeurs de retour
OT_ERROR_NONE
La détection de la topologie du réseau a bien démarré.
OT_ERROR_BUSY
Une demande de découverte précédente est toujours en cours.
OT_ERROR_INVALID_STATE
L'appareil n'est pas connecté.
OT_ERROR_NO_BUFS
Impossible d'allouer un tampon pour l'envoi des messages de découverte.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

Il itère les enfants découverts d'un routeur.

Cette fonction DOIT être utilisée à partir du rappel otMeshDiagDiscoverCallback() et utiliser mChildIterator à partir de la struct aRouterInfo fournie comme entrée pour le rappel.

Détails
Paramètres
[in,out] aIterator
Itérateur d'adresse à utiliser.
[out] aChildInfo
Pointeur permettant de renvoyer les informations enfants (le cas échéant).
Valeurs de retour
OT_ERROR_NONE
L'élément enfant suivant a bien été récupéré. aChildInfo et aIterator sont mis à jour.
OT_ERROR_NOT_FOUND
Il n'y a plus d'enfant. Fin de la liste atteinte.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

Itération des adresses IPv6 découvertes d'un routeur ou d'un enfant MTD.

DOIT être utilisé

Détails
Paramètres
[in,out] aIterator
Itérateur d'adresse à utiliser.
[out] aIp6Address
Pointeur permettant de renvoyer l'adresse IPv6 suivante (le cas échéant).
Valeurs de retour
OT_ERROR_NONE
L'adresse suivante a bien été récupérée. aIp6Address et aIterator sont mis à jour.
OT_ERROR_NOT_FOUND
Il n'y a plus d'adresse. Fin de la liste atteinte.

otMeshDiagQueryChildTable

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

Lance une requête pour la table enfant pour un routeur donné.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[in] aRloc16
La RLOC16 du routeur à interroger.
[in] aCallback
Rappel permettant de signaler la table enfant interrogée.
[in] aContext
Contexte à transmettre dans aCallback.
Valeurs de retour
OT_ERROR_NONE
La requête a bien été lancée.
OT_ERROR_BUSY
Une requête de découverte ou de requête précédente est toujours en cours.
OT_ERROR_INVALID_ARGS
aRloc16 n'est pas un routeur RLOC16 valide.
OT_ERROR_INVALID_STATE
L'appareil n'est pas connecté.
OT_ERROR_NO_BUFS
Impossible d'allouer un tampon pour l'envoi des messages de requête.

otMeshDiagQueryChildrenIp6Addrs

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

Envoie une requête à un parent pour récupérer les adresses IPv6 de tous ses enfants MTD.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[in] aRloc16
RLOC16 du parent à interroger.
[in] aCallback
Rappel permettant de signaler la liste d'adresses IPv6 enfant interrogée.
[in] aContext
Contexte à transmettre dans aCallback.
Valeurs de retour
OT_ERROR_NONE
La requête a bien été lancée.
OT_ERROR_BUSY
Une requête de découverte ou de requête précédente est toujours en cours.
OT_ERROR_INVALID_ARGS
Le aRloc16 n'est pas un RLOC16 valide.
OT_ERROR_INVALID_STATE
L'appareil n'est pas connecté.
OT_ERROR_NO_BUFS
Impossible d'allouer un tampon pour l'envoi des messages de requête.

otMeshDiagQueryRouterNeighborTable

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

Lance une requête pour la table des voisins du routeur pour un routeur donné.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[in] aRloc16
La RLOC16 du routeur à interroger.
[in] aCallback
Rappel permettant de signaler la table interrogée.
[in] aContext
Contexte à transmettre dans aCallback.
Valeurs de retour
OT_ERROR_NONE
La requête a bien été lancée.
OT_ERROR_BUSY
Une requête de découverte ou de requête précédente est toujours en cours.
OT_ERROR_INVALID_ARGS
aRloc16 n'est pas un routeur RLOC16 valide.
OT_ERROR_INVALID_STATE
L'appareil n'est pas connecté.
OT_ERROR_NO_BUFS
Impossible d'allouer un tampon pour l'envoi des messages de requête.

Macros

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

Indique que la version de Thread est inconnue.

Utilisé dans otMeshDiagRouterInfo pour la propriété mVersion lorsque l'appareil ne fournit pas sa version. Cela indique que l'appareil est probablement équipé de la version 1.3.0 (valeur de version 4) ou d'une version antérieure.

Ressources

Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez la section Ressources.