邊界轉送管理員
這個模組包含與邊界轉送管理工具相關的定義。
摘要
這個模組的所有函式都必須啟用 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 的偏好設定:路由器/主管角色的中度偏好設定,子項角色的優先順序較低。
詳細資料 | |||
---|---|---|---|
參數 |
|
otBorderRoutingGetFavoredNat64 前置字串
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
取得目前慣用的 NAT64 前置字串。
可以從基礎架構連結找到常用的 NAT64 前置字串,也可以是本裝置的本機 NAT64 前置字串。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
回傳值 |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
取得目前常用的「網狀清頻 (OMR) 」前置字串。
可在網路資料中找到喜愛的 OMR 前置字串,也可以是這部裝置的本機 OMR 前置字串。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
回傳值 |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
取得邊界路由器的本機 NAT64 前置字串。
執行緒網路中可能不會通告 NAT64 前置字串。
必須啟用「OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
」。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
回傳值 |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
這個函式會疊代在邊界路由器發現的前置字串資料表中的項目。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
回傳值 |
|
otBorderRoutingGetOmrPrefix
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
取得本機「網狀清頻 (OMR) 前置字串」,例如 fdfc:1ff5:1512:5622::/64
。
OMR 前置字串是隨機產生的 64 位元前置字元,如果沒有 OMR 前置字串,這個執行緒會發布至 Thread 網路。可透過這個區域 Wi-Fi 或乙太網路連線至這個前置字串。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
回傳值 |
|
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
取得鄰近基礎架構連結的「連結連結前置字串」,例如 fd41:2650:a6f5:0::/64
。
連結中的前置前置字元是 64 位元的前置字元,如果連結上沒有可行的可用連結前置詞,則為基礎架構連結廣告。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
回傳值 |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
這個函式會在透過基礎架構連結傳送的路由器廣告訊息通告路徑資訊選項 (RIO) 時,採用目前的偏好設定。
RIO 的偏好設定如下:
- 如果使用者透過呼叫
otBorderRoutingSetRouteInfoOptionPreference()
明確設定,則會使用指定的偏好設定。 - 否則,取決於裝置目前的角色:路由器/主管角色的中度偏好設定,子項角色時的優先順序較低。
詳細資料 | |
---|---|
傳回 |
目前的路線資訊選項偏好設定。
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
這個方法會在指定的基礎架構介面中初始化邊界轉送管理員。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
回傳值 |
|
otPlatInfraIfStateChanged。
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
這個函式會初始化 otBorderRoutingPrefixTableIterator
。
使用疊代器「必須」先初始化。
可重新初始化疊代器以從表格開頭重新開始。
疊代資料表中的項目時,為確保項目 mMsecSinceLastUpdate
的更新時間一致,系統會根據疊代器初始化的時間來提供這些項目。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
啟用或停用邊界轉送管理員。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
回傳值 |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
此函式明確設定在透過基礎架構連結傳送的路由器廣告訊息中宣傳「路線資訊選項」(RIO) 時,所偏好使用的偏好設定。
呼叫此函式後,BR 將使用所有偏好廣告 RIO。呼叫 otBorderRoutingClearRouteInfoOptionPreference()
可清除偏好設定。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
資源
OpenThread API 參考資料主題來自原始碼,可在 GitHub 取得。如需詳細資訊或為說明文件貢獻一己之力,請參閱資源。