TREL - プラットフォーム

このモジュールには、DNS-SD と UDP/IPv6 を使用した Thread Radio Encapsulation Link(TREL)のためのプラットフォーム抽象化が含まれています。

概要

Typedef

otPlatTrelPeerInfo typedef
サービス名「_trel._udp」の DNS-SD ブラウズを使用して検出された 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

サービス名「_trel._udp」の DNS-SD ブラウズを使用して検出された TREL ピア情報を表します。

Typedef

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

サービス名「_trel._udp」の DNS-SD ブラウズを使用して検出された TREL ピア情報を表します。

関数

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

TREL プラットフォーム レイヤを無効にします。

この呼び出しの後、プラットフォーム レイヤは、サービス名「_trel._udp」での DNS-SD ブラウジングを停止しなければならず、(otPlatTrelRegisterService() から)TREL DNS-SD サービスのアドバタイジングを停止しなければならず、TREL メッセージの受信に使用される UDP ソケットを閉じなければなりません。

[in] aInstance OpenThread インスタンス。

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

TREL プラットフォーム レイヤを初期化して有効にします。

この呼び出し時に、プラットフォーム レイヤは次のことを実行しなければなりません。

1)TREL プラットフォーム レイヤは、ピアからの TREL メッセージをリッスンして受信するために UDP ソケットをオープンしなければなりません。ソケットは、プラットフォーム レイヤが選択したエフェメラル ポート番号にバインドされます。ポート番号は aUdpPort で返さなければなりません。このソケットは、TREL をサポートするネットワーク インターフェースにもバインドされます。ソケットと選択されたポートは、TREL が有効になっている間は有効なままである必要があります。

2)プラットフォーム レイヤは、TREL をサポートする他のデバイスを検出するために、ローカル ブラウジング ドメイン内でサービス名「_trel._udp」で進行中の DNS-SD ブラウジングを開始しなければなりません。進行中の閲覧では、「追加」イベントと「削除」イベントという 2 種類のイベントが生成されます。ブラウズが開始されると、ネットワーク上に現在存在するすべての TREL ピアについて「add」イベントが生成されます。TREL ピアがオフラインになるたびに、「remove」イベントを生成する必要があります。ただし、「remove」イベントは保証されません。TREL サービス インスタンスが検出されると、AAAA レコードに対する新しい DNS-SD クエリが、検出されたインスタンスの SRV レコードで示されたホスト名で開始されます。ピアに複数のホスト IPv6 アドレスが見つかった場合、すべてのアドレスの中で最も高いスコープを持つアドレスを報告しなければなりません(同じスコープに複数のアドレスがある場合は、ランダムに 1 つ選択する必要があります)。

TREL プラットフォームは、otPlatTrelHandleDiscoveredPeerInfo() コールバックを使用して、検出されたピア情報をシグナルで返さなければなりません。このコールバックは、新しいピアが検出されたとき、既存のエントリに変更があったとき(新しい TXT レコード、新しいポート番号、新しい IPv6 アドレスなど)、またはピアが削除されたときに呼び出されなければなりません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンス。
[out] aUdpPort
プラットフォーム レイヤで選択されたポート番号を返すポインタ。

otPlatTrelHandleDiscoveredPeerInfo

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

これは、検出された TREL ピア情報を報告するためのプラットフォーム レイヤからのコールバック関数です。

詳細
パラメータ
[in] aInstance
OpenThread インスタンス。
[in] aInfo
TREL ピア情報へのポインタ。

otPlatTrelHandleReceived

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 で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。