路由器/主管

這個模組包含 Thread 路由器和領導者適用的函式。

摘要

列舉

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
}
列舉
代表裝置的電源供應器屬性。

Typedefs

otCacheEntryInfo typedef
代表 EID 快取項目。
otCacheEntryIterator typedef
代表用於在 EID 快取資料表項目疊代的疊代器。
otCacheEntryState typedef
定義 EID 快取項目狀態。
otChildIp6AddressIterator typedef
uint16_t
用於透過 Thread 子項項目的 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
取得在領導者角色中使用的 CONTEXT_ID_REUSE_DELAY 參數。
otThreadGetDeviceProperties(otInstance *aInstance)
取得目前的裝置屬性。
otThreadGetJoinerUdpPort(otInstance *aInstance)
uint16_t
取得彙整器 UDP 通訊埠。
otThreadGetLocalLeaderWeight(otInstance *aInstance)
uint8_t
取得擔任領導者角色時要使用的 Thread 領導者權重。
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
取得以領導者角色執行作業時,使用偏好的 Thread 領導者分區 ID。
otThreadGetPskc(otInstance *aInstance, otPskc *aPskc)
void
取得 Thread PSKc。
otThreadGetPskcRef(otInstance *aInstance)
取得所儲存 Thread PSKc 的索引鍵參考資料。
otThreadGetRouterDowngradeThreshold(otInstance *aInstance)
uint8_t
取得路由器角色中使用的 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 路由器的診斷資訊。
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)
釋出裝置已分配為主要角色的路由器 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
設定擔任領導者角色時,使用的 Thread 領導者權重。
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
設定以領導者角色運作時,使用的 Thread 領導者分區 ID。
otThreadSetPreferredRouterId(otInstance *aInstance, uint8_t aRouterId)
設定偏好路由器 ID。
otThreadSetPskc(otInstance *aInstance, const otPskc *aPskc)
設定 Thread PSKc。
otThreadSetPskcRef(otInstance *aInstance, otPskcRef aKeyRef)
將索引鍵參照設為 Thread PSKc。
otThreadSetRouterDowngradeThreshold(otInstance *aInstance, uint8_t aThreshold)
void
設定主要角色中使用的 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_SELECTION_JITTER 參數。
otThreadSetRouterUpgradeThreshold(otInstance *aInstance, uint8_t aThreshold)
void
設定主要角色中使用的 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

正在移除一個孩童。

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

延伸機功率可能不穩定 (例如燈泡透過開關供電)。

Typedefs

otCacheEntryInfo

struct otCacheEntryInfo otCacheEntryInfo

代表 EID 快取項目。

otCacheEntryIterator

struct otCacheEntryIterator otCacheEntryIterator

代表用於在 EID 快取資料表項目疊代的疊代器。

如要初始化疊代器,從快取資料表的第一個項目開始,請將結構中的所有欄位設為零 (例如memset 是疊代器)。

otCacheEntryState

enum otCacheEntryState otCacheEntryState

定義 EID 快取項目狀態。

otChildIp6AddressIterator

uint16_t otChildIp6AddressIterator

用於透過 Thread 子項項目的 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 為空值。

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 為空值,或 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 為空值,或 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
)

取得在領導者角色中使用的 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
)

取得擔任領導者角色時要使用的 Thread 領導者權重。

詳細說明
參數
[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 搭配使用,表示呼叫端不想取得值。

詳細說明
參數
[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
)

取得以領導者角色執行作業時,使用偏好的 Thread 領導者分區 ID。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
執行緒領導者分區 ID 值。

otThreadGetPskc

void otThreadGetPskc(
  otInstance *aInstance,
  otPskc *aPskc
)

取得 Thread PSKc。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aPskc
指向 otPskc 的指標,以傳回擷取的執行緒 PSKc。
另請參閱:
otThreadSetPskc

otThreadGetPskcRef

otPskcRef otThreadGetPskcRef(
  otInstance *aInstance
)

取得所儲存 Thread PSKc 的索引鍵參考資料。

必須啟用建構時間功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
PSKc 金鑰參考資料
另請參閱:
otThreadSetPskcRef

otThreadGetRouterDowngradeThreshold

uint8_t otThreadGetRouterDowngradeThreshold(
  otInstance *aInstance
)

取得路由器角色中使用的 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 路由器的診斷資訊。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aRouterId
指定路由器的路由器 ID 或 RLOC16。
[out] aRouterInfo
路由器資訊放置位置的指標。
傳回值
OT_ERROR_NONE
已成功擷取指定 ID 的路由器資訊。
OT_ERROR_NOT_FOUND
找不到具有指定 ID 的路由器項目。
OT_ERROR_INVALID_ARGS
aRouterInfo 為空值。

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
)

註冊相鄰資料表回呼函式。

當相鄰資料表中發生變更 (例如新增/移除子項或路由器鄰點項目,或變更現有子項模式的變更),就會叫用提供的回呼 (非空值)。

後續呼叫此方法會覆寫先前的回呼。請注意,更新鄰近/子項資料表時,叫用此回呼,且一律位於 otStateChangedCallback 之前。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aCallback
回呼處理常式函式的指標。

otThreadReleaseRouterId

otError otThreadReleaseRouterId(
  otInstance *aInstance,
  uint8_t aRouterId
)

釋出裝置已分配為主要角色的路由器 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
)

設定擔任領導者角色時,使用的 Thread 領導者權重。

直接將主要權重設為新值,並取代先前的值 (可能會透過目前的 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
)

設定以領導者角色運作時,使用的 Thread 領導者分區 ID。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aPartitionId
執行緒領導者分區 ID 值。

otThreadSetPreferredRouterId

otError otThreadSetPreferredRouterId(
  otInstance *aInstance,
  uint8_t aRouterId
)

設定偏好路由器 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
)

設定 Thread PSKc。

只有在停用 Thread 通訊協定時才會成功。如果呼叫這個函式,也會使非揮發性記憶體中的有效和待處理作業資料集失效。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aPskc
指向新 Thread PSKc 的指標。
傳回值
OT_ERROR_NONE
已成功設定 Thread PSKc。
OT_ERROR_INVALID_STATE
已啟用執行緒通訊協定。
另請參閱:
otThreadGetPskc

otThreadSetPskcRef

otError otThreadSetPskcRef(
  otInstance *aInstance,
  otPskcRef aKeyRef
)

將索引鍵參照設為 Thread PSKc。

必須啟用建構時間功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

只有在停用 Thread 通訊協定時才會成功。成功處理後,這也會使非揮發性記憶體中的「有效」和「待處理」作業資料集失效。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aKeyRef
新 Thread PSKc 的索引鍵參考資料。
傳回值
OT_ERROR_NONE
已成功設定 Thread PSKc。
OT_ERROR_INVALID_STATE
已啟用執行緒通訊協定。
另請參閱:
otThreadGetPskcRef

otThreadSetRouterDowngradeThreshold

void otThreadSetRouterDowngradeThreshold(
  otInstance *aInstance,
  uint8_t aThreshold
)

設定主要角色中使用的 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_SELECTION_JITTER 參數。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aRouterJitter
ROUTER_SELECTION_JITTER 值。
另請參閱:
otThreadGetRouterSelectionJitter

otThreadSetRouterUpgradeThreshold

void otThreadSetRouterUpgradeThreshold(
  otInstance *aInstance,
  uint8_t aThreshold
)

設定主要角色中使用的 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
設為 TRUE 即可啟用轉送安全性政策 TLV 版本門檻,否則設為 FALSE。

巨集

OT_CHILD_IP6_ADDRESS_ITERATOR_INIT

 OT_CHILD_IP6_ADDRESS_ITERATOR_INIT 0

otChildIP6AddressIterator 的 Initializer。

資源

OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源