Diagnóstico de mallas

En este módulo, se incluyen definiciones y funciones del diagnóstico de malla.

Resumen

Las APIs de diagnóstico de malla requieren OPENTHREAD_CONFIG_MESH_DIAG_ENABLE y OPENTHREAD_FTD.

Typedefs

otMeshDiagChildEntry typedef
Representa información sobre una entrada secundaria de otMeshDiagQueryChildTable().
otMeshDiagChildInfo typedef
Representa la información sobre un elemento secundario descubierto en la malla de Thread con otMeshDiagDiscoverTopology().
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
Representa la devolución de llamada que usa otMeshDiagQueryChildrenIp6Addrs() para proporcionar información sobre un elemento secundario de MTD y su lista de direcciones IPv6.
otMeshDiagChildIterator typedef
Un iterador opaco para iterar en una lista de elementos secundarios de un router.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
El tipo de puntero representa la devolución de llamada que usa otMeshDiagDiscoverTopology() para proporcionar información sobre un router detectado.
otMeshDiagDiscoverConfig typedef
Representa el conjunto de parámetros de configuración que se usan cuando se descubre la topología de malla, en la que se indica qué elementos se deben descubrir.
otMeshDiagIp6AddrIterator typedef
Un iterador opaco para iterar en una lista de direcciones IPv6 de un router.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
Representa la devolución de llamada que usa otMeshDiagQueryChildTable() para proporcionar información sobre las entradas de tablas secundarias.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
Representa la devolución de llamada que usa otMeshDiagQueryRouterNeighborTable() para proporcionar información sobre las entradas de la tabla del router vecino.
otMeshDiagRouterInfo typedef
Representa la información sobre un router en la malla de Thread que se descubrió mediante otMeshDiagDiscoverTopology().
otMeshDiagRouterNeighborEntry typedef
Representa la información sobre la entrada de un vecino del router desde otMeshDiagQueryRouterNeighborTable().

remotas

otMeshDiagCancel(otInstance *aInstance)
void
Cancela un descubrimiento de topología continuo si hay uno; de lo contrario, no se realizará ninguna acción.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
Inicia el descubrimiento de la topología de red.
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
Itera a través de los elementos secundarios descubiertos de un router.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
Itera a través de las direcciones IPv6 descubiertas de un router o un elemento secundario de MTD.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
Inicia la consulta en la tabla secundaria de un router determinado.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
Envía una consulta a un elemento superior para recuperar las direcciones IPv6 de todos sus elementos secundarios de MTD.
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
Inicia la consulta de la tabla de vecino de router de un router determinado.

Structs

otMeshDiagChildEntry

Representa información sobre una entrada secundaria de otMeshDiagQueryChildTable().

otMeshDiagChildInfo

Representa la información sobre un elemento secundario descubierto en la malla de Thread con otMeshDiagDiscoverTopology().

otMeshDiagDiscoverConfig

Representa el conjunto de parámetros de configuración que se usan cuando se descubre la topología de malla, en la que se indica qué elementos se deben descubrir.

otMeshDiagRouterInfo

Representa la información sobre un router en la malla de Thread que se descubrió mediante otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

Representa la información sobre la entrada de un vecino del router desde otMeshDiagQueryRouterNeighborTable().

Typedefs

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

Representa información sobre una entrada secundaria de otMeshDiagQueryChildTable().

mSupportsErrRate indica si se admite la función de seguimiento de errores y si los valores mFrameErrorRate y mMessageErrorRate son válidos. La tasa de errores de trama realiza un seguimiento de los errores de fotogramas (hacia el elemento secundario) en la capa de MAC, mientras que mMessageErrorRate rastrea la tasa de errores de mensajes IPv6 (por encima de la capa de MAC y después de los reintentos de MAC) cuando se descarta un mensaje IPv6. Por ejemplo, si el mensaje es grande y requiere fragmentación 6LoWPAN, se considera que el mensaje tx falló si uno de sus fotogramas de fragmento falla (por ejemplo, nunca se confirma).

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

Representa la información sobre un elemento secundario descubierto en la malla de Thread con otMeshDiagDiscoverTopology().

otMeshDiagChildIp6AddrsCallback

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

Representa la devolución de llamada que usa otMeshDiagQueryChildrenIp6Addrs() para proporcionar información sobre un elemento secundario de MTD y su lista de direcciones IPv6.

Cuando aError es OT_ERROR_PENDING, indica que hay más elementos secundarios y se volverá a invocar la devolución de llamada.

Detalles
Parámetros
[in] aError
OT_ERROR_PENDING Indica que hay más elementos secundarios en la tabla. OT_ERROR_NONE Indica que la tabla finalizó. OT_ERROR_RESPONSE_TIMEOUT Se agotó el tiempo de espera de respuesta.
[in] aChildRloc16
La RLOC16 del niño. 0xfffe se usa en OT_ERROR_RESPONSE_TIMEOUT.
[in] aIp6AddrIterator
Un iterador para revisar las direcciones IPv6 del elemento secundario con aRloc mediante otMeshDiagGetNextIp6Address(). Configúralo como NULL el OT_ERROR_RESPONSE_TIMEOUT.
[in] aContext
Contexto específico de la aplicación.

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

Un iterador opaco para iterar en una lista de elementos secundarios de un router.

Los punteros a instancia de este tipo se proporcionan en otMeshDiagRouterInfo.

otMeshDiagDiscoverCallback

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

El tipo de puntero representa la devolución de llamada que usa otMeshDiagDiscoverTopology() para proporcionar información sobre un router detectado.

Cuando aError es OT_ERROR_PENDING, indica que la detección aún no finalizó y que habrá más routers para descubrir, y se invocará la devolución de llamada nuevamente.

Detalles
Parámetros
[in] aError
OT_ERROR_PENDING Indica que hay más routers por descubrir. OT_ERROR_NONE Indica que este es el último router y que se completó el descubrimiento de la malla. OT_ERROR_RESPONSE_TIMEOUT Se agotó el tiempo de espera para la respuesta de uno o más routers.
[in] aRouterInfo
La información del router detectado (puede ser nula si aError es OT_ERROR_RESPONSE_TIMEOUT).
[in] aContext
Contexto específico de la aplicación.

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

Representa el conjunto de parámetros de configuración que se usan cuando se descubre la topología de malla, en la que se indica qué elementos se deben descubrir.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

Un iterador opaco para iterar en una lista de direcciones IPv6 de un router.

Los punteros a instancia de este tipo se proporcionan en otMeshDiagRouterInfo.

otMeshDiagQueryChildTableCallback

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

Representa la devolución de llamada que usa otMeshDiagQueryChildTable() para proporcionar información sobre las entradas de tablas secundarias.

Cuando aError es OT_ERROR_PENDING, indica que la tabla todavía tiene más entradas y se invocará la devolución de llamada nuevamente.

Detalles
Parámetros
[in] aError
OT_ERROR_PENDING Indica que hay más entradas en la tabla. OT_ERROR_NONE Indica que la tabla finalizó. OT_ERROR_RESPONSE_TIMEOUT Se agotó el tiempo de espera de respuesta.
[in] aChildEntry
La entrada secundaria (puede ser nula si aError es OT_ERROR_RESPONSE_TIMEOUT o bien OT_ERROR_NONE).
[in] aContext
Contexto específico de la aplicación.

otMeshDiagQueryRouterNeighborTableCallback

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

Representa la devolución de llamada que usa otMeshDiagQueryRouterNeighborTable() para proporcionar información sobre las entradas de la tabla del router vecino.

Cuando aError es OT_ERROR_PENDING, indica que la tabla todavía tiene más entradas y se invocará la devolución de llamada nuevamente.

Detalles
Parámetros
[in] aError
OT_ERROR_PENDING Indica que hay más entradas en la tabla. OT_ERROR_NONE Indica que la tabla finalizó. OT_ERROR_RESPONSE_TIMEOUT Se agotó el tiempo de espera de respuesta.
[in] aNeighborEntry
La entrada de vecino (puede ser nula si aError es RESPONSE_TIMEOUT o NONE).
[in] aContext
Contexto específico de la aplicación.

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

Representa la información sobre un router en la malla de Thread que se descubrió mediante otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

Representa la información sobre la entrada de un vecino del router desde otMeshDiagQueryRouterNeighborTable().

mSupportsErrRate indica si se admite la función de seguimiento de errores y si los valores mFrameErrorRate y mMessageErrorRate son válidos. La tasa de errores de trama realiza un seguimiento de los errores de fotogramas (hacia el elemento secundario) en la capa de MAC, mientras que mMessageErrorRate rastrea la tasa de errores de mensajes IPv6 (por encima de la capa de MAC y después de los reintentos de MAC) cuando se descarta un mensaje IPv6. Por ejemplo, si el mensaje es grande y requiere fragmentación 6LoWPAN, se considera que el mensaje tx falló si uno de sus fotogramas de fragmento falla (por ejemplo, nunca se confirma).

remotas

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

Cancela un descubrimiento de topología continuo si hay uno; de lo contrario, no se realizará ninguna acción.

Cuando se cancele la detección en curso, ya no se llamará a la devolución de llamada de otMeshDiagDiscoverTopology().

otMeshDiagDiscoverTopology

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

Inicia el descubrimiento de la topología de red.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[in] aConfig
La configuración que se usará para el descubrimiento (p.ej., qué elementos descubrir).
[in] aCallback
La devolución de llamada para informar los routers detectados.
[in] aContext
Un contexto para pasar aCallback.
Valores que se muestran
OT_ERROR_NONE
El descubrimiento de la topología de red se inició correctamente.
OT_ERROR_BUSY
Una solicitud de descubrimiento anterior aún está en curso.
OT_ERROR_INVALID_STATE
El dispositivo no está conectado.
OT_ERROR_NO_BUFS
No se pudo asignar un búfer para enviar mensajes de detección.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

Itera a través de los elementos secundarios descubiertos de un router.

Esta función se DEBE usar desde la devolución de llamada otMeshDiagDiscoverCallback() y usar el mChildIterator de la estructura aRouterInfo que se proporciona como entrada para la devolución de llamada.

Detalles
Parámetros
[in,out] aIterator
El iterador de dirección que se usará.
[out] aChildInfo
Un puntero para mostrar la información secundaria (si corresponde).
Valores que se muestran
OT_ERROR_NONE
Se recuperó correctamente el siguiente elemento secundario. Se actualizaron aChildInfo y aIterator.
OT_ERROR_NOT_FOUND
No hay más hijo o hija. Se alcanzó el final de la lista.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

Itera a través de las direcciones IPv6 descubiertas de un router o un elemento secundario de MTD.

DEBE usarse

Detalles
Parámetros
[in,out] aIterator
El iterador de dirección que se usará.
[out] aIp6Address
Un puntero para mostrar la siguiente dirección IPv6 (si existe).
Valores que se muestran
OT_ERROR_NONE
Se recuperó correctamente la siguiente dirección. Se actualizaron aIp6Address y aIterator.
OT_ERROR_NOT_FOUND
No hay más direcciones. Se alcanzó el final de la lista.

otMeshDiagQueryChildTable

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

Inicia la consulta en la tabla secundaria de un router determinado.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[in] aRloc16
El RLOC16 del router que se consultará.
[in] aCallback
Es la devolución de llamada para informar la tabla secundaria consultada.
[in] aContext
Un contexto para pasar aCallback.
Valores que se muestran
OT_ERROR_NONE
La consulta se inició correctamente.
OT_ERROR_BUSY
Una solicitud de descubrimiento o consulta anterior aún está en curso.
OT_ERROR_INVALID_ARGS
El aRloc16 no es un router RLOC16 válido.
OT_ERROR_INVALID_STATE
El dispositivo no está conectado.
OT_ERROR_NO_BUFS
No se pudo asignar un búfer para enviar mensajes de consulta.

otMeshDiagQueryChildrenIp6Addrs

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

Envía una consulta a un elemento superior para recuperar las direcciones IPv6 de todos sus elementos secundarios de MTD.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[in] aRloc16
El RLOC16 del elemento superior que se consultará.
[in] aCallback
La devolución de llamada que informa la lista de direcciones IPv6 secundarias consultadas.
[in] aContext
Un contexto para pasar aCallback.
Valores que se muestran
OT_ERROR_NONE
La consulta se inició correctamente.
OT_ERROR_BUSY
Una solicitud de descubrimiento o consulta anterior aún está en curso.
OT_ERROR_INVALID_ARGS
El aRloc16 no es un RLOC16 válido.
OT_ERROR_INVALID_STATE
El dispositivo no está conectado.
OT_ERROR_NO_BUFS
No se pudo asignar un búfer para enviar mensajes de consulta.

otMeshDiagQueryRouterNeighborTable

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

Inicia la consulta de la tabla de vecino de router de un router determinado.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread.
[in] aRloc16
El RLOC16 del router que se consultará.
[in] aCallback
Es la devolución de llamada para informar la tabla consultada.
[in] aContext
Un contexto para pasar aCallback.
Valores que se muestran
OT_ERROR_NONE
La consulta se inició correctamente.
OT_ERROR_BUSY
Una solicitud de descubrimiento o consulta anterior aún está en curso.
OT_ERROR_INVALID_ARGS
El aRloc16 no es un router RLOC16 válido.
OT_ERROR_INVALID_STATE
El dispositivo no está conectado.
OT_ERROR_NO_BUFS
No se pudo asignar un búfer para enviar mensajes de consulta.

Macros

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

Especifica que la versión de Thread es desconocida.

Se usa en otMeshDiagRouterInfo para la propiedad mVersion cuando el dispositivo no proporciona su versión. Indica que el dispositivo probablemente ejecuta la versión 1.3.0 (valor de versión 4) o una anterior.

Recursos

Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.