Diagnóstico da rede mesh

Este módulo inclui definições e funções para diagnósticos de malha.

Resumo

As APIs Mesh Diagnostics exigem OPENTHREAD_CONFIG_MESH_DIAG_ENABLE e OPENTHREAD_FTD.

Typedefs

otMeshDiagChildEntry typedef
Representa informações sobre uma entrada filha de otMeshDiagQueryChildTable().
otMeshDiagChildInfo typedef
Representa informações sobre um filho descoberto na malha Thread usando otMeshDiagDiscoverTopology().
otMeshDiagChildIp6AddrsCallback)(otError aError, uint16_t aChildRloc16, otMeshDiagIp6AddrIterator *aIp6AddrIterator, void *aContext) typedef
void(*
Representa o callback usado por otMeshDiagQueryChildrenIp6Addrs() para fornecer informações sobre um filho do MTD e a lista de endereços IPv6 dele.
otMeshDiagChildIterator typedef
Um iterador opaco para iterar a lista de filhos de um roteador.
otMeshDiagDiscoverCallback)(otError aError, otMeshDiagRouterInfo *aRouterInfo, void *aContext) typedef
void(*
O tipo de ponteiro representa o callback usado pelo otMeshDiagDiscoverTopology() para fornecer informações sobre um roteador descoberto.
otMeshDiagDiscoverConfig typedef
Representa o conjunto de configurações usado ao descobrir a topologia de malha indicando quais itens descobrir.
otMeshDiagIp6AddrIterator typedef
Um iterador opaco para iterar a lista de endereços IPv6 de um roteador.
otMeshDiagQueryChildTableCallback)(otError aError, const otMeshDiagChildEntry *aChildEntry, void *aContext) typedef
void(*
Representa o callback usado por otMeshDiagQueryChildTable() para fornecer informações sobre entradas da tabela filha.
otMeshDiagQueryRouterNeighborTableCallback)(otError aError, const otMeshDiagRouterNeighborEntry *aNeighborEntry, void *aContext) typedef
void(*
Representa o callback usado pelo otMeshDiagQueryRouterNeighborTable() para fornecer informações sobre as entradas da tabela do roteador vizinho.
otMeshDiagRouterInfo typedef
Representa informações sobre um roteador na malha Thread descobertas usando otMeshDiagDiscoverTopology().
otMeshDiagRouterNeighborEntry typedef
Representa informações sobre uma entrada vizinha do roteador de otMeshDiagQueryRouterNeighborTable().

remotas

otMeshDiagCancel(otInstance *aInstance)
void
Cancela uma descoberta de topologia em andamento, se houver uma. Caso contrário, nenhuma ação.
otMeshDiagDiscoverTopology(otInstance *aInstance, const otMeshDiagDiscoverConfig *aConfig, otMeshDiagDiscoverCallback aCallback, void *aContext)
Inicia a descoberta da topologia de rede.
otMeshDiagGetNextChildInfo(otMeshDiagChildIterator *aIterator, otMeshDiagChildInfo *aChildInfo)
Itera pelos filhos descobertos de um roteador.
otMeshDiagGetNextIp6Address(otMeshDiagIp6AddrIterator *aIterator, otIp6Address *aIp6Address)
Itera por meio dos endereços IPv6 descobertos de um roteador ou de um filho MTD.
otMeshDiagQueryChildTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryChildTableCallback aCallback, void *aContext)
Inicia a consulta da tabela filha de um determinado roteador.
otMeshDiagQueryChildrenIp6Addrs(otInstance *aInstance, uint16_t aRloc16, otMeshDiagChildIp6AddrsCallback aCallback, void *aContext)
Envia uma consulta a um pai para recuperar os endereços IPv6 de todos os filhos MTD.
otMeshDiagQueryRouterNeighborTable(otInstance *aInstance, uint16_t aRloc16, otMeshDiagQueryRouterNeighborTableCallback aCallback, void *aContext)
Inicia a consulta da tabela vizinha do roteador de um determinado roteador.

Estruturas

otMeshDiagChildEntry

Representa informações sobre uma entrada filha de otMeshDiagQueryChildTable().

otMeshDiagChildInfo

Representa informações sobre um filho descoberto na malha Thread usando otMeshDiagDiscoverTopology().

otMeshDiagDiscoverConfig

Representa o conjunto de configurações usado ao descobrir a topologia de malha indicando quais itens descobrir.

otMeshDiagRouterInfo

Representa informações sobre um roteador na malha Thread descobertas usando otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

Representa informações sobre uma entrada vizinha do roteador de otMeshDiagQueryRouterNeighborTable().

Typedefs

otMeshDiagChildEntry

struct otMeshDiagChildEntry otMeshDiagChildEntry

Representa informações sobre uma entrada filha de otMeshDiagQueryChildTable().

mSupportsErrRate indica se o recurso de rastreamento de erros é compatível e os valores mFrameErrorRate e mMessageErrorRate são válidos. A taxa de erros de frame rastreia erros de tx de frame (em direção ao filho) na camada MAC, enquanto o mMessageErrorRate rastreia a taxa de erro de mensagens do IPv6 (acima da camada do MAC e após novas tentativas do MAC) quando uma mensagem IPv6 é descartada. Por exemplo, se a mensagem for grande e exigir fragmentação 6LoWPAN, a mensagem tx será considerada com falha se uma das tx do frame de fragmento falhar (por exemplo, nunca confirmada).

otMeshDiagChildInfo

struct otMeshDiagChildInfo otMeshDiagChildInfo

Representa informações sobre um filho descoberto na malha Thread usando otMeshDiagDiscoverTopology().

otMeshDiagChildIp6AddrsCallback

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

Representa o callback usado por otMeshDiagQueryChildrenIp6Addrs() para fornecer informações sobre um filho do MTD e a lista de endereços IPv6 dele.

Quando aError for OT_ERROR_PENDING, isso indica que há mais filhos e que o callback será invocado novamente.

Detalhes
Parâmetros
[in] aError
OT_ERROR_PENDING Indica que há mais filhos na tabela. OT_ERROR_NONE Indica que a tabela foi concluída. OT_ERROR_RESPONSE_TIMEOUT expirou aguardando resposta.
[in] aChildRloc16
O RLOC16 do filho. 0xfffe é usado em OT_ERROR_RESPONSE_TIMEOUT.
[in] aIp6AddrIterator
Um iterador para percorrer os endereços IPv6 do filho com aRloc usando otMeshDiagGetNextIp6Address(). Defina como NULL em OT_ERROR_RESPONSE_TIMEOUT.
[in] aContext
Contexto específico do aplicativo.

otMeshDiagChildIterator

struct otMeshDiagChildIterator otMeshDiagChildIterator

Um iterador opaco para iterar a lista de filhos de um roteador.

Ponteiros para instância desse tipo são fornecidos em otMeshDiagRouterInfo.

otMeshDiagDiscoverCallback

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

O tipo de ponteiro representa o callback usado pelo otMeshDiagDiscoverTopology() para fornecer informações sobre um roteador descoberto.

Quando aError for OT_ERROR_PENDING, isso indica que a descoberta ainda não foi concluída e que haverá mais roteadores para descobrir, e o callback será invocado novamente.

Detalhes
Parâmetros
[in] aError
OT_ERROR_PENDING indica que há mais roteadores a serem descobertos. OT_ERROR_NONE Indica que a última descoberta de roteador e rede foi concluída. OT_ERROR_RESPONSE_TIMEOUT expirou ao aguardar a resposta de um ou mais roteadores.
[in] aRouterInfo
As informações do roteador descobertas (pode ser nula se aError for OT_ERROR_RESPONSE_TIMEOUT).
[in] aContext
Contexto específico do aplicativo.

otMeshDiagDiscoverConfig

struct otMeshDiagDiscoverConfig otMeshDiagDiscoverConfig

Representa o conjunto de configurações usado ao descobrir a topologia de malha indicando quais itens descobrir.

otMeshDiagIp6AddrIterator

struct otMeshDiagIp6AddrIterator otMeshDiagIp6AddrIterator

Um iterador opaco para iterar a lista de endereços IPv6 de um roteador.

Ponteiros para instância desse tipo são fornecidos em otMeshDiagRouterInfo.

otMeshDiagQueryChildTableCallback

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

Representa o callback usado por otMeshDiagQueryChildTable() para fornecer informações sobre entradas da tabela filha.

Quando aError é OT_ERROR_PENDING, isso indica que a tabela ainda tem mais entradas e que o callback será invocado novamente.

Detalhes
Parâmetros
[in] aError
OT_ERROR_PENDING Indica que há mais entradas na tabela. OT_ERROR_NONE Indica que a tabela foi concluída. OT_ERROR_RESPONSE_TIMEOUT expirou aguardando resposta.
[in] aChildEntry
A entrada filha (pode ser nula se aError for OT_ERROR_RESPONSE_TIMEOUT ou OT_ERROR_NONE).
[in] aContext
Contexto específico do aplicativo.

otMeshDiagQueryRouterNeighborTableCallback

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

Representa o callback usado pelo otMeshDiagQueryRouterNeighborTable() para fornecer informações sobre as entradas da tabela do roteador vizinho.

Quando aError é OT_ERROR_PENDING, isso indica que a tabela ainda tem mais entradas e que o callback será invocado novamente.

Detalhes
Parâmetros
[in] aError
OT_ERROR_PENDING Indica que há mais entradas na tabela. OT_ERROR_NONE Indica que a tabela foi concluída. OT_ERROR_RESPONSE_TIMEOUT expirou aguardando resposta.
[in] aNeighborEntry
A entrada vizinha (pode ser nula se aError for RESPONSE_TIMEOUT ou NONE).
[in] aContext
Contexto específico do aplicativo.

otMeshDiagRouterInfo

struct otMeshDiagRouterInfo otMeshDiagRouterInfo

Representa informações sobre um roteador na malha Thread descobertas usando otMeshDiagDiscoverTopology().

otMeshDiagRouterNeighborEntry

struct otMeshDiagRouterNeighborEntry otMeshDiagRouterNeighborEntry

Representa informações sobre uma entrada vizinha do roteador de otMeshDiagQueryRouterNeighborTable().

mSupportsErrRate indica se o recurso de rastreamento de erros é compatível e os valores mFrameErrorRate e mMessageErrorRate são válidos. A taxa de erros de frame rastreia erros de tx de frame (em direção ao filho) na camada MAC, enquanto o mMessageErrorRate rastreia a taxa de erro de mensagens do IPv6 (acima da camada do MAC e após novas tentativas do MAC) quando uma mensagem IPv6 é descartada. Por exemplo, se a mensagem for grande e exigir fragmentação 6LoWPAN, a mensagem tx será considerada com falha se uma das tx do frame de fragmento falhar (por exemplo, nunca confirmada).

remotas

otMeshDiagCancel

void otMeshDiagCancel(
  otInstance *aInstance
)

Cancela uma descoberta de topologia em andamento, se houver uma. Caso contrário, nenhuma ação.

Quando a descoberta em andamento for cancelada, o callback de otMeshDiagDiscoverTopology() não será mais chamado.

otMeshDiagDiscoverTopology

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

Inicia a descoberta da topologia de rede.

Detalhes
Parâmetros
[in] aInstance
A instância do OpenThread.
[in] aConfig
A configuração a ser usada para a descoberta (por exemplo, quais itens descobrir).
[in] aCallback
O callback para informar os roteadores descobertos.
[in] aContext
Um contexto a ser transmitido em aCallback.
Valores de retorno
OT_ERROR_NONE
A descoberta de topologia de rede foi iniciada.
OT_ERROR_BUSY
Uma solicitação de descoberta anterior ainda está em andamento.
OT_ERROR_INVALID_STATE
O dispositivo não está conectado.
OT_ERROR_NO_BUFS
Não foi possível alocar buffer para enviar mensagens de descoberta.

otMeshDiagGetNextChildInfo

otError otMeshDiagGetNextChildInfo(
  otMeshDiagChildIterator *aIterator,
  otMeshDiagChildInfo *aChildInfo
)

Itera pelos filhos descobertos de um roteador.

Essa função PRECISA ser usada no callback otMeshDiagDiscoverCallback() e usar o mChildIterator do struct aRouterInfo fornecido como entrada para o callback.

Detalhes
Parâmetros
[in,out] aIterator
O iterador de endereço a ser usado.
[out] aChildInfo
Um ponteiro para retornar as informações do filho (se houver).
Valores de retorno
OT_ERROR_NONE
O próximo filho foi recuperado. aChildInfo e aIterator foram atualizados.
OT_ERROR_NOT_FOUND
Não há mais filhos. Você chegou ao fim da lista.

otMeshDiagGetNextIp6Address

otError otMeshDiagGetNextIp6Address(
  otMeshDiagIp6AddrIterator *aIterator,
  otIp6Address *aIp6Address
)

Itera por meio dos endereços IPv6 descobertos de um roteador ou de um filho MTD.

DEVE ser usado

Detalhes
Parâmetros
[in,out] aIterator
O iterador de endereço a ser usado.
[out] aIp6Address
Um ponteiro para retornar o próximo endereço IPv6 (se houver).
Valores de retorno
OT_ERROR_NONE
O próximo endereço foi recuperado. aIp6Address e aIterator foram atualizados.
OT_ERROR_NOT_FOUND
Não há mais endereços. Você chegou ao fim da lista.

otMeshDiagQueryChildTable

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

Inicia a consulta da tabela filha de um determinado roteador.

Detalhes
Parâmetros
[in] aInstance
A instância do OpenThread.
[in] aRloc16
O RLOC16 do roteador a ser consultado.
[in] aCallback
O callback para relatar a tabela filha consultada.
[in] aContext
Um contexto a ser transmitido em aCallback.
Valores de retorno
OT_ERROR_NONE
A consulta foi iniciada.
OT_ERROR_BUSY
Uma solicitação de descoberta ou consulta anterior ainda está em andamento.
OT_ERROR_INVALID_ARGS
O aRloc16 não é um RLOC16 de roteador válido.
OT_ERROR_INVALID_STATE
O dispositivo não está conectado.
OT_ERROR_NO_BUFS
Não foi possível alocar buffer para enviar mensagens de consulta.

otMeshDiagQueryChildrenIp6Addrs

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

Envia uma consulta a um pai para recuperar os endereços IPv6 de todos os filhos MTD.

Detalhes
Parâmetros
[in] aInstance
A instância do OpenThread.
[in] aRloc16
O RLOC16 do pai a ser consultado.
[in] aCallback
O callback para informar a lista de endereços IPv6 filhos consultados.
[in] aContext
Um contexto a ser transmitido em aCallback.
Valores de retorno
OT_ERROR_NONE
A consulta foi iniciada.
OT_ERROR_BUSY
Uma solicitação de descoberta ou consulta anterior ainda está em andamento.
OT_ERROR_INVALID_ARGS
O aRloc16 não é um RLOC16 válido.
OT_ERROR_INVALID_STATE
O dispositivo não está conectado.
OT_ERROR_NO_BUFS
Não foi possível alocar buffer para enviar mensagens de consulta.

otMeshDiagQueryRouterNeighborTable

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

Inicia a consulta da tabela vizinha do roteador de um determinado roteador.

Detalhes
Parâmetros
[in] aInstance
A instância do OpenThread.
[in] aRloc16
O RLOC16 do roteador a ser consultado.
[in] aCallback
O callback para informar a tabela consultada.
[in] aContext
Um contexto a ser transmitido em aCallback.
Valores de retorno
OT_ERROR_NONE
A consulta foi iniciada.
OT_ERROR_BUSY
Uma solicitação de descoberta ou consulta anterior ainda está em andamento.
OT_ERROR_INVALID_ARGS
O aRloc16 não é um RLOC16 de roteador válido.
OT_ERROR_INVALID_STATE
O dispositivo não está conectado.
OT_ERROR_NO_BUFS
Não foi possível alocar buffer para enviar mensagens de consulta.

Macros

OT_MESH_DIAG_VERSION_UNKNOWN

 OT_MESH_DIAG_VERSION_UNKNOWN 0xffff

Especifica que a versão do Thread é desconhecida.

É usado no otMeshDiagRouterInfo da propriedade mVersion quando o dispositivo não fornece a própria versão. Isso indica que o dispositivo provavelmente está executando a versão 1.3.0 (valor da versão 4) ou anterior.

Recursos

Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.