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

TREL - 平台

這個模組包括使用 DNS-SD 和 UDP/IPv6 的執行緒無線電封裝連結 (TREL) 平台抽象層。

摘要

類型

otPlatTrelPeerInfo typedef
這個結構代表使用 DNS-SD 服務在「_trel._udp」服務名稱中找到的 TREL 對等資訊。

函式

otPlatTrelDisable(otInstance *aInstance)
void
這個函式會停用 TREL 平台圖層。
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
void
這個函式會初始化並啟用 TREL 平台層。
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
void
這是平台層的回呼函式,用於回報找到的 TREL 同類資訊。
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
此函式是來自平台的回呼,可通知已接收的 TREL UDP 封包。
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
void
這項函式會註冊要透過 DNS-SD [RFC6763] 宣傳的新服務。
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
這個函式會要求將 TREL UDP 封包傳送至指定目的地。

結構

otPlatTrelPeerInfo

這個結構代表使用 DNS-SD 服務在「_trel._udp」服務名稱中找到的 TREL 對等資訊。

類型

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

這個結構代表使用 DNS-SD 服務在「_trel._udp」服務名稱中找到的 TREL 對等資訊。

函式

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

這個函式會停用 TREL 平台圖層。

在這個呼叫之後,平台層「必須」停止服務名稱「_trel._udp」的 DNS-SD 瀏覽,並停止宣傳 TREL DNS-SD 服務 (來源:otPlatTrelRegisterService()),「必須」關閉用於接收 TREL 訊息的 UDP 通訊端。

[in] aInstance OpenThread 執行個體。

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

這個函式會初始化並啟用 TREL 平台層。

在這個呼叫中,平台層「必須」執行以下動作:

1) TREL 平台層「必須」開啟 UDP 通訊端,才能監聽對等端的 TREL 訊息。通訊端繫結至平台層選擇的臨時通訊埠編號。通訊埠號碼「必須」在 aUdpPort 中傳回。通訊端也會繫結至要支援 TREL 的網路介面。在啟用 TREL 的情況下,通訊端和所選通訊埠應保持有效。

2) 平台圖層「必須」在本機瀏覽網域中以服務名稱「_trel._udp」進行持續的 DNS-SD 瀏覽,藉此找出其他支援 TREL 的裝置。當下的瀏覽方式會產生兩種事件:「新增」事件和「移除」事件。開始瀏覽時,應該會產生目前網路上所有 TREL 點的「新增」事件。當 TREL 同類離線時,應產生「移除」事件。不過,我們不保證一定會移除「移除」事件。找到 TREL 服務執行個體後,應在探索執行個體的 SRV 記錄中指定的主機名稱上,啟動新的 AAAA 記錄進行中的 DNS-SD 查詢。如果對等點同時有多個主機 IPv6 位址,則「必須」回報在所有位址當中最高範圍的位址 (如果同一範圍有多個位址,就必須隨機選取其中一個地址)。

TREL 平台「必須」使用 otPlatTrelHandleDiscoveredPeerInfo() 回呼傳回偵測到的對等資訊。一旦發現新的對等點、現有項目有任何變更 (例如新的 TXT 記錄或新的通訊埠編號或新的 IPv6 位址),或者移除對等點時,都「必須」叫用此回呼。

說明
參數
[in] aInstance
OpenThread 執行個體。
[out] aUdpPort
按照平台層傳回所選通訊埠編號的指標。

otPlatTrelHandlingDiscoveredPeerInfo

void otPlatTrelHandleDiscoveredPeerInfo(
  otInstance *aInstance,
  const otPlatTrelPeerInfo *aInfo
)

這是平台層的回呼函式,用於回報找到的 TREL 同類資訊。

說明
參數
[in] aInstance
OpenThread 執行個體。
[in] aInfo
指向 TREL 同類資訊的指標。

otPlatTrelHandlingReceived

void otPlatTrelHandleReceived(
  otInstance *aInstance,
  uint8_t *aBuffer,
  uint16_t aLength
)

這項功能是平台的回呼,可通知已接收的 TREL UDP 封包。

說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aBuffer
包含已接收 UDP 酬載的緩衝區。
[in] aLength
UDP 酬載長度 (位元組數)。

otPlatTrelRegisterService

void otPlatTrelRegisterService(
  otInstance *aInstance,
  uint16_t aPort,
  const uint8_t *aTxtData,
  uint8_t aTxtLength
)

這項函式會註冊要透過 DNS-SD [RFC6763] 宣傳的新服務。

服務名稱是「_trel._udp」。平台應使用自己的主機名稱,結合服務名稱和本機 DNS-SD 網域名稱時,會產生完整的服務執行個體名稱,例如「example-host._trel._udp.local」。

在 mDNS 中,服務執行個體的名稱會顯示在「local」中,而用於非 mDNS 本機 DNS-SD 服務的網域則會用於註冊服務。

後續呼叫此函式會更新先前的服務。用於更新 TXT 記錄資料和/或通訊埠號碼。

這個函式傳回後,aTxtData 緩衝區不會持續保留。平台層「不得」保留指標,如有需要,請改為複製內容。

說明
參數
[in] aInstance
OpenThread 執行個體。
[in] aPort
要納入廣告服務 SRV 記錄的通訊埠號碼。
[in] aTxtData
指向要納入廣告服務中的 TXT 記錄資料 (已編碼) 的指標。
[in] aTxtLength
aTxtData 的長度 (位元組數)。

otPlatTrelSend

void otPlatTrelSend(
  otInstance *aInstance,
  const uint8_t *aUdpPayload,
  uint16_t aUdpPayloadLen,
  const otSockAddr *aDestSockAddr
)

這個函式會要求將 TREL UDP 封包傳送至指定目的地。

說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aUdpPayload
指向 UDP 酬載的指標。
[in] aUdpPayloadLen
酬載長度 (位元組數)。
[in] aDestSockAddr
目的地通訊端位址。

資源

OpenThread API 參照主題來自原始碼,位於 GitHub。 如需更多資訊或參閱我們的說明文件,請參閱資源