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

Посмотреть исходный код на 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

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