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
|
typedefstruct otPlatTrelPeerInfo
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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.