Периодический поиск родителей, Периодический поиск родителей

Посмотреть исходный код на GitHub

Чтобы позволить конечным устройствам (ED) в сети Thread переключаться на лучший родительский маршрутизатор, чем их текущий, при этом все еще подключенный к сети, включите функцию периодического родительского поиска.

Чтобы определить, является ли маршрутизатор лучшим родителем для ED, эта функция проверяет различные атрибуты маршрутизатора, в том числе:

  • RSSI (индикатор уровня принимаемого сигнала)
  • Качество связи
  • Связь роутера с другими роутерами
  • Количество существующих дочерних элементов маршрутизатора

Это гарантирует, что ED подключаются к наилучшему маршрутизатору, а не остаются подключенными к маршрутизатору с плохим качеством связи или подключением. Эта функция особенно полезна, когда к существующей сети Thread добавляется новый маршрутизатор.

Как это работает

  1. ED проверяет среднее значение RSSI для своего текущего родительского маршрутизатора в соответствии с настроенным интервалом проверки ( OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL ).
  2. Если среднее значение RSSI для текущего родительского маршрутизатора ED ниже настроенного порога ( OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD ), инициируется родительский поиск:
    1. Если родительский поиск обнаруживает лучший родительский маршрутизатор, ED разрывает свою текущую ссылку «Дочерний-Родительский» и инициирует процесс подключения MLE с новым маршрутизатором.
    2. Если родительский поиск не обнаруживает лучший родительский маршрутизатор, существующая связь «Дочерний-Родительский» остается.
  3. После попытки родительского поиска ED ожидает проверки среднего значения RSSI для своего текущего родительского маршрутизатора в соответствии с настроенным интервалом отсрочки ( OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL ). Эта отсрочка происходит независимо от результата родительского поиска.

Мы рекомендуем включить функцию «Информировать предыдущего родителя о повторном подключении» в сочетании с этой функцией.

Как включить

Эта функция отключена по умолчанию.

Чтобы включить периодический родительский поиск, определите OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE как 1 в файле /src/core/config/parent_search.h перед сборкой OpenThread :

#ifndef OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE
#define OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE 1
#endif

Параметры

Используйте следующие параметры в /src/core/config/parent_search.h , чтобы настроить эту функцию:

Параметры
OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL
Значение по умолчанию
540 секунд (9 минут)
Описание
Указывает интервал в секундах, в течение которого дочерний элемент проверяет условие триггера для выполнения родительского поиска.
OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL
Значение по умолчанию
36000 секунд (10 часов)
Описание
Указывает интервал задержки в секундах, чтобы дочерний элемент не выполнял родительский поиск после его запуска.
OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD
Значение по умолчанию
-65
Описание
Указывает порог RSSI, используемый для запуска родительского поиска.

API

Для этой функции не существует общедоступного API.

интерфейс командной строки

С этой функцией не связаны никакие команды CLI.