Посмотреть исходный код на GitHub
Чтобы разрешить конечным устройствам (ED) в сети Thread переключаться на лучший родительский маршрутизатор, чем их текущий, оставаясь при этом подключенными к сети, включите функцию периодического родительского поиска.
Чтобы определить, является ли маршрутизатор лучшим родителем для ED, эта функция проверяет различные атрибуты маршрутизатора, в том числе:
- RSSI (индикатор уровня принимаемого сигнала)
- Качество ссылки
- Связность роутера с другими роутерами
- Количество существующих дочерних элементов для маршрутизатора
Это гарантирует, что ED подключаются к наилучшему из возможных маршрутизаторов, а не остаются подключенными к маршрутизатору с плохим качеством связи или подключением. Эта функция особенно полезна, когда к существующей сети Thread добавляется новый маршрутизатор.
Как это работает
- ED проверяет среднее значение RSSI для своего текущего родительского маршрутизатора в соответствии с настроенным интервалом проверки (
OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL
). - Если среднее значение RSSI для текущего родительского маршрутизатора ED ниже настроенного порога (
OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD
), инициируется поиск родителя:- Если родительский поиск обнаруживает лучший родительский маршрутизатор, ED растворяет свою текущую связь «дочерний-родительский» и инициирует процесс присоединения MLE с новым маршрутизатором.
- Если родительский поиск не находит лучшего родительского маршрутизатора, существующая связь «дочерний-родительский» остается.
- После попытки поиска родительского объекта 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 |
| ||||
OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL |
| ||||
OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD |
|
API
Для этой функции нет общедоступного API.
CLI
Нет команд CLI, связанных с этой функцией.