TREL – Platforma

Ten moduł zawiera abstrakcję platformy dla linku TREL (Thread Radio Encapsulation Link) za pomocą DNS-SD i UDP/IPv6.

Podsumowanie

Definicje typów

otPlatTrelPeerInfo typedef
Reprezentuje informacje o perze sieci TREL wykryte podczas przeglądania DNS-SD o nazwie usługi „_trel._udp”.

Funkcje

otPlatTrelDisable(otInstance *aInstance)
void
Wyłącza warstwę platformy TREL.
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
void
Inicjuje i włącza warstwę platformy TREL.
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
void
Jest to funkcja wywołania zwrotnego z warstwy platformy, która informuje o wykrytych informacjach o sieci równorzędnym TREL.
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
Jest wywołaniem zwrotnym z platformy służącym do powiadomienia o odebranego pakiecie UDP TREL.
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
void
Rejestruje nową usługę do rozgłaszania za pomocą DNS-SD [RFC6763].
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
Żąda pakietu UDP TREL do określonego miejsca docelowego.

Konstrukcja

otPlatTrelPeerInfo

Reprezentuje informacje o perze sieci TREL wykryte podczas przeglądania DNS-SD o nazwie usługi „_trel._udp”.

Definicje typów

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

Reprezentuje informacje o perze sieci TREL wykryte podczas przeglądania DNS-SD o nazwie usługi „_trel._udp”.

Funkcje

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

Wyłącza warstwę platformy TREL.

Po wywołaniu warstwa platformy MUSI zatrzymać przeglądanie DNS-SD dla usługi o nazwie „_trel._udp”, przestać reklamować usługę TREL DNS-SD (z otPlatTrelRegisterService()) i MUSI zamknąć gniazdo UDP służące do odbierania komunikatów TREL.

[in] Instancja The OpenThread.

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

Inicjuje i włącza warstwę platformy TREL.

Po wywołaniu warstwa platformy MUSI wykonać:

1) Warstwa platformy TREL MUSI otworzyć gniazdo UDP, aby nasłuchiwać wiadomości TREL od peerów i je odbierać. Gniazdo jest powiązane z numerem portu efemerycznym wybranym przez warstwę platformy. Numer portu MUSI zostać zwrócony w aUdpPort. Gniazdo jest też powiązane z interfejsami sieci, w których ma być obsługiwane TREL. Gdy włączony jest protokół TREL, gniazdo i wybrany port powinny pozostać prawidłowe.

2) Warstwa platformy MUSI zainicjować trwające przeglądanie DNS-SD usługi o nazwie „_trel._udp” w domenie przeglądania lokalnego, aby znaleźć inne urządzenia obsługujące TREL. Bieżące przeglądanie powoduje generowanie 2 różnych typów zdarzeń: „dodaj” i „usuń”. Po rozpoczęciu przeglądania powinno się utworzyć zdarzenie „add” dla każdego połączenia równorzędnego TREL znajdującego się obecnie w sieci. Za każdym razem, gdy węzeł TREL przejdzie w tryb offline, powinno zostać utworzone zdarzenie „remove”. ale nie jest gwarantowane. Po wykryciu instancji usługi TREL powinno zostać uruchomione nowe trwające zapytanie DNS-SD dotyczące rekordu AAAA na nazwie hosta wskazywanej w rekordzie SRV wykrytej instancji. W przypadku wykrycia wielu adresów IPv6 hosta dla peera MUSISZ zgłosić jeden adres o najwyższym zakresie spośród wszystkich adresów (jeśli istnieje wiele adresów w tym samym zakresie, należy wybrać jeden z nich losowo).

Platforma TREL MUSI przesłać informację o wykrytych informacjach o grupie porównawczej za pomocą wywołania zwrotnego otPlatTrelHandleDiscoveredPeerInfo(). To wywołanie zwrotne MUSI zostać wywołane po wykryciu nowego połączenia równorzędnego, w przypadku zmiany istniejącego wpisu (np. nowego rekordu TXT, nowego numeru portu lub nowego adresu IPv6) lub usunięcia połączenia równorzędnego.

Szczegóły
Parametry
[in] aInstance
Instancja OpenThread.
[out] aUdpPort
Wskaźnik zwracający wybrany numer portu według warstwy platformy.

otPlatTrelHandleDiscoveredPeerInfo

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

Jest to funkcja wywołania zwrotnego z warstwy platformy, która informuje o wykrytych informacjach o sieci równorzędnym TREL.

Szczegóły
Parametry
[in] aInstance
Instancja OpenThread.
[in] aInfo
Wskaźnik do informacji o peeru TREL.

otPlatTrelHandleReceived

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

Jest wywołaniem zwrotnym z platformy służącym do powiadomienia o odebranego pakiecie UDP TREL.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aBuffer
Bufor zawierający odebrany ładunek UDP.
[in] aLength
Długość ładunku UDP (liczba bajtów).

otPlatTrelRegisterService

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

Rejestruje nową usługę do rozgłaszania za pomocą DNS-SD [RFC6763].

Nazwa usługi to „_trel._udp”. Platforma powinna używać własnej nazwy hosta, która w połączeniu z nazwą usługi i lokalną nazwą domeny DNS-SD tworzy pełną nazwę instancji usługi, na przykład „example-host._trel._udp.local”.

Domena, pod którą pojawia się nazwa instancji usługi, ma w przypadku mDNS nazwę „local” i w przypadku lokalnej usługi DNS-SD spoza mDNS będzie to domena używana do rejestracji usługi.

Kolejne wywołanie tej funkcji aktualizuje poprzednią. Służy do aktualizowania danych rekordu TXT lub numeru portu.

Bufor aTxtData nie jest utrzymywany po zwróceniu go z tej funkcji. Warstwa platformy NIE MOŻE przechowywać wskaźnika. W razie potrzeby kopiować zawartość.

Szczegóły
Parametry
[in] aInstance
Instancja OpenThread.
[in] aPort
Numer portu, który ma być uwzględniony w rekordzie SRV reklamowanej usługi.
[in] aTxtData
Wskaźnik do danych rekordu TXT (zakodowanego), które mają zostać uwzględnione w rozgłaszanej usłudze.
[in] aTxtLength
Długość aTxtData (liczba bajtów).

otPlatTrelSend

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

Żąda pakietu UDP TREL do określonego miejsca docelowego.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aUdpPayload
Wskaźnik ładunku UDP.
[in] aUdpPayloadLen
Długość ładunku (liczba bajtów).
[in] aDestSockAddr
Adres docelowego gniazda.

Zasoby

Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.