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

边界路由器

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

摘要

函数

otBorderRouterAddOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
将边界路由器配置添加到本地网络数据。
otBorderRouterAddRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
将外部路由配置添加到本地网络数据。
otBorderRouterGetNetData(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)
此方法提供本地线程网络数据的完整或稳定副本。
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)
从本地网络数据中移除外部路由配置。
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
此函数返回本地 NAT64 前缀。
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
此方法会返回 off-mesh-routable (OMR) 前缀。
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
此方法返回相邻基础架构链接的链路前缀。
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
此方法会在指定的基础架构接口上初始化边界路由管理器。
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
此方法可启用/停用边界路由管理器。

函数

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
)

此方法提供本地线程网络数据的完整或稳定副本。

详情
参数
[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
指向 On Mesh 前缀信息的指针。
返回值
OT_ERROR_NONE
已成功找到下一个 On Mesh 前缀。
OT_ERROR_NOT_FOUND
线程网络数据中不存在任何后续的 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

otBorderRoutingGetNat64Prefix

otError otBorderRoutingGetNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

此函数返回本地 NAT64 前缀。

此前缀可能不会在线程网络中通告。

此函数仅在启用 OPENTHREAD_CONFIG_BORDER_ROUTING_NAT64_ENABLE 的情况下可用。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aPrefix
指向前缀将输出到的位置的指针。
返回值
OT_ERROR_INVALID_STATE
边界路由管理器尚未初始化。
OT_ERROR_NONE
已成功检索 NAT64 前缀。

otBorderRoutingGetOmrPrefix

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

此方法会返回 off-mesh-routable (OMR) 前缀。

如果没有已用 OMR 前缀,随机生成的 64 位前缀将在线程网络中发布。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aPrefix
指向前缀将输出到的位置的指针。
返回值
OT_ERROR_INVALID_STATE
边界路由管理器尚未初始化。
OT_ERROR_NONE
已成功检索到 OMR 前缀。

otBorderRoutingGetOnLinkPrefix

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

此方法返回相邻基础架构链接的链路前缀。

如果链路上没有可用的可用链路前缀,则随机生成的 64 位前缀将通告基础架构链接。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aPrefix
指向前缀将输出到的位置的指针。
返回值
OT_ERROR_INVALID_STATE
边界路由管理器尚未初始化。
OT_ERROR_NONE
已成功检索链接前缀。

otBorderRoutingInit

otError otBorderRoutingInit(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aInfraIfIsRunning
)

此方法会在指定的基础架构接口上初始化边界路由管理器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aInfraIfIndex
基础架构接口索引。
[in] aInfraIfIsRunning
指示基础架构接口是否正在运行的布尔值。
返回值
OT_ERROR_NONE
已成功在指定的基础架构上启动边界路由管理器。
OT_ERROR_INVALID_STATE
边界路由管理器已初始化。
OT_ERROR_INVALID_ARGS
基础架构接口的索引无效。
OT_ERROR_FAILED
内部故障。这通常是由于无法生成随机前缀。
另请参阅
otPlatInfraIfStateChanged

otBorderRoutingSetEnabled

otError otBorderRoutingSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

此方法可启用/停用边界路由管理器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
用于启用/停用路由管理器的布尔值。
返回值
OT_ERROR_INVALID_STATE
边界路由管理器尚未初始化。
OT_ERROR_NONE
已成功启用/停用边界路由管理器。

资源

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