Wykrywanie Jamów

Wyświetl źródło na GitHubie

Aby skonfigurować konfigurowalny mechanizm wykrywania zagnieżdżania sygnałów w dowolnym węźle OpenThread, włącz funkcję wykrywania Jamów.

Ta funkcja przydaje się do certyfikatów urządzenia, które wymagają wykrycia sygnału na konkretnym kanale. Możesz go skonfigurować tak, aby spełniał wymagania każdego typu certyfikatów.

Jak to działa

Wykrywanie Jamów monitoruje RSSI (wskaźnik siły sygnału odbieranego przez węzeł) w określonych oknach w celu określenia, czy kanał nie został przełączony.

Gdy wykrywanie Jamów jest włączone:

  1. Stan wykrywania Jamu to false.
  2. Węzeł próbkuje RSSI wiele razy w każdym sekundzie.
  3. Jeśli RSSI w trakcie tego całego sekundy przekracza ustawiony próg progu RSS dla każdej próbki, to 1-sekundowa interwał jest uznawany za przeciążony.
  4. Jeśli łączna liczba zablokowanych interwałów sekundowych w danym momencie łączy się lub jest równa łącznej liczbie skonfigurowanych okresów wykrywania w poprzednim oknie wykrywania w dowolnym momencie, stan wykrywania Jamu w tym momencie jest ustawiony na true.
  5. Jeśli łączna liczba zablokowanych interwałów sekundowych w konkretnym czasie jest mniejsza niż łączna liczba skonfigurowanych okresów zajętych w poprzednim skonfigurowanym oknie wykrywania w dowolnym momencie, stan wykrywania Jamów jest ustawiony na false.

Historia bitwy

W interfejsach OpenThread API i wpantund można pobierać mapy bitowe obejmujące ostatnie 63 sekundy. Ta mapa bitowa wskazuje, czy RSSI przekracza skonfigurowany próg RSS w każdym z poprzedzających 63 sekund.

Możesz na przykład pobrać tę mapę bitową:

0xC248068C416E7FF0

Konwersja na plik binarny daje każdą instancję, która przekroczyła skonfigurowany próg RSSI w ciągu ostatnich 63 sekund:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Jeśli okno wykrywania jest ustawione na 16 sekund, a okres aktywności jest ustawiony na 8 sekund, stan wykrywania Jamu zmieni się na true po 51 sekundach, ponieważ to pierwszy przypadek, w którym próg RSSI został przekroczony o co najmniej 8 całych sekund w ciągu poprzednich 16 sekund. W tym przykładzie stan wykrywania Jamu pozostanie true przez następne 13 sekund.

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

Ta mapa bitowa może być reprezentowana przez ten wykres, jeśli -45 dBm był skonfigurowanym progiem RSSI:

OT Jam – wykrywanie

Jak włączyć

Ta funkcja jest domyślnie wyłączona.

Według definicji

Aby włączyć wykrywanie Jamów, określ plik OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE jako 1 w pliku openthread/src/core/config/openthread-core-default-config.h, a potem przed utworzeniem OpenThread:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Według opcji

Możesz też użyć opcji kompilacji -DOT_JAM_DETECTION=ON podczas kompilowania OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Parametry

Parametry wykrywania Jamów można skonfigurować tylko za pomocą interfejsu OpenThread API, protokołu Spinel lub wpanctl – narzędzia wiersza poleceń wpantund używanego do zarządzania współprocesorami sieciowymi (NCP). Jeśli funkcja jest włączona bez konieczności konfigurowania, stosowane są wartości domyślne.

Dostosuj tę funkcję za pomocą tych parametrów:

Parametry
Próg RSSI
Wartość domyślna
0 dBm
Description
Określa wartość progową RSSI w dBm, powyżej której należy określić, że kanał został zablokowany.
Okno wykrywania
Wartość domyślna
63 sekundy
Description
Określa czas (w sekundach), po którym następuje sprawdzenie sygnału. Zakres: 1–63.
Okres intensywności
Wartość domyślna
63 sekundy
Description
Określa liczbę sekund zbiorczych w oknie wykrywania, w których wskaźnik RSSI musi przekraczać próg RSSI, aby aktywować wykrywanie Jamu. Wartość musi być mniejsza niż okno wykrywania. Zakres: 1–63.

API

OpenThread

Użyj interfejsu Jam Detection API do zarządzania funkcją Jam Jam bezpośrednio w aplikacji OpenThread. Interfejs OpenThread API udostępnia te funkcje:

  • Włączanie i wyłączanie funkcji
  • Wyświetlanie stanu wykrywania Jamów
  • Zarządzaj wszystkimi parametrami
  • Pobieranie bieżącej mapy bitowej historii wykrywania Jamu
  • Zarejestruj funkcję wywołania zwrotnego dla wykrycia Jamu

Wirowanie

Protokół Spinel umożliwia urządzeniu komunikującemu się bezpośrednio z NCP. Ten protokół udostępnia właściwości wykrywania Jamu w openthread/src/lib/spinel/spinel.h, które udostępniają te funkcje:

  • Włączanie i wyłączanie funkcji
  • Wyświetlanie stanu wykrywania Jamów
  • Zarządzaj wszystkimi parametrami
  • Pobieranie bieżącej mapy bitowej historii wykrywania Jamu

interfejs CLI

OpenThread

Brak poleceń interfejsu wiersza poleceń OpenThread związanych z tą funkcją.

Wpantund

Za pomocą interfejsu wiersza poleceń wpanctl możesz zarządzać funkcją wykrywania Jamów w konfiguracji NCP OpenThread. wpantund zachowuje konfigurację konfiguracji wykrywania Jamu po zresetowaniu NCP.

wpanctl zapewnia dostęp do tych właściwości wpantund:

Usługi
JamDetection:Status
Format
wartość logiczna
Description
Tylko do odczytu. Stan wykrywania Jamu. Wskazuje, czy został wykryty zakłócenia sygnału.
JamDetection:Enable
Format
wartość logiczna
Description
Włącz lub wyłącz funkcję wykrywania Jamów.
JamDetection:RssiThreshold
Format
dBm
Description
Określa próg RSSI w dBm, powyżej którego należy uznać kanał za zablokowany.
JamDetection:Window
Format
s
Description
Określa czas (w sekundach), po którym następuje sprawdzenie sygnału. Zakres: 1–63.
JamDetection:BusyPeriod
Format
s
Description
Określa liczbę sekund zbiorczych w ciągu JamDetection:Window, w których wskaźnik RSSI musi być wyższy niż JamDetection:RssiThreshold, aby aktywować wykrywanie Jamu. Wartość musi być mniejsza niż JamDetection:Window. Zakres: 1–63.
JamDetection:Debug:HistoryBitmap
Format
Wartość 64-bitowa
Description
Zawiera informacje o historii stanu wykrywania Jamów na potrzeby monitorowania i debugowania.

Aby na przykład pobrać stan wykrywania Jamów dla NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Aby ustawić próg RSSI wykrywania przez Jam na poziomie -45 dBm:

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

Więcej informacji o właściwościach wpantund znajdziesz w repozytorium GitHub wpantund w języku angielskim.