O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Detecção de atolamento

Ver fonte no GitHub

Para fornecer um mecanismo configurável para detecção de interferência de sinal em qualquer nó OpenThread, ative o recurso Detecção de obstrução.

Esse recurso é útil para certificações de dispositivos que exigem a capacidade de detectar interferência de sinal em um canal específico. Pode ser configurado para atender aos requisitos de cada tipo de certificação.

Como funciona

A detecção de congestionamento monitora o RSSI (indicador de intensidade do sinal recebido) de um nó durante janelas de tempo especificadas para determinar se o canal foi congestionado.

Quando a detecção de atolamento está habilitada:

  1. O Estado de detecção de atolamento é definido como false .
  2. O nó amostra o RSSI várias vezes em cada intervalo de um segundo.
  3. Se o RSSI durante todo esse intervalo de um segundo permanecer acima do RSSI Threshold configurado para cada amostra, esse intervalo de um segundo será considerado bloqueado.
  4. Se um número agregado de intervalos de um segundo congestionados for maior ou igual ao número agregado de segundos do Período Ocupado configurados dentro dos segundos da Janela de Detecção configurados anteriormente em qualquer momento, o Estado de Detecção de Atolamento naquele momento será definido como true .
  5. Se um número agregado de intervalos de um segundo congestionados for menor que o número agregado de segundos do Período Ocupado configurados nos segundos da Janela de Detecção configurados anteriormente em qualquer momento, o Estado de Detecção de Atolamento naquele momento será definido como false .

Bitmap do histórico

Na API OpenThread e nas propriedades wpantund , um bitmap dos 63 segundos anteriores está disponível para recuperação. Este bitmap indica se o RSSI cruzou o limite RSSI configurado em cada um dos 63 segundos anteriores.

Por exemplo, você pode recuperar o seguinte bitmap:

0xC248068C416E7FF0

A conversão para binário produz todas as instâncias em que o RSSI ultrapassou o limite RSSI configurado durante os 63 segundos anteriores:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Se a janela de detecção estiver definida para 16 segundos e o período ocupado estiver definido para 8 segundos, o estado de detecção de congestionamento se tornará true em 51 segundos, pois essa é a primeira instância em que o limite RSSI foi excedido em pelo menos 8 segundos inteiros no anterior 16 segundos. Neste exemplo, o estado de detecção de atolamento permanece true pelos próximos 13 segundos.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

Este bitmap pode ser representado pelo gráfico a seguir, se -45 dBm for o RSSI Threshold configurado:

Detecção de atolamento OT

Como habilitar

Este recurso está desabilitado por padrão.

Por definir

Para habilitar a detecção de congestionamento, defina OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE como 1 no openthread/src/core/config/openthread-core-default-config.h , antes de construir o OpenThread :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Por opção

Como alternativa, use a opção de compilação -DOT_JAM_DETECTION=ON ao compilar OpenThread :

./script/build -DOT_JAM_DETECTION=ON

Parâmetros

Os parâmetros de detecção de congestionamento só podem ser configurados por meio da API OpenThread, do protocolo Spinel ou wpanctl , a ferramenta de linha de comando wpantund para gerenciamento do Network Co-Processor (NCP). Os valores padrão são aplicados se o recurso estiver ativado sem configuração subsequente.

Personalize esse recurso usando os seguintes parâmetros:

Parâmetros
Limite RSSI
Valor padrão
0 dBm
Descrição
Especifica o nível de RSSI limite em dBm acima do qual considerar o canal bloqueado.
Janela de detecção
Valor padrão
63 segundos
Descrição
Especifica a janela em segundos na qual verificar se há interferência de sinal. Faixa: 1-63.
Período ocupado
Valor padrão
63 segundos
Descrição
Especifica o número de segundos agregados na janela de detecção em que o RSSI deve estar acima do limite de RSSI para acionar a detecção de congestionamento. Deve ser menor que a Janela de Detecção. Faixa: 1-63.

API

OpenThread

Use a API Jam Detection para gerenciar o recurso Jam Detection diretamente em seu aplicativo OpenThread. A API OpenThread fornece a seguinte funcionalidade:

  • Iniciar e parar o recurso
  • Ver o estado de detecção de atolamento
  • Gerencie todos os parâmetros
  • Recuperar o bitmap atual do histórico de detecção de atolamento
  • Registre uma função de retorno de chamada para quando um atolamento for detectado

Espinélio

O protocolo Spinel permite que um dispositivo host se comunique diretamente com um NCP. Este protocolo expõe as propriedades de detecção de congestionamento em openthread/src/lib/spinel/spinel.h que fornecem a seguinte funcionalidade:

  • Iniciar e parar o recurso
  • Ver o estado de detecção de atolamento
  • Gerencie todos os parâmetros
  • Recuperar o bitmap atual do histórico de detecção de atolamento

CLI

OpenThread

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

wpantund

Use a CLI wpanctl para gerenciar o recurso Jam Detection para uma configuração OpenThread NCP. wpantund retém toda a configuração de detecção de atolamento após a reinicialização do NCP.

wpanctl fornece acesso às seguintes propriedades wpantund :

Propriedades
JamDetection:Status
Formato
boleano
Descrição
Somente leitura. Estado de detecção de atolamento. Indica se um congestionamento de sinal foi detectado no momento.
JamDetection:Enable
Formato
boleano
Descrição
Ative ou desative o recurso Detecção de atolamento.
JamDetection:RssiThreshold
Formato
dBm
Descrição
Especifica o nível de RSSI limite em dBm acima do qual considerar o canal bloqueado.
JamDetection:Window
Formato
segundos
Descrição
Especifica a janela em segundos na qual verificar se há interferência de sinal. Faixa: 1-63.
JamDetection:BusyPeriod
Formato
segundos
Descrição
Especifica o número de segundos agregados em JamDetection:Window em que o RSSI deve estar acima JamDetection:RssiThreshold para acionar a detecção de congestionamento. Deve ser menor que JamDetection:Window . Faixa: 1-63.
JamDetection:Debug:HistoryBitmap
Formato
valor de 64 bits
Descrição
Fornece informações sobre o histórico do estado de detecção de congestionamento para fins de monitoramento e depuração.

Por exemplo, para obter o estado de detecção de congestionamento para um NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Para definir o limite RSSI de detecção de congestionamento para -45 dBm em um NCP:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

Para obter mais informações sobre as propriedades do wpantund , consulte o repositório wpantund do GitHub .