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

邊界轉送管理員

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

摘要

這個模組的所有函式都必須啟用 OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE

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

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

轉送管理員會在 Thread Network 資料中管理 Off-Mesh 可轉送 (OMR) 前置字串,藉此為 Thread 裝置設定適當的 Off-Mesh Routable IPv6 位址。這個公告公開此識別碼在 AIL 上的可連性,方法是將其納入 RA 訊息中,做為 IPv6 路線資訊選項 (RIO)。

轉送管理員也會監控及新增基礎架構網路中的連結前置字串。如果 AIL 上的路由器已提供 IP 消息,其中包含 IPv6 前縮信息選項(PIO),使配置上的 IPv6 設備能自主配置自己的可路由的單播 IPv6 地址,Thread 設備可以使用此地址到位 AIL。如果邊界路由器在 AIL 中找不到這類 RA 訊息,就會產生 ULA 連結前置前置字串,然後透過發送的 RA 訊息在 AIL 上放送廣告。

Typedefs

otBorderRoutingPrefixTableEntry typedef
此結構代表系統找到的前置字元表格項目。
otBorderRoutingPrefixTableIterator typedef
此結構代表疊代透過邊界順序中發現的前置字元表的疊代器。

Functions

otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
void
這個函式會清除先前針對廣告路線選項設定的偏好值。
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)
取得本機「網狀清頻 (OMR) 前置字串」,例如 fdfc:1ff5:1512:5622::/64
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
取得鄰近基礎架構連結的「連結連結前置字串」,例如 fd41:2650:a6f5:0::/64
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
這個函式會在透過基礎架構連結傳送的路由器廣告訊息通告路徑資訊選項 (RIO) 時,採用目前的偏好設定。
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
此函式明確設定在透過基礎架構連結傳送的路由器廣告訊息中宣傳「路線資訊選項」(RIO) 時,所偏好使用的偏好設定。

結構

otBorderRoutingPrefixTableEntry

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

otBorderRoutingPrefixTableIterator

此結構代表疊代透過邊界順序中發現的前置字元表的疊代器。

Typedefs

otBorderRoutingPrefixTableEntry

struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry

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

探索表格中的項目會在來自其他路由器的基礎架構廣告訊息中,追蹤「路由器/路徑資訊」選項中的前置字串/路徑資訊選項。

otBorderRoutingPrefixTableIterator

struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator

此結構代表疊代透過邊界順序中發現的前置字元表的疊代器。

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

使用疊代器之前,「必須」使用 otBorderRoutingPrefixTableInitIterator() 進行初始化。

Functions

otBorderRoutingClearRouteInfoOptionPreference

void otBorderRoutingClearRouteInfoOptionPreference(
  otInstance *aInstance
)

這個函式會清除先前針對廣告路線選項設定的偏好值。

呼叫此函式後,BR 將使用裝置角色來判斷 RIO 的偏好設定:路由器/主管角色的中度偏好設定,子項角色的優先順序較低。

詳細資料
參數
[in] aInstance
指向 OpenThread 執行個體的指標。

otBorderRoutingGetFavoredNat64 前置字串

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
)

取得本機「網狀清頻 (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 位元的前置字元,如果連結上沒有可行的可用連結前置詞,則為基礎架構連結廣告。

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

otBorderRoutingGetRouteInfoOptionPreference

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

這個函式會在透過基礎架構連結傳送的路由器廣告訊息通告路徑資訊選項 (RIO) 時,採用目前的偏好設定。

RIO 的偏好設定如下:

  • 如果使用者透過呼叫 otBorderRoutingSetRouteInfoOptionPreference() 明確設定,則會使用指定的偏好設定。
  • 否則,取決於裝置目前的角色:路由器/主管角色的中度偏好設定,子項角色時的優先順序較低。

詳細資料
傳回
目前的路線資訊選項偏好設定。

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
)

此函式明確設定在透過基礎架構連結傳送的路由器廣告訊息中宣傳「路線資訊選項」(RIO) 時,所偏好使用的偏好設定。

呼叫此函式後,BR 將使用所有偏好廣告 RIO。呼叫 otBorderRoutingClearRouteInfoOptionPreference() 可清除偏好設定。

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

資源

OpenThread API 參考資料主題來自原始碼,可在 GitHub 取得。如需詳細資訊或為說明文件貢獻一己之力,請參閱資源