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