Supervisão infantil

Ver código-fonte no GitHub

Para fornecer um mecanismo de eficiência energética para que um dispositivo final de suspensão (SED, na sigla em inglês) verifique se ele ainda está conectado ao roteador principal (listado na tabela filha do roteador principal), ative o recurso de supervisão infantil.

A especificação Thread requer que um SED realize periodicamente uma troca de solicitação de atualização e resposta filhas do MLE com o roteador pai para verificar a conectividade. A supervisão de crianças é uma solução alternativa para a verificação da conectividade do SED com o roteador, que coloca a carga da transmissão de mensagens no roteador principal, em vez do SED com restrição de energia.

Como funciona

Esse recurso funciona de duas maneiras, dependendo do tipo de nó e de quais parâmetros estão configurados:

No familiar responsável

Se um roteador pai não transmitir para o SED filho no OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL, ele será colocado na fila e enviará uma mensagem de supervisão filha para o SED filho. A mensagem de supervisão de crianças é um frame MAC que contém as seguintes informações:

  • O RLOC16 do SED como o destino no cabeçalho MAC.
  • Um payload vazio.

Por padrão, um cabeçalho MAC contém uma solicitação 802.15.4 ACK. Para desativar essa solicitação na mensagem de supervisão de crianças, defina o parâmetro OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST como 1.

Na criança

Se um SED não ouvir o roteador pai dentro do OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT, ele pressupõe que perdeu a conexão com o roteador pai e inicia o processo de anexação do MLE para se reconectar ao roteador pai.

Como ativar

Esse recurso fica desativado por padrão.

Por definição

Para ativar a supervisão de crianças, defina OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE como 1 no arquivo openthread/src/core/config/child_supervision.h, antes de criar o OpenThread:

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

Por opção

Como alternativa, use a opção de build -DOT_CHILD_SUPERVISION=ON ao criar OpenThread:

./script/build -DOT_CHILD_SUPERVISION=ON

Parâmetros

Use os seguintes parâmetros em openthread/src/core/config/child_supervision.h para personalizar esse recurso:

Parâmetros
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
Valor padrão
129 segundos
Descrição
Especifica o intervalo de supervisão em segundos usado pelo pai. Defina como "0" para desativar o processo de supervisão no familiar responsável.
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
Valor padrão
190 segundos
Descrição
Especifica o intervalo de tempo limite da verificação de supervisão em segundos usado por um dispositivo no estado de uma criança. Defina como 0 para desativar o processo de verificação de supervisão na criança.
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
Valor padrão
0 (solicitações ACK ativadas)
Descrição
Defina como 1 para limpar/desativar a solicitação de ACK 802.15.4 no cabeçalho MAC de uma mensagem de supervisão.

API

Use a API Child Supervision para gerenciar a supervisão e verificar intervalos de tempo limite diretamente no seu aplicativo OpenThread.

CLI

Não há comandos da CLI relacionados a esse recurso.