路由器/领导者

此模块包含针对 Thread Router 和 Leader 的函数。

摘要

枚举

otCacheEntryState 枚举
定义 EID 缓存条目状态。
otNeighborTableEvent{
  OT_NEIGHBOR_TABLE_EVENT_CHILD_ADDED,
  OT_NEIGHBOR_TABLE_EVENT_CHILD_REMOVED,
  OT_NEIGHBOR_TABLE_EVENT_CHILD_MODE_CHANGED,
  OT_NEIGHBOR_TABLE_EVENT_ROUTER_ADDED,
  OT_NEIGHBOR_TABLE_EVENT_ROUTER_REMOVED
}
枚举
定义 otNeighborTableCallback 中用于表示相邻表中变化的常量。
otPowerSupply{
  OT_POWER_SUPPLY_BATTERY = 0,
  OT_POWER_SUPPLY_EXTERNAL = 1,
  OT_POWER_SUPPLY_EXTERNAL_STABLE = 2,
  OT_POWER_SUPPLY_EXTERNAL_UNSTABLE = 3
}
枚举
表示设备上的电源属性。

类型定义符

otCacheEntryInfo typedef
表示 EID 缓存条目。
otCacheEntryIterator typedef
表示用于迭代 EID 缓存表条目的迭代器。
otCacheEntryState typedef
定义 EID 缓存条目状态。
otChildIp6AddressIterator typedef
uint16_t
用于遍历线程子条目的 IPv6 地址。
otDeviceProperties typedef
表示用于计算设备上的本地主要权重的设备属性。
otNeighborTableCallback)(otNeighborTableEvent aEvent, const otNeighborTableEntryInfo *aEntryInfo) typedef
void(*
系统会调用指针来通知相邻表发生了更改。

函数

otThreadBecomeLeader(otInstance *aInstance)
成为领导者并启动新的分区。
otThreadBecomeRouter(otInstance *aInstance)
尝试成为路由器。
otThreadGetAdvertisementTrickleIntervalMax(otInstance *aInstance)
uint32_t
获取广告微妙计时器使用的当前间隔最大值。
otThreadGetChildInfoById(otInstance *aInstance, uint16_t aChildId, otChildInfo *aChildInfo)
按子项 ID 或 RLOC16 获取附加子项的诊断信息。
otThreadGetChildInfoByIndex(otInstance *aInstance, uint16_t aChildIndex, otChildInfo *aChildInfo)
该函数按内部表索引保留附加子项的诊断信息。
otThreadGetChildNextIp6Address(otInstance *aInstance, uint16_t aChildIndex, otChildIp6AddressIterator *aIterator, otIp6Address *aAddress)
获取指定子项的下一个 IPv6 地址(使用迭代器)。
otThreadGetChildRouterLinks(otInstance *aInstance)
uint8_t
获取在 REED 角色中使用的 MLE_CHILD_ROUTER_LINKS 参数。
otThreadGetContextIdReuseDelay(otInstance *aInstance)
uint32_t
获取 Leader 角色中使用的 CONTEXT_ID_REUSE_DELAY 参数。
otThreadGetDeviceProperties(otInstance *aInstance)
获取当前设备属性。
otThreadGetJoinerUdpPort(otInstance *aInstance)
uint16_t
获取联接器 UDP 端口。
otThreadGetLocalLeaderWeight(otInstance *aInstance)
uint8_t
获取以 Leader 角色执行操作时使用的线程引导加载程序权重。
otThreadGetMaxAllowedChildren(otInstance *aInstance)
uint16_t
获取当前允许的子项数上限。
otThreadGetMaxChildIpAddresses(otInstance *aInstance)
uint8_t
获取每个 MTD 子级可在此设备中注册为父级的 IP 地址数量上限。
otThreadGetMaxRouterId(otInstance *aInstance)
uint8_t
该函数会返回允许的最大路由器 ID。
otThreadGetNetworkIdTimeout(otInstance *aInstance)
uint8_t
获取 NETWORK_ID_TIMEOUT 参数。
otThreadGetNextCacheEntry(otInstance *aInstance, otCacheEntryInfo *aEntryInfo, otCacheEntryIterator *aIterator)
获取下一个 EID 缓存条目(使用迭代器)。
otThreadGetNextHopAndPathCost(otInstance *aInstance, uint16_t aDestRloc16, uint16_t *aNextHopRloc16, uint8_t *aPathCost)
void
获取指向给定 RLOC16 目标的下一个跃点和路径费用。
otThreadGetParentPriority(otInstance *aInstance)
int8_t
获取已分配的父级优先级。
otThreadGetPreferredLeaderPartitionId(otInstance *aInstance)
uint32_t
获取以 Leader 角色执行操作时使用的首选 Thread Leader 分区 ID。
otThreadGetPskc(otInstance *aInstance, otPskc *aPskc)
void
获取线程 PSKc。
otThreadGetPskcRef(otInstance *aInstance)
获取已存储的线程 PSKc 的键引用。
otThreadGetRouterDowngradeThreshold(otInstance *aInstance)
uint8_t
获取 Router 角色中使用的 ROUTER_DOWNGRADE_THRESHOLD 参数。
otThreadGetRouterIdRange(otInstance *aInstance, uint8_t *aMinRouterId, uint8_t *aMaxRouterId)
void
获取允许分配给线程网络中的节点的路由器 ID 范围。
otThreadGetRouterIdSequence(otInstance *aInstance)
uint8_t
获取当前的路由器 ID 序列。
otThreadGetRouterInfo(otInstance *aInstance, uint16_t aRouterId, otRouterInfo *aRouterInfo)
该函数会保留给定 Thread Router 的诊断信息。
otThreadGetRouterSelectionJitter(otInstance *aInstance)
uint8_t
获取用于 REED/Router 角色的 ROUTER_SELECTION_JITTER 参数。
otThreadGetRouterUpgradeThreshold(otInstance *aInstance)
uint8_t
获取在 REED 角色中使用的 ROUTER_UPGRADE_THRESHOLD 参数。
otThreadIsRouterEligible(otInstance *aInstance)
bool
指明设备是否支持路由器。
otThreadIsRouterIdAllocated(otInstance *aInstance, uint8_t aRouterId)
bool
指示当前是否已分配路由器 ID。
otThreadRegisterNeighborTableCallback(otInstance *aInstance, otNeighborTableCallback aCallback)
void
注册相邻表回调函数。
otThreadReleaseRouterId(otInstance *aInstance, uint8_t aRouterId)
释放由具有 Leader 角色的设备分配的路由器 ID。
otThreadSetCcmEnabled(otInstance *aInstance, bool aEnabled)
void
设置设备是否使用 CCM 调试。
otThreadSetChildRouterLinks(otInstance *aInstance, uint8_t aChildRouterLinks)
设置 REED 角色中使用的 MLE_CHILD_ROUTER_LINKS 参数。
otThreadSetContextIdReuseDelay(otInstance *aInstance, uint32_t aDelay)
void
设置主管角色中使用的 CONTEXT_ID_REUSE_DELAY 参数。
otThreadSetDeviceProperties(otInstance *aInstance, const otDeviceProperties *aDeviceProperties)
void
设置设备属性,然后使用这些属性确定和设置主要权重。
otThreadSetJoinerUdpPort(otInstance *aInstance, uint16_t aJoinerUdpPort)
设置联接器 UDP 端口。
otThreadSetLocalLeaderWeight(otInstance *aInstance, uint8_t aWeight)
void
设置以 Leader 角色执行操作时使用的线程引导加载程序权重。
otThreadSetMaxAllowedChildren(otInstance *aInstance, uint16_t aMaxChildren)
设置当前允许的子项数上限。
otThreadSetMaxChildIpAddresses(otInstance *aInstance, uint8_t aMaxIpAddresses)
设置或恢复每个 MTD 子级可在此设备中注册为父级的 IP 地址数量上限。
otThreadSetNetworkIdTimeout(otInstance *aInstance, uint8_t aTimeout)
void
设置 NETWORK_ID_TIMEOUT 参数。
otThreadSetParentPriority(otInstance *aInstance, int8_t aParentPriority)
设置父级优先级。
otThreadSetPreferredLeaderPartitionId(otInstance *aInstance, uint32_t aPartitionId)
void
设置以 Leader 角色执行操作时使用的首选 Thread Leader 分区 ID。
otThreadSetPreferredRouterId(otInstance *aInstance, uint8_t aRouterId)
设置首选路由器 ID。
otThreadSetPskc(otInstance *aInstance, const otPskc *aPskc)
设置线程 PSKc。
otThreadSetPskcRef(otInstance *aInstance, otPskcRef aKeyRef)
将键引用设置为线程 PSKc。
otThreadSetRouterDowngradeThreshold(otInstance *aInstance, uint8_t aThreshold)
void
设置 Leader 角色中使用的 ROUTER_DOWNGRADE_THRESHOLD 参数。
otThreadSetRouterEligible(otInstance *aInstance, bool aEligible)
设置设备是否支持路由器。
otThreadSetRouterIdRange(otInstance *aInstance, uint8_t aMinRouterId, uint8_t aMaxRouterId)
设置允许分配给线程网络中的节点的路由器 ID 范围。
otThreadSetRouterSelectionJitter(otInstance *aInstance, uint8_t aRouterJitter)
void
设置 REED/Router 角色中使用的 ROUTER_SELECTION_JITTER 参数。
otThreadSetRouterUpgradeThreshold(otInstance *aInstance, uint8_t aThreshold)
void
设置 Leader 角色中使用的 ROUTER_UPGRADE_THRESHOLD 参数。
otThreadSetSteeringData(otInstance *aInstance, const otExtAddress *aExtAddress)
void
设置带外数据转移。
otThreadSetThreadVersionCheckEnabled(otInstance *aInstance, bool aEnabled)
void
设置是否启用路由的安全政策 TLV 版本阈值(VR 字段)。

结构体

otCacheEntryInfo

表示 EID 缓存条目。

otCacheEntryIterator

表示用于迭代 EID 缓存表条目的迭代器。

otChildInfo

保存 Thread 子级的诊断信息。

otDeviceProperties

表示用于计算设备上的本地主要权重的设备属性。

otNeighborTableEntryInfo

表示相邻表条目信息(子表或路由器),并用作相邻表回调 otNeighborTableCallback 中的参数。

枚举

otCacheEntryState

 otCacheEntryState

定义 EID 缓存条目状态。

otNeighborTableEvent

 otNeighborTableEvent

定义 otNeighborTableCallback 中用于表示相邻表中变化的常量。

属性
OT_NEIGHBOR_TABLE_EVENT_CHILD_ADDED

正在添加子级。

OT_NEIGHBOR_TABLE_EVENT_CHILD_MODE_CHANGED

现有子级的模式已更改。

OT_NEIGHBOR_TABLE_EVENT_CHILD_REMOVED

正在移除 1 个孩子。

OT_NEIGHBOR_TABLE_EVENT_ROUTER_ADDED

正在添加路由器。

OT_NEIGHBOR_TABLE_EVENT_ROUTER_REMOVED

正在移除路由器。

otPowerSupply

 otPowerSupply

表示设备上的电源属性。

此属性在 otDeviceProperties 中用作属性,用于计算领先变体权重。

属性
OT_POWER_SUPPLY_BATTERY

电池供电。

OT_POWER_SUPPLY_EXTERNAL

外部供电(电源供电)。

OT_POWER_SUPPLY_EXTERNAL_STABLE

使用备用电池或 UPS 的稳定外部电源。

OT_POWER_SUPPLY_EXTERNAL_UNSTABLE

外部电源可能不稳定(例如,通过开关供电的灯泡)。

类型定义符

otCacheEntryInfo

struct otCacheEntryInfo otCacheEntryInfo

表示 EID 缓存条目。

otCacheEntryIterator

struct otCacheEntryIterator otCacheEntryIterator

表示用于迭代 EID 缓存表条目的迭代器。

要初始化迭代器并从缓存表中的第一个条目开始,请将其结构中的所有字段设置为零(例如,使用 memset 将迭代器设为零)。

otCacheEntryState

enum otCacheEntryState otCacheEntryState

定义 EID 缓存条目状态。

otChildIp6AddressIterator

uint16_t otChildIp6AddressIterator

用于遍历线程子条目的 IPv6 地址。

otDeviceProperties

struct otDeviceProperties otDeviceProperties

表示用于计算设备上的本地主要权重的设备属性。

这些参数设置依据为设备的功能、是否充当边界路由器、其电源配置等。

mIsUnstable 表示设备的运行稳定性,由供应商专用机制决定。可能包括以下情况:

  • 设备内部检测到它丢失外部电源的频率比平时高。通常由供应商决定。
  • 设备在内部检测到它重启的频率比平时高。通常由供应商决定。

otNeighborTableCallback

void(* otNeighborTableCallback)(otNeighborTableEvent aEvent, const otNeighborTableEntryInfo *aEntryInfo)

系统会调用指针来通知相邻表发生了更改。

具体说明
参数
[in] aEvent
事件标志。
[in] aEntryInfo
指向表条目信息的指针。

函数

otThreadBecomeLeader

otError otThreadBecomeLeader(
  otInstance *aInstance
)

成为领导者并启动新的分区。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
成功成为主要分区并启动了新的分区。
OT_ERROR_INVALID_STATE
线程已停用。

otThreadBecomeRouter

otError otThreadBecomeRouter(
  otInstance *aInstance
)

尝试成为路由器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
成功开始尝试成为路由器。
OT_ERROR_INVALID_STATE
线程已停用。

otThreadGetAdvertisementTrickleIntervalMax

uint32_t otThreadGetAdvertisementTrickleIntervalMax(
  otInstance *aInstance
)

获取广告微妙计时器使用的当前间隔最大值。

此 API 需要 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE,且仅用于测试。

具体说明
返回值
广告间隔最大时间间隔计时器(以毫秒为单位)。

otThreadGetChildInfoById

otError otThreadGetChildInfoById(
  otInstance *aInstance,
  uint16_t aChildId,
  otChildInfo *aChildInfo
)

按子项 ID 或 RLOC16 获取附加子项的诊断信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aChildId
所关联子级的子级 ID 或 RLOC16。
[out] aChildInfo
指向子项信息所放置位置的指针。
返回值
OT_ERROR_NONE
已成功使用指定 ID 的信息更新了 aChildInfo
OT_ERROR_NOT_FOUND
没有与此子 ID 对应的有效子节点。
OT_ERROR_INVALID_ARGS
如果 aChildInfo 为 NULL。

otThreadGetChildInfoByIndex

otError otThreadGetChildInfoByIndex(
  otInstance *aInstance,
  uint16_t aChildIndex,
  otChildInfo *aChildInfo
)

该函数按内部表索引保留附加子项的诊断信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aChildIndex
表索引。
[out] aChildInfo
指向子项信息所放置位置的指针。
返回值
OT_ERROR_NONE
已成功使用指定索引的信息更新 aChildInfo
OT_ERROR_NOT_FOUND
此索引没有有效的子节点。
OT_ERROR_INVALID_ARGS
aChildInfo 为 NULL,或 aChildIndex 超出范围(大于最大表索引)。
另请参阅
otGetMaxAllowedChildren

otThreadGetChildNextIp6Address

otError otThreadGetChildNextIp6Address(
  otInstance *aInstance,
  uint16_t aChildIndex,
  otChildIp6AddressIterator *aIterator,
  otIp6Address *aAddress
)

获取指定子项的下一个 IPv6 地址(使用迭代器)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aChildIndex
子索引。
[in,out] aIterator
指向迭代器的指针。如果成功,迭代器将更新为指向列表中的下一个条目。要获取第一个 IPv6 地址,应将迭代器设置为 OT_CHILD_IP6_ADDRESS_ITERATOR_INIT。
[out] aAddress
指向子级下一个地址所在的 IPv6 地址的指针(如果成功)。
返回值
OT_ERROR_NONE
已成功找到下一个 IPv6 地址(已成功更新 aAddress)。
OT_ERROR_NOT_FOUND
子级没有后续的 IPv6 地址条目。
OT_ERROR_INVALID_ARGS
aIteratoraAddress 为 NULL,或 aChildIndex 处的子项无效。
另请参阅
otThreadGetChildInfoByIndex

uint8_t otThreadGetChildRouterLinks(
  otInstance *aInstance
)

获取在 REED 角色中使用的 MLE_CHILD_ROUTER_LINKS 参数。

此参数用于指定设备(作为 FED)将尝试与之建立链接的相邻路由器的最大数量。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
MLE_CHILD_ROUTER_LINKS 值。
另请参阅
otThreadSetChildRouterLinks

otThreadGetContextIdReuseDelay

uint32_t otThreadGetContextIdReuseDelay(
  otInstance *aInstance
)

获取 Leader 角色中使用的 CONTEXT_ID_REUSE_DELAY 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
CONTEXT_ID_REUSE_DELAY 值。
另请参阅
otThreadSetContextIdReuseDelay

otThreadGetDeviceProperties

const otDeviceProperties * otThreadGetDeviceProperties(
  otInstance *aInstance
)

获取当前设备属性。

需要 OPENTHREAD_CONFIG_MLE_DEVICE_PROPERTY_LEADER_WEIGHT_ENABLE

具体说明
返回值
设备属性 otDeviceProperties

otThreadGetJoinerUdpPort

uint16_t otThreadGetJoinerUdpPort(
  otInstance *aInstance
)

获取联接器 UDP 端口。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
联接器 UDP 端口号。
另请参阅
otThreadSetJoinerUdpPort

otThreadGetLocalLeaderWeight

uint8_t otThreadGetLocalLeaderWeight(
  otInstance *aInstance
)

获取以 Leader 角色执行操作时使用的线程引导加载程序权重。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
线程主管权重值。
另请参阅
otThreadSetLeaderWeight
otThreadSetDeviceProperties

otThreadGetMaxAllowedChildren

uint16_t otThreadGetMaxAllowedChildren(
  otInstance *aInstance
)

获取当前允许的子项数上限。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
目前允许的儿童数量上限。
另请参阅
otThreadSetMaxAllowedChildren

otThreadGetMaxChildIpAddresses

uint8_t otThreadGetMaxChildIpAddresses(
  otInstance *aInstance
)

获取每个 MTD 子级可在此设备中注册为父级的 IP 地址数量上限。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
每个 MTD 子级此设备可注册为父级的 IP 地址数量上限。
另请参阅
otThreadSetMaxChildIpAddresses

otThreadGetMaxRouterId

uint8_t otThreadGetMaxRouterId(
  otInstance *aInstance
)

该函数会返回允许的最大路由器 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
允许的最大路由器 ID 数。

otThreadGetNetworkIdTimeout

uint8_t otThreadGetNetworkIdTimeout(
  otInstance *aInstance
)

获取 NETWORK_ID_TIMEOUT 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
NETWORK_ID_TIMEOUT 值。
另请参阅
otThreadSetNetworkIdTimeout

otThreadGetNextCacheEntry

otError otThreadGetNextCacheEntry(
  otInstance *aInstance,
  otCacheEntryInfo *aEntryInfo,
  otCacheEntryIterator *aIterator
)

获取下一个 EID 缓存条目(使用迭代器)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aEntryInfo
指向 EID 缓存条目信息所存储位置的指针。
[in,out] aIterator
指向迭代器的指针。如果成功,它将更新为指向下一个条目。要获取第一个条目,请初始化迭代器,方法是将其所有字段设置为零(例如,使用 memset 将迭代器结构归零)。
返回值
OT_ERROR_NONE
已成功为下一个 EID 缓存条目填充 aEntryInfo
OT_ERROR_NOT_FOUND
地址缓存表中没有其他条目。

otThreadGetNextHopAndPathCost

void otThreadGetNextHopAndPathCost(
  otInstance *aInstance,
  uint16_t aDestRloc16,
  uint16_t *aNextHopRloc16,
  uint8_t *aPathCost
)

获取指向给定 RLOC16 目标的下一个跃点和路径费用。

可与 aNextHopRloc16aPathCost 为 NULL(表示调用方不想获取值)一起使用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDestRloc16
目的地的 RLOC16。
[out] aNextHopRloc16
用于返回下一个跃点的 RLOC16 的指针,如果没有下一个跃点,则返回 0xfffe。
[out] aPathCost
返回指向目标的路径费用的指针。

otThreadGetParentPriority

int8_t otThreadGetParentPriority(
  otInstance *aInstance
)

获取已分配的父级优先级。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
已分配的父级优先级值,-2 表示未分配。
另请参阅
otThreadSetParentPriority

otThreadGetPreferredLeaderPartitionId

uint32_t otThreadGetPreferredLeaderPartitionId(
  otInstance *aInstance
)

获取以 Leader 角色执行操作时使用的首选 Thread Leader 分区 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Thread Leader 分区 ID 值。

otThreadGetPskc

void otThreadGetPskc(
  otInstance *aInstance,
  otPskc *aPskc
)

获取线程 PSKc。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aPskc
指向用于返回检索到的线程 PSKc 的 otPskc 的指针。
另请参阅
otThreadSetPskc

otThreadGetPskcRef

otPskcRef otThreadGetPskcRef(
  otInstance *aInstance
)

获取已存储的线程 PSKc 的键引用。

需要启用构建时功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
对 PSKc 的键引用
另请参阅
otThreadSetPskcRef

otThreadGetRouterDowngradeThreshold

uint8_t otThreadGetRouterDowngradeThreshold(
  otInstance *aInstance
)

获取 Router 角色中使用的 ROUTER_DOWNGRADE_THRESHOLD 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
ROUTER_DOWNGRADE_THRESHOLD 值。
另请参阅
otThreadSetRouterDowngradeThreshold

otThreadGetRouterIdRange

void otThreadGetRouterIdRange(
  otInstance *aInstance,
  uint8_t *aMinRouterId,
  uint8_t *aMaxRouterId
)

获取允许分配给线程网络中的节点的路由器 ID 范围。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aMinRouterId
最小路由器 ID。
[out] aMaxRouterId
最大路由器 ID。
另请参阅
otThreadSetRouterIdRange

otThreadGetRouterIdSequence

uint8_t otThreadGetRouterIdSequence(
  otInstance *aInstance
)

获取当前的路由器 ID 序列。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
路由器 ID 序列。

otThreadGetRouterInfo

otError otThreadGetRouterInfo(
  otInstance *aInstance,
  uint16_t aRouterId,
  otRouterInfo *aRouterInfo
)

该函数会保留给定 Thread Router 的诊断信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aRouterId
给定路由器的路由器 ID 或 RLOC16。
[out] aRouterInfo
指向路由器信息放置位置的指针。
返回值
OT_ERROR_NONE
成功检索到了指定 ID 的路由器信息。
OT_ERROR_NOT_FOUND
没有具有指定 ID 的路由器条目。
OT_ERROR_INVALID_ARGS
aRouterInfo 为 NULL。

otThreadGetRouterSelectionJitter

uint8_t otThreadGetRouterSelectionJitter(
  otInstance *aInstance
)

获取用于 REED/Router 角色的 ROUTER_SELECTION_JITTER 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
ROUTER_SELECTION_JITTER 值。
另请参阅
otThreadSetRouterSelectionJitter

otThreadGetRouterUpgradeThreshold

uint8_t otThreadGetRouterUpgradeThreshold(
  otInstance *aInstance
)

获取在 REED 角色中使用的 ROUTER_UPGRADE_THRESHOLD 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
ROUTER_UPGRADE_THRESHOLD 值。
另请参阅
otThreadSetRouterUpgradeThreshold

otThreadIsRouterEligible

bool otThreadIsRouterEligible(
  otInstance *aInstance
)

指明设备是否支持路由器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
TRUE
设备是否符合路由器条件。
FALSE
设备不符合路由器条件时。

otThreadIsRouterIdAllocated

bool otThreadIsRouterIdAllocated(
  otInstance *aInstance,
  uint8_t aRouterId
)

指示当前是否已分配路由器 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aRouterId
要检查的路由器 ID。
返回值
TRUE
已分配 aRouterId
FALSE
未分配 aRouterId

otThreadRegisterNeighborTableCallback

void otThreadRegisterNeighborTableCallback(
  otInstance *aInstance,
  otNeighborTableCallback aCallback
)

注册相邻表回调函数。

当相邻表发生变化(例如,添加/移除子项或路由器相邻条目,或现有子项的模式发生更改)时,系统将调用提供的回调函数(如果非 NULL)。

对此方法的后续调用将覆盖之前的回调。请注意,此回调函数在相邻表/子表更新期间调用,并始终在 otStateChangedCallback 之前调用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向回调处理程序函数的指针。

otThreadReleaseRouterId

otError otThreadReleaseRouterId(
  otInstance *aInstance,
  uint8_t aRouterId
)

释放由具有 Leader 角色的设备分配的路由器 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aRouterId
要释放的路由器 ID。有效范围为 [0, 62]。
返回值
OT_ERROR_NONE
已成功释放路由器 ID。
OT_ERROR_INVALID_ARGS
aRouterId 不在 [0, 62] 范围内。
OT_ERROR_INVALID_STATE
设备目前未以主要模式运行。
OT_ERROR_NOT_FOUND
目前没有分配路由器 ID。

otThreadSetCcmEnabled

void otThreadSetCcmEnabled(
  otInstance *aInstance,
  bool aEnabled
)

设置设备是否使用 CCM 调试。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
如果设备是使用 CCM 委托进行的,则为 TRUE,否则为 FALSE。
otError otThreadSetChildRouterLinks(
  otInstance *aInstance,
  uint8_t aChildRouterLinks
)

设置 REED 角色中使用的 MLE_CHILD_ROUTER_LINKS 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aChildRouterLinks
MLE_CHILD_ROUTER_LINKS 值。
返回值
OT_ERROR_NONE
成功设置值。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetChildRouterLinks

otThreadSetContextIdReuseDelay

void otThreadSetContextIdReuseDelay(
  otInstance *aInstance,
  uint32_t aDelay
)

设置主管角色中使用的 CONTEXT_ID_REUSE_DELAY 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDelay
CONTEXT_ID_REUSE_DELAY 值。
另请参阅
otThreadGetContextIdReuseDelay

otThreadSetDeviceProperties

void otThreadSetDeviceProperties(
  otInstance *aInstance,
  const otDeviceProperties *aDeviceProperties
)

设置设备属性,然后使用这些属性确定和设置主要权重。

需要 OPENTHREAD_CONFIG_MLE_DEVICE_PROPERTY_LEADER_WEIGHT_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDeviceProperties
设备属性。

otThreadSetJoinerUdpPort

otError otThreadSetJoinerUdpPort(
  otInstance *aInstance,
  uint16_t aJoinerUdpPort
)

设置联接器 UDP 端口。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aJoinerUdpPort
联接器 UDP 端口号。
返回值
OT_ERROR_NONE
已成功设置联接器 UDP 端口。
另请参阅
otThreadGetJoinerUdpPort

otThreadSetLocalLeaderWeight

void otThreadSetLocalLeaderWeight(
  otInstance *aInstance,
  uint8_t aWeight
)

设置以 Leader 角色执行操作时使用的线程引导加载程序权重。

直接将主要权重设为新值,替换其先前的值(可能根据当前 otDeviceProperties 确定)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aWeight
线程主管权重值。
另请参阅
otThreadGetLeaderWeight

otThreadSetMaxAllowedChildren

otError otThreadSetMaxAllowedChildren(
  otInstance *aInstance,
  uint16_t aMaxChildren
)

设置当前允许的子项数上限。

此参数只能在 Thread 协议操作停止时设置。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMaxChildren
允许的子元素数量上限。
返回值
OT_ERROR_NONE
成功将
OT_ERROR_INVALID_ARGS
如果 aMaxChildren 不在 [1, OPENTHREAD_CONFIG_MLE_MAX_CHILDREN] 范围内。
OT_ERROR_INVALID_STATE
如果 Thread 未停止。
另请参阅
otThreadGetMaxAllowedChildren

otThreadSetMaxChildIpAddresses

otError otThreadSetMaxChildIpAddresses(
  otInstance *aInstance,
  uint8_t aMaxIpAddresses
)

设置或恢复每个 MTD 子级可在此设备中注册为父级的 IP 地址数量上限。

传递 0 可清除设置并恢复默认值。

启用 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMaxIpAddresses
每个 MTD 子级此设备可注册为父级的 IP 地址数量上限。0 可清除设置并恢复默认值。
返回值
OT_ERROR_NONE
已成功设置/清除号码。
OT_ERROR_INVALID_ARGS
如果超过了所允许的最大数量。
另请参阅
otThreadGetMaxChildIpAddresses

otThreadSetNetworkIdTimeout

void otThreadSetNetworkIdTimeout(
  otInstance *aInstance,
  uint8_t aTimeout
)

设置 NETWORK_ID_TIMEOUT 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aTimeout
NETWORK_ID_TIMEOUT 值。
另请参阅
otThreadGetNetworkIdTimeout

otThreadSetParentPriority

otError otThreadSetParentPriority(
  otInstance *aInstance,
  int8_t aParentPriority
)

设置父级优先级。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aParentPriority
父级优先级值。
返回值
OT_ERROR_NONE
成功设置父级优先级。
OT_ERROR_INVALID_ARGS
如果父节点的优先级值不在 1、0、-1 和 -2 之间。
另请参阅
otThreadGetParentPriority

otThreadSetPreferredLeaderPartitionId

void otThreadSetPreferredLeaderPartitionId(
  otInstance *aInstance,
  uint32_t aPartitionId
)

设置以 Leader 角色执行操作时使用的首选 Thread Leader 分区 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPartitionId
Thread Leader 分区 ID 值。

otThreadSetPreferredRouterId

otError otThreadSetPreferredRouterId(
  otInstance *aInstance,
  uint8_t aRouterId
)

设置首选路由器 ID。

成为路由器/领导者后,该节点会尝试使用此路由器 ID。如果未设置首选路由器 ID 或无法使用此路由器 ID,则系统会选择随机生成的路由器 ID。只有在设备角色已分离或已停用时,才能设置此属性。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aRouterId
首选路由器 ID。
返回值
OT_ERROR_NONE
成功设置首选路由器 ID。
OT_ERROR_INVALID_STATE
无法设置(角色未分离或已停用)

otThreadSetPskc

otError otThreadSetPskc(
  otInstance *aInstance,
  const otPskc *aPskc
)

设置线程 PSKc。

只有在停用 Thread 协议时才会成功。成功调用此函数也会使非易失性内存中的活跃和待处理操作数据集失效。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPskc
指向新线程 PSKc 的指针。
返回值
OT_ERROR_NONE
成功设置线程 PSKc。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetPskc

otThreadSetPskcRef

otError otThreadSetPskcRef(
  otInstance *aInstance,
  otPskcRef aKeyRef
)

将键引用设置为线程 PSKc。

需要启用构建时功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

只有在停用 Thread 协议时才会成功。操作成功后,非易失性内存中的活跃和待处理操作数据集也会失效。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKeyRef
对新线程 PSKc 的键引用。
返回值
OT_ERROR_NONE
成功设置线程 PSKc。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetPskcRef

otThreadSetRouterDowngradeThreshold

void otThreadSetRouterDowngradeThreshold(
  otInstance *aInstance,
  uint8_t aThreshold
)

设置 Leader 角色中使用的 ROUTER_DOWNGRADE_THRESHOLD 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aThreshold
ROUTER_DOWNGRADE_THRESHOLD 值。
另请参阅
otThreadGetRouterDowngradeThreshold

otThreadSetRouterEligible

otError otThreadSetRouterEligible(
  otInstance *aInstance,
  bool aEligible
)

设置设备是否支持路由器。

如果 aEligible 为 false,并且设备当前作为路由器运行,则此调用会导致设备分离并尝试重新挂接为子节点。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEligible
如果为 TRUE,则将设备配置为可连接路由器,否则为 FALSE。
返回值
OT_ERROR_NONE
成功设置符合路由器条件的配置。
OT_ERROR_NOT_CAPABLE
设备无法成为路由器。

otThreadSetRouterIdRange

otError otThreadSetRouterIdRange(
  otInstance *aInstance,
  uint8_t aMinRouterId,
  uint8_t aMaxRouterId
)

设置允许分配给线程网络中的节点的路由器 ID 范围。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMinRouterId
最小路由器 ID。
[in] aMaxRouterId
最大路由器 ID。
返回值
OT_ERROR_NONE
已成功设置范围。
OT_ERROR_INVALID_ARGS
aMinRouterId > aMaxRouterId,或者该范围不在 [0, 62] 范围内。
另请参阅
otThreadGetRouterIdRange

otThreadSetRouterSelectionJitter

void otThreadSetRouterSelectionJitter(
  otInstance *aInstance,
  uint8_t aRouterJitter
)

设置 REED/Router 角色中使用的 ROUTER_SELECTION_JITTER 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aRouterJitter
ROUTER_SELECTION_JITTER 值。
另请参阅
otThreadGetRouterSelectionJitter

otThreadSetRouterUpgradeThreshold

void otThreadSetRouterUpgradeThreshold(
  otInstance *aInstance,
  uint8_t aThreshold
)

设置 Leader 角色中使用的 ROUTER_UPGRADE_THRESHOLD 参数。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aThreshold
ROUTER_UPGRADE_THRESHOLD 值。
另请参阅
otThreadGetRouterUpgradeThreshold

otThreadSetSteeringData

void otThreadSetSteeringData(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

设置带外数据转移。

应设置配置选项 OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE,以启用带外控制数据的设置。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aExtAddress
用于更新转向数据的地址。全部为零以清除转向数据(不清除转向数据)。所有 0xFF,用于将导向数据/泛光过滤器设置为接受/全部允许。特定的 EUI64,然后会添加到当前导向数据/泛光过滤器中。

otThreadSetThreadVersionCheckEnabled

void otThreadSetThreadVersionCheckEnabled(
  otInstance *aInstance,
  bool aEnabled
)

设置是否启用路由的安全政策 TLV 版本阈值(VR 字段)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
若要为路由启用安全政策 TLV 版本阈值,则为 TRUE,否则为 FALSE。

OT_CHILD_IP6_ADDRESS_ITERATOR_INIT

 OT_CHILD_IP6_ADDRESS_ITERATOR_INIT 0

otChildIP6AddressIterator 的初始化程序。

资源

OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源