Присмотр за детьми, Присмотр за детьми

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

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

Спецификация потока требует, чтобы SED периодически выполнял обмен запросами и ответами на дочернее обновление MLE со своим родительским маршрутизатором для проверки подключения. Child Supervision — это альтернативное решение для проверки подключения SED-маршрутизатора, которое возлагает нагрузку по передаче сообщений на родительский маршрутизатор, а не на SED с ограниченным энергопотреблением.

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

Эта функция работает двумя способами, в зависимости от типа узла и настроенных параметров :

На родителе

Если родительский маршрутизатор не передает своему дочернему SED в течение OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL , родительский маршрутизатор ставит в очередь и отправляет дочернему SED сообщение Child Supervision. Сообщение Child Supervision представляет собой кадр MAC, содержащий следующую информацию:

  • RLOC16 SED как пункт назначения в заголовке MAC.
  • Пустая полезная нагрузка.

По умолчанию заголовок MAC содержит запрос подтверждения 802.15.4. Чтобы отключить этот запрос в сообщении Child Supervision, установите для параметра OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST значение 1.

О ребенке

Если SED не получает ответа от своего родительского маршрутизатора в течение OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT , он предполагает, что он потерял соединение с родительским маршрутизатором, и инициирует процесс подключения MLE для повторного подключения к родительскому маршрутизатору.

Как включить

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

По определению

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

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

По опции

Альтернативно, используйте опцию сборки -DOT_CHILD_SUPERVISION=ON при сборке OpenThread :

./script/build -DOT_CHILD_SUPERVISION=ON

Параметры

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

Параметры
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
Значение по умолчанию
129 секунд
Описание
Указывает интервал наблюдения в секундах, используемый родительским элементом. Установите значение 0, чтобы отключить процесс контроля над родительским элементом.
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
Значение по умолчанию
190 секунд
Описание
Указывает интервал тайм-аута проверки контроля в секундах, используемый устройством в дочернем состоянии. Установите значение 0, чтобы отключить процесс проверки контроля над дочерним элементом.
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
Значение по умолчанию
0 (запрос подтверждения включен)
Описание
Установите значение 1, чтобы очистить/отключить запрос подтверждения 802.15.4 в заголовке MAC контрольного сообщения.

API

Используйте API Child Supervision для управления контролем и проверки интервалов времени ожидания непосредственно в вашем приложении OpenThread.

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

Для этой функции не существует команд CLI.