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

Detecção de Jam

Ver fonte no GitHub

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

Esse recurso é útil para certificações de dispositivos que exigem a capacidade de detectar interferência de sinal em um canal específico. Ele 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á ativada:

  1. O Estado Detecção Jam está definido como false .
  2. O nó faz a amostragem do RSSI várias vezes em cada intervalo de um segundo.
  3. Se o RSSI mais de que toda uma segunda restos intervalo acima do configurado Limiar RSSI para cada amostra, que um segundo intervalo é considerado encravado.
  4. Se um número agregado de encravadas intervalos de um segundo é superior ou igual ao número total de configurados agitado período segundos dentro dos anteriores configurados janela de detecção segundos em qualquer ponto no tempo, o estado detecção de bloqueio nesse momento no tempo estiver definida como true .
  5. Se um número agregado de encravadas intervalos de um segundo é menos do que o número agregado de configurados agitado período segundos dentro dos anteriores configurados janela de detecção segundos em qualquer ponto no tempo, o estado detecção de bloqueio nesse momento no tempo estiver definida como false .

Bitmap de história

No API OpenThread e wpantund propriedades , um mapa de bits das anteriores 63 segundos está disponível para recuperação. Este bitmap indica se o RSSI cruzou o Limiar 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 cada instância em que o RSSI ultrapassou o limite configurado do RSSI durante os 63 segundos anteriores:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Se a janela de detecção é definido para 16 segundos, eo período Busy está definido para 8 segundos, o Estado Detecção Jam torna-se true em 51 segundos, uma vez que é o primeiro caso em que o Threshold RSSI foi ultrapassado pelo menos 8 segundos inteiros na anterior 16 segundos. Neste exemplo, o Estado de Detecção Jam continua a ser true para os próximos 13 segundos.

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

Este bitmap pode ser representado pelo seguinte gráfico, se -45 dBm for o limite RSSI configurado:

OT Jam Detection

Como habilitar

Este recurso está desabilitado por padrão.

Por definir

Para permitir a detecção Jam, definir OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE como 1 na openthread/src/core/config/openthread-core-default-config.h arquivo, antes da construção de OpenThread :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Por opção

Como alternativa, use os -DOT_JAM_DETECTION=ON opção de compilação quando construindo OpenThread :

./script/build -DOT_JAM_DETECTION=ON

Parâmetros

Parâmetros de detecção de obstrução só pode ser configurado através do OpenThread API, o protocolo Spinel, ou wpanctl , o wpantund ferramenta de linha de comando para a rede do Co-processador de gestão (NCP). Os valores padrão são aplicados se o recurso for habilitado sem configuração subsequente.

Personalize este recurso usando os seguintes parâmetros:

Parâmetros
Limiar RSSI
Valor padrão
0 dBm
Descrição
Especifica o nível de limite RSSI 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á congestionamento 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 atolamento. Deve ser menor que a janela de detecção. Faixa: 1-63.

API

OpenThread

Use a API de Detecção Jam para gerenciar o recurso de detecção Jam 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
  • Gerenciar todos os parâmetros
  • Recupere o bitmap de histórico de detecção de atolamento atual
  • Registre uma função de retorno de chamada para quando um atolamento for detectado

Spinel

O protocolo Spinel permite que um dispositivo host se comunique diretamente com um NCP. Este protocolo apresenta propriedades de detecção Jam em openthread/src/lib/spinel/spinel.h que fornecem as seguintes funcionalidades:

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

CLI

OpenThread

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

Wpantund

Use o wpanctl CLI para gerenciar o recurso de detecção Jam para uma configuração OpenThread NCP. wpantund retém toda a configuração de detecção de bloqueio de reposição sobre PCN.

wpanctl fornece acesso aos seguintes wpantund propriedades:

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 de 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á congestionamento de sinal. Faixa: 1-63.
JamDetection:BusyPeriod
Formato
segundos
Descrição
Especifica o número de segundos agregadas dentro JamDetection:Window na qual o RSSI deve estar acima JamDetection:RssiThreshold ao gatilho de detecção de compota. Deve ser inferior a 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 atolamento de um NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

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

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

Para mais informações sobre wpantund propriedades, consulte a wpantund repositório GitHub .