边界路由器

此模块包含使用 OpenThread 边界边界管理本地网络数据的函数。

总结

类型定义符

otBorderRouterNetDataFullCallback)(void *aContext) typedef
void(*
在网络数据(本地或主要网络)已满时调用的函数指针回调。

函数

otBorderRouterAddOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
向本地网络数据添加边界路由器配置。
otBorderRouterAddRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
向本地网络数据添加外部路由配置。
otBorderRouterGetNetData(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)
提供本地 Thread 网络数据的完整或稳定副本。
otBorderRouterGetNextOnMeshPrefix(otInstance *aInstance, otNetworkDataIterator *aIterator, otBorderRouterConfig *aConfig)
获取本地网络数据中的下一个 On Mesh 前缀。
otBorderRouterGetNextRoute(otInstance *aInstance, otNetworkDataIterator *aIterator, otExternalRouteConfig *aConfig)
获取本地网络数据中的下一个外部路由。
otBorderRouterRegister(otInstance *aInstance)
立即向领导人注册本地网络数据。
otBorderRouterRemoveOnMeshPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
从本地网络数据中移除边界路由器配置。
otBorderRouterRemoveRoute(otInstance *aInstance, const otIp6Prefix *aPrefix)
从本地网络数据中移除外部路由配置。
otBorderRouterSetNetDataFullCallback(otInstance *aInstance, otBorderRouterNetDataFullCallback aCallback, void *aContext)
void
设置回调,以指示网络数据何时已满。

类型定义符

otBorderRouterNetDataFullCallback

void(* otBorderRouterNetDataFullCallback)(void *aContext)

在网络数据(本地或主要网络)已满时调用的函数指针回调。

详情
参数
[in] aContext
指向任意上下文信息的指针。

函数

otBorderRouterAddOnMeshPrefix

otError otBorderRouterAddOnMeshPrefix(
  otInstance *aInstance,
  const otBorderRouterConfig *aConfig
)

向本地网络数据添加边界路由器配置。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
指向边界路由器配置的指针。
返回值
OT_ERROR_NONE
已成功将配置添加到本地网络数据。
OT_ERROR_INVALID_ARGS
一个或多个配置参数无效。
OT_ERROR_NO_BUFS
没有足够的空间来将配置添加到本地网络数据。
另请参阅
otBorderRouterRemoveOnMeshPrefix
otBorderRouterRegister

otBorderRouterAddRoute

otError otBorderRouterAddRoute(
  otInstance *aInstance,
  const otExternalRouteConfig *aConfig
)

向本地网络数据添加外部路由配置。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
指向外部路由配置的指针。
返回值
OT_ERROR_NONE
已成功将配置添加到本地网络数据。
OT_ERROR_INVALID_ARGS
一个或多个配置参数无效。
OT_ERROR_NO_BUFS
没有足够的空间来将配置添加到本地网络数据。
另请参阅
otBorderRouterRemoveRoute
otBorderRouterRegister

otBorderRouterGetNetData

otError otBorderRouterGetNetData(
  otInstance *aInstance,
  bool aStable,
  uint8_t *aData,
  uint8_t *aDataLength
)

提供本地 Thread 网络数据的完整或稳定副本。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aStable
复制稳定版本时为 TRUE,复制完整版本时为 FALSE。
[out] aData
指向数据缓冲区的指针。
[in,out] aDataLength
进入时,由 aData 指向的数据缓冲区的大小。退出时,已复制的字节数。

otBorderRouterGetNextOnMeshPrefix

otError otBorderRouterGetNextOnMeshPrefix(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otBorderRouterConfig *aConfig
)

获取本地网络数据中的下一个 On Mesh 前缀。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器上下文的指针。如需获取第一个网状条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aConfig
指向“网状网格前缀”信息的指针。
返回值
OT_ERROR_NONE
已成功找到下一个 On Mesh 前缀。
OT_ERROR_NOT_FOUND
Thread Network Data 中不存在后续的 On Mesh 前缀。

otBorderRouterGetNextRoute

otError otBorderRouterGetNextRoute(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otExternalRouteConfig *aConfig
)

获取本地网络数据中的下一个外部路由。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器上下文的指针。如需获取第一个外部路由条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aConfig
指向外部路由信息的指针。
返回值
OT_ERROR_NONE
已成功找到下一个外部路由。
OT_ERROR_NOT_FOUND
线程网络数据中没有后续的外部路由条目。

otBorderRouterRegister

otError otBorderRouterRegister(
  otInstance *aInstance
)

立即向领导人注册本地网络数据。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功将服务器数据请求消息加入队列进行传递。
另请参阅
otBorderRouterAddOnMeshPrefix
otBorderRouterRemoveOnMeshPrefix
otBorderRouterAddRoute
otBorderRouterRemoveRoute

otBorderRouterRemoveOnMeshPrefix

otError otBorderRouterRemoveOnMeshPrefix(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

从本地网络数据中移除边界路由器配置。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPrefix
指向 IPv6 前缀的指针。
返回值
OT_ERROR_NONE
已成功从本地网络数据中移除配置。
OT_ERROR_NOT_FOUND
找不到边界路由器条目。
另请参阅
otBorderRouterAddOnMeshPrefix
otBorderRouterRegister

otBorderRouterRemoveRoute

otError otBorderRouterRemoveRoute(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

从本地网络数据中移除外部路由配置。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPrefix
指向 IPv6 前缀的指针。
返回值
OT_ERROR_NONE
已成功从本地网络数据中移除配置。
OT_ERROR_NOT_FOUND
找不到边界路由器条目。
另请参阅
otBorderRouterAddRoute
otBorderRouterRegister

otBorderRouterSetNetDataFullCallback

void otBorderRouterSetNetDataFullCallback(
  otInstance *aInstance,
  otBorderRouterNetDataFullCallback aCallback,
  void *aContext
)

设置回调,以指示网络数据何时已满。

需要安装 OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL

在以下情况下,系统会调用该回调函数:

  • 设备充当领导者,接收来自边界路由器 (BR) 的网络数据注册,而该网络无法添加到网络数据(空间不足)。
  • 设备充当 BR,无法将新条目添加到其本地网络数据中。
  • 设备作为 BR 并尝试向领先者注册其本地网络数据条目,但确定其本地条目不适合。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
回调。
[in] aContext
指向与 aCallback 搭配使用的任意上下文信息的指针。

资源

OpenThread API 参考主题源自源代码,可在 GitHub 上获取。 如需了解详情或为我们的文档贡献内容,请参阅资源