Google 致力于为黑人社区推动种族平等。查看具体行动

儿童监管

在 GitHub 上查看源代码

如需为处于休眠状态的设备 (SED) 提供节能机制,以验证其是否仍连接到其父路由器(在父路由器的子表中列出),请启用子监管功能。

线程规范需要 SED 定期与其父路由器执行 MLE 子更新请求和响应响应,以验证连接。子级监管是一种验证 SED 路由器连接的备用解决方案,它会将信息传输的负担置于父路由器而非能耗 SED 上。

运作方式

此功能可通过以下两种方式运行,具体取决于节点类型以及配置哪些参数

家长

如果父路由器未在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL 内传输到其子 SED,则父路由器会加入子监管消息并将其发送到子 SED。子监管消息是一个 MAC 帧,其中包含以下信息:

  • SED 中 MAC 标头中 SED 的 RLOC16
  • 载荷为空。

默认情况下,MAC 标头包含 802.15.4 ACK 请求。如需在子监管消息中停用此请求,请将 OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST 参数设置为 1。

儿童

如果 SED 未从其父路由器内的OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT时,它会假定自己已断开与父路由器的连接,并启动了MLE 附加重新连接到父路由器的流程。

如何启用

此功能默认处于停用状态。

通过定义

如需启用子监管,请在构建 OpenThread 之前,在 openthread/src/core/config/child_supervision.h 文件中将 OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 定义为 1。 :

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

按选项

或者,在构建 OpenThread 时使用 -DOT_CHILD_SUPERVISION=ON 构建选项:

./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(已启用 ACK 请求)
说明
如果此政策设为 1,系统会清除/停用监管邮件的 MAC 标头中 802.15.4 ACK 请求。

API

使用 Child Supervision API 直接在 OpenThread 应用中管理监管功能并检查超时间隔。

CLI

没有与此功能相关的 CLI 命令。