Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Detección de atascos

Ver fuente en GitHub

Para proporcionar un mecanismo configurable para la detección de interferencias de señal en cualquier nodo OpenThread, habilite la función de detección de interferencias.

Esta función es útil para las certificaciones de dispositivos que requieren la capacidad de detectar interferencias de señal en un canal específico. Puede configurarse para cumplir con los requisitos de cada tipo de certificación.

Cómo funciona

La detección de atascos monitorea el RSSI (indicador de intensidad de la señal recibida) de un nodo durante períodos de tiempo específicos para determinar si el canal se ha atascado.

Cuando la detección de atascos está habilitada:

  1. El estado de detección de atasco está definida en false .
  2. El nodo muestrea el RSSI varias veces en cada intervalo de un segundo.
  3. Si el RSSI más que la totalidad de los restos de un segundo de intervalo por encima del configurada umbral de RSSI para cada muestra, que se considera intervalo de un segundo atascado.
  4. Si un número total de segundos intervalos de una atascadas es más que o igual al número total de configuradas período de intensa actividad segundos dentro de los configurados precedentes ventana de detección de segundo en cualquier punto en el tiempo, el estado de detección de atasco en ese punto de tiempo se ajusta a true .
  5. Si un número total de segundos intervalos de una atascadas es menor que el número agregado de configuradas período de intensa actividad segundos dentro de los configurados precedentes ventana de detección de segundo en cualquier punto en el tiempo, el estado de detección de atasco en ese punto en el tiempo está ajustado a false .

Mapa de bits de historia

En la API OpenThread y wpantund propiedades , un mapa de bits de los 63 segundos anteriores se encuentra disponible para su recuperación. Este mapa de bits indica si el RSSI cruzó el umbral RSSI configurado en cada uno de los 63 segundos anteriores.

Por ejemplo, puede recuperar el siguiente mapa de bits:

0xC248068C416E7FF0

La conversión a binario produce todas las instancias en las que RSSI superó el umbral RSSI configurado durante los 63 segundos anteriores:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Si la ventana de detección se establece en 16 segundos, y el período de gran actividad se establece en 8 segundos, el estado de detección de atasco se convierte en true a los 51 segundos, ya que es la primera instancia en que se supera el umbral de RSSI al menos 8 segundos enteros en el precedente 16 segundos. En este ejemplo, el estado de detección Jam sigue siendo true para los siguientes 13 segundos.

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

Este mapa de bits puede estar representado por el siguiente gráfico, si -45 dBm fue el umbral RSSI configurado:

Detección de atascos OT

Cómo habilitar

Esta función esta desactivada por defecto.

Por definir

Para permitir la detección Jam, definir OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE como 1 en el openthread/src/core/config/openthread-core-default-config.h archivo, antes de la construcción de OpenThread :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Por opcion

Como alternativa, utilice los -DOT_JAM_DETECTION=ON opción de generación cuando se construyen OpenThread :

./script/build -DOT_JAM_DETECTION=ON

Parámetros

Parámetros de detección Jam sólo se pueden configurar a través de la OpenThread API, el protocolo de Spinel, o wpanctl , la wpantund herramienta de línea de comandos para la gestión de red Co-Procesador (NCP). Los valores predeterminados se aplican si la función está habilitada sin configuración posterior.

Personalice esta función utilizando los siguientes parámetros:

Parámetros
Umbral RSSI
Valor por defecto
0 dBm
Descripción
Especifica el nivel de umbral RSSI en dBm por encima del cual considerar el canal atascado.
Ventana de detección
Valor por defecto
63 segundos
Descripción
Especifica la ventana en segundos en la que se debe verificar la interferencia de la señal. Rango: 1-63.
Periodo ocupado
Valor por defecto
63 segundos
Descripción
Especifica el número de segundos agregados dentro de la ventana de detección en los que el RSSI debe estar por encima del umbral de RSSI para activar la detección de atascos. Debe ser más pequeño que la ventana de detección. Rango: 1-63.

API

OpenThread

Utilice la API de detección de atasco para gestionar la función de detección de atascos directamente en su aplicación OpenThread. La API de OpenThread proporciona la siguiente funcionalidad:

  • Iniciar y detener la función
  • Ver el estado de detección de atascos
  • Gestionar todos los parámetros
  • Recuperar el mapa de bits actual del historial de detección de atascos
  • Registre una función de devolución de llamada para cuando se detecte un atasco

Espinela

El protocolo Spinel permite que un dispositivo host se comunique directamente con un NCP. Este protocolo expone propiedades de detección de atasco en openthread/src/lib/spinel/spinel.h que proporcionan la funcionalidad siguiente:

  • Iniciar y detener la función
  • Ver el estado de detección de atascos
  • Gestionar todos los parámetros
  • Recuperar el mapa de bits actual del historial de detección de atascos

CLI

OpenThread

No hay comandos CLI de OpenThread relacionados con esta función.

wpantund

Usar la wpanctl CLI para administrar la función de detección de atasco para una configuración OpenThread PNC. wpantund conserva toda la configuración de detección de Jam sobre reinicio NCP.

wpanctl proporciona acceso a los siguientes wpantund propiedades:

Propiedades
JamDetection:Status
Formato
booleano
Descripción
Solo lectura. Estado de detección de atascos. Indica si se detecta actualmente un atasco de señal.
JamDetection:Enable
Formato
booleano
Descripción
Active o desactive la función de detección de atascos.
JamDetection:RssiThreshold
Formato
dBm
Descripción
Especifica el nivel de umbral RSSI en dBm por encima del cual se considera que el canal está bloqueado.
JamDetection:Window
Formato
segundos
Descripción
Especifica la ventana en segundos en la que se debe verificar la interferencia de la señal. Rango: 1-63.
JamDetection:BusyPeriod
Formato
segundos
Descripción
Especifica el número de segundos agregados dentro JamDetection:Window en la que el RSSI debe estar por encima JamDetection:RssiThreshold de desencadenar la detección de atasco. Debe ser inferior a JamDetection:Window . Rango: 1-63.
JamDetection:Debug:HistoryBitmap
Formato
Valor de 64 bits
Descripción
Proporciona información sobre el historial del estado de detección de atascos con fines de supervisión y depuración.

Por ejemplo, para obtener el estado de detección de atascos para un NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Para establecer el umbral RSSI de detección de atascos en -45 dBm en un NCP:

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

Para obtener más información sobre wpantund propiedades, consulte la wpantund GitHub repositorio .