透過集合功能整理內容 你可以依據偏好儲存及分類內容。

邊界轉送管理員

這個模組包含與邊界轉送管理工具相關的定義。

摘要

你必須啟用 OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE,才能使用這個模組中的所有函式。

邊界轉送管理工具會處理執行緒網路與相鄰基礎架構連結 (AIL) 之間的雙向轉送功能。

其會在 AIL 上發出 ICMRv6 ND 路由器廣告 (RA) 訊息,用於宣傳連結上和路徑前置字串。也會處理從基礎架構接收的 RA 訊息,並將找到的前置字串串在執行緒網路資料中,確保執行緒網格中的裝置可以透過邊界路由器達到 AIL。

轉送管理員會在 Thread Network 資料上管理 Off-Mesh 可轉送 (OMR) 前置字串,藉此為執行緒裝置設定適當的 Off-Mesh Routable IPv6 位址。其在 AIL 中會宣告此前置字元的可連性,將其納入 IPv 路徑資訊選項 (RIO) 中。

轉送管理員也會監控及新增基礎架構網路中的連結前置字串。如果 AIL 上的路由器已提供含有 IPv6 前置字串資訊選項 (PIO) 的 RA 訊息,可讓連結上的 IPv6 裝置自行設定可轉送的單點 IPv6 位址,因此 Thread 裝置可以透過這個位址連線至 AIL。如果邊界路由器在 AIL 中找不到這類 RA 訊息,就會產生 ULA 連結連結前置字串,然後透過已發送的 RA 訊息在 AIL 上放送廣告。

Typedefs

otBorderRoutingPrefixTableEntry typedef
這個結構代表系統找到的前置字元表格內的項目。
otBorderRoutingPrefixTableIterator typedef
此結構代表疊代處理過邊界路由器和 #39; 前置字串的疊代器。

Functions

otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
取得目前慣用的 NAT64 前置字串。
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
取得目前常用的「網狀清頻」(OMR) 前置字串。
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
取得邊界路由器的本機 NAT64 前置字串。
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
這個函式會疊代在邊界框線中探索的前置字元表上的項目。
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
取得本機 Me-Rsh-Routable (OMR) 前置字串,例如 fdfc:1ff5:1512:5622::/64
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
取得鄰近基礎架構連結的「連結連結前置字串」,例如 fd41:2650:a6f5:0::/64
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
在透過基礎架構連結傳送的「路由器廣告」訊息中宣傳「路線資訊選項」(例如探索的 OMR 前置字串) 時,這個函式會獲得偏好設定。
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
這個方法會在指定的基礎架構介面中初始化邊界轉送管理員。
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
void
這個函式會初始化 otBorderRoutingPrefixTableIterator
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
啟用或停用邊界轉送管理員。
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
void
這個函式用於設定在透過基礎架構連結傳送的「路由器廣告」訊息中的「路徑資訊選項」(例如發現的 OMR 前置字串) 時要使用的偏好設定。

結構

otBorderRoutingPrefixTableEntry

這個結構代表系統找到的前置字元表格內的項目。

otBorderRoutingPrefixTableIterator

此結構代表疊代處理過邊界路由器和 #39; 前置字串的疊代器。

Typedefs

otBorderRoutingPrefixTableEntry

struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry

這個結構代表系統找到的前置字元表格內的項目。

探索表格中的項目會追蹤針對其他路由器透過基礎架構傳送的路由器公告訊息,藉此取得前置字串和路徑資訊選項。

otBorderRoutingPrefixTableIterator

struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator

此結構代表疊代處理過邊界路由器和 #39; 前置字串的疊代器。

這種類型的欄位不透明 (僅供 OpenThread 核心使用),因此不應由呼叫者存取或使用。

使用 iterator 前,「必須」使用 otBorderRoutingPrefixTableInitIterator() 進行初始化。

Functions

otBorderRoutingGetFavoredNat64Prefix

otError otBorderRoutingGetFavoredNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix,
  otRoutePreference *aPreference
)

取得目前慣用的 NAT64 前置字串。

可以從基礎架構連結找到常用的 NAT64 前置字串,也可以在這部裝置上使用本機 NAT64 前置字串。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aPrefix
可輸出偏好 NAT64 前置字串的指標。
[out] aPreference
指標,指向與偏好的前置字串相關聯的偏好設定。
傳回值
OT_ERROR_INVALID_STATE
邊界轉送管理員尚未初始化。
OT_ERROR_NONE
已成功擷取喜歡的 NAT64 前置字串。

otBorderRoutingGetFavoredOmrPrefix

otError otBorderRoutingGetFavoredOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix,
  otRoutePreference *aPreference
)

取得目前常用的「網狀清頻」(OMR) 前置字串。

可在網路資料中找到喜愛的 OMR 前置字串,也可以是這部裝置的 OMR 前置字串。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aPrefix
可輸出慣用 OMR 前置字串的指標。
[out] aPreference
指標,指向與偏好的前置字串相關聯的偏好設定。
傳回值
OT_ERROR_INVALID_STATE
邊界轉送管理員尚未初始化。
OT_ERROR_NONE
已成功擷取喜愛的 OMR 前置字串。

otBorderRoutingGetNat64Prefix

otError otBorderRoutingGetNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

取得邊界路由器的本機 NAT64 前置字串。

執行緒網路中可能不會通告 NAT64 前置字串。

必須啟用「OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE」。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aPrefix
指向前置字串輸出位置的指標。
傳回值
OT_ERROR_INVALID_STATE
邊界轉送管理員尚未初始化。
OT_ERROR_NONE
已成功擷取 NAT64 前置字串。

otBorderRoutingGetNextPrefixTableEntry

otError otBorderRoutingGetNextPrefixTableEntry(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator,
  otBorderRoutingPrefixTableEntry *aEntry
)

這個函式會疊代在邊界框線中探索的前置字元表上的項目。

詳細資料
參數
[in] aInstance
OpenThread 執行個體。
[in,out] aIterator
指向疊代器的指標。
[out] aEntry
要填入的項目的指標。
傳回值
OT_ERROR_NONE
疊代到下一個項目,aEntryaIterator 會更新。
OT_ERROR_NOT_FOUND
資料表中沒有項目。

otBorderRoutingGetOmrPrefix

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

取得本機 Me-Rsh-Routable (OMR) 前置字串,例如 fdfc:1ff5:1512:5622::/64

OMR 前置字串是隨機產生的 64 位元前置字元,如果還沒有 OMR 前置字串,就會在 Thread 網路中發布。可透過區域 Wi-Fi 或乙太網路連線至這個前置字串。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aPrefix
指向前置字串輸出位置的指標。
傳回值
OT_ERROR_INVALID_STATE
邊界轉送管理員尚未初始化。
OT_ERROR_NONE
已成功擷取 OMR 前置字串。

otBorderRoutingGetOnLinkPrefix

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

取得鄰近基礎架構連結的「連結連結前置字串」,例如 fd41:2650:a6f5:0::/64

連結連結前置詞是 64 位元的前置字元,如果這類連結上沒有可連結的可用連結前置詞,就是在基礎架構連結上所宣傳的 #64 位元前置字元。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aPrefix
指向前置字串輸出位置的指標。
傳回值
OT_ERROR_INVALID_STATE
邊界轉送管理員尚未初始化。
OT_ERROR_NONE
已成功擷取連結前置碼。

otBorderRoutingGetRouteInfoOptionPreference

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

在透過基礎架構連結傳送的「路由器廣告」訊息中宣傳「路線資訊選項」(例如探索的 OMR 前置字串) 時,這個函式會獲得偏好設定。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
OMR 前置字元廣告偏好設定。

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

otBorderRoutingPrefixTableInitIterator

void otBorderRoutingPrefixTableInitIterator(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator
)

這個函式會初始化 otBorderRoutingPrefixTableIterator

「疊代」必須在使用前先初始化。

可重新初始化疊代器以從表格開頭重新開始。

當疊代資料表中的項目時,為確保項目 mMsecSinceLastUpdate 的更新時間是一致的,系統會按照疊代器的初始化時間提供這些項目。

詳細資料
參數
[in] aInstance
OpenThread 執行個體。
[out] aIterator
指向疊代器的初始化指標。

otBorderRoutingSetEnabled

otError otBorderRoutingSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

啟用或停用邊界轉送管理員。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aEnabled
用於啟用/停用轉送管理員的布林值。
傳回值
OT_ERROR_INVALID_STATE
邊界轉送管理員尚未初始化。
OT_ERROR_NONE
已成功啟用/停用邊界轉送管理員。

otBorderRoutingSetRouteInfoOptionPreference

void otBorderRoutingSetRouteInfoOptionPreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

這個函式用於設定在透過基礎架構連結傳送的「路由器廣告」訊息中的「路徑資訊選項」(例如發現的 OMR 前置字串) 時要使用的偏好設定。

根據預設,BR 會使用 medium 偏好設定層級,但此函式可讓您變更預設值。舉例來說,如果裝置是臨時 BR (行動裝置 BR 或電池供電的 BR),在基礎架構連結上應優先顯示其他 BR (如果有的話),可以設為 low 偏好設定。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aPreference
要使用的路徑偏好設定。

資源

OpenThread API 參考資料主題出自原始碼,可於 GitHub 取得。如需更多資訊,或想參閱我們的說明文件,請參閱資源