Exiba e gerencie dados de rede com a CLI OT

Veja o código-fonte no GitHub

Os dados de rede Thread contêm informações sobre roteadores de borda e outros servidores disponíveis na rede Thread. Roteadores de borda e dispositivos que oferecem serviços registrar as informações com o líder. O líder coleta e estrutura essas informações nos dados da rede Thread e distribui as informações a todos os dispositivos na rede Thread.

Os roteadores de borda podem registrar prefixos atribuídos à rede e aos prefixos do Thread para os quais oferecem rotas. Os Serviços podem registrar quaisquer informações relevantes para o próprio serviço.

As informações do roteador de borda e de serviço podem ser estáveis ou temporárias. Conversa estável Os dados de rede são distribuídos para todos os dispositivos, incluindo os dispositivos finais inativos (SEDs). Os dados de rede temporários são distribuídos para todos os nós, exceto SEDs.

Comandos de dados de rede

Para ver uma lista de comandos netdata, digite help:

netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done

full commands

Os comandos full informam o status da sinalização ou restabelecem o rastreamento dela a camada "net data full", for invocado.

Esse comando requer OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL.

Comandos length e maxlength

O comando length recebe o tamanho atual dos dados da rede Thread, relatado como número de bytes. os comandos maxlength conseguem o tamanho máximo observado; ou redefine o comprimento máximo rastreado.

publish commands

O editor de dados de rede fornece mecanismos para limitar o número de recursos Entradas de serviço e prefixo (prefixo da malha ou rota externa) na linha de execução Dados de rede monitorando os dados da rede e gerenciando quando adicionar ou remover entradas.

O editor exige OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE.

Formar a rede e configurar o prefixo

  1. Gere uma nova configuração de rede.

    dataset init new
    Done
    
  2. Exiba a configuração de rede.

    dataset
    Active Timestamp: 1
    Channel: 13
    Channel Mask: 0x07fff800
    Ext PAN ID: d63e8e3e495ebbc3
    Mesh Local Prefix: fd3d:b50b:f96d:722d::/64
    Network Key: dfd34f0f05cad978ec4e32b0413038ff
    Network Name: OpenThread-8f28
    PAN ID: 0x8f28
    PSKc: c23a76e98f1a6483639b1ac1271e2e27
    Security Policy: 0, onrcb
    Done
    
  3. Confirme o novo conjunto de dados com o conjunto de dados operacional ativo em não volátil armazenamento.

    dataset commit active
    Done
    
  4. Ativar a interface Thread

    ifconfig up
    Done
    thread start
    Done
    
  5. Exibe os endereços IPv6 atribuídos à interface da linha de execução.

    ipaddr
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    
  6. Registra um prefixo IPv6 atribuído à rede Thread.

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. Exibir dados da rede Thread.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    fd49:7770:7fc5:0::/64 s med 4000
    Services:
    44970 5d c000 s 4000
    44970 01 9a04b000000e10 s 4000
    Done
    

    Prefixos e rotas incluem mapeamentos de argumentos e o valor de RLOC.

    Os registros de serviço incluem otServiceConfig valores, incluindo mEnterpriseNumber, mServiceData, otServerConfig::mServerData e s para indicar otServerConfig::mStable. O RLOC também é anexado ao final do registro.

  8. Mostrar o tamanho atual, em número de bytes, da rede Thread da partição Dados.

    netdata length
    23
    Done
    
  9. Exibir endereços IPv6 atribuídos à interface Thread, incluindo o adicionou um prefixo.

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

Anexar à rede existente

Apenas a chave de rede é necessária para que um dispositivo seja conectado a uma rede Thread.

Embora não seja obrigatório, especificar o canal evita a necessidade de pesquisar vários canais, melhorando a latência e a eficiência do processo de anexação.

Depois que um dispositivo é anexado a uma rede Thread, ele recupera o conjunto de dados operacional ativo completo.

  1. Criar um conjunto de dados operacional ativo parcial.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. Ativar a interface Thread.

    ifconfig up
    Done
    thread start
    Done
    
  3. Depois de conectar à rede atual, exiba os dados da rede Thread.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. Mostrar o tamanho atual, em número de bytes, da rede Thread da partição Dados.

    netdata length
    23
    Done
    
  5. Exibe os endereços IPv6 atribuídos à interface da linha de execução.

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

Depuração e diagnósticos

Os dados de rede têm um tamanho limitado de 254 bytes. Se os roteadores de borda continuarem a adicionar entradas (por exemplo, prefixos, rotas ou entradas de serviço) aos dados de rede pode ficar cheio. Quando isso acontece, novas solicitações de um roteador de borda para adicionar novos itens serão rejeitados ou ignorados pelo líder. O líder não sinalizar necessariamente a rejeição para o roteador de borda para que ele possa sem perceber imediatamente que os dados de rede estão ficando cheios. No entanto, existe um disponível para detectar quando os dados de rede estão ficando cheios.

O método de detecção, implementado nos roteadores de borda e no líder, usa um mecanismo de API de retorno de chamada e permite que os usuários sejam notificados quando dados de rede forem cheio. O callback pode ser usado para realizar ações, como remover prefixos desatualizados ou entradas de serviço. Os comandos netdata full são usados para a sinalização que rastreia se os dados da rede for invocado. Esses comandos pode informar o status da sinalização ou redefini-la.

Nos casos de uso típicos de Thread, é improvável que os dados de rede mesmo em um cenário onde há muitos roteadores de borda e todos adicionar prefixos de rota.

Tecnicamente, é possível que os dados de rede fiquem cheios, mas isso geralmente devido a uma configuração incorreta ou a um problema no Roteador de Borda. O netdata length e os comandos netdata maxlength podem ajudar a depurar erros completos de dados de rede. length obtém o tamanho atual dos dados de rede, relatado como bytes e O maxlength consegue o tamanho máximo observado e também pode redefinir o rastreamento comprimento máximo.