TREL - Piattaforma
Questo modulo include l'astrazione della piattaforma per il TREL (Thread Radio Encapsulation Link) utilizzando DNS-SD e UDP/IPv6.
Riepilogo
Typedef |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
Rappresenta le informazioni peer TREL rilevate utilizzando la navigazione DNS-SD per il nome del servizio "_trel._udp". |
Funzioni |
|
---|---|
otPlatTrelDisable(otInstance *aInstance)
|
void
Disattiva il livello della piattaforma TREL.
|
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
|
void
Inizializza e abilita il livello della piattaforma TREL.
|
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
|
void
Questa è una funzione di callback del livello piattaforma per segnalare informazioni sulle app peer TREL rilevate.
|
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
|
void
È un callback dalla piattaforma per notificare la ricezione di un pacchetto TREL UDP.
|
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
|
void
Registra un nuovo servizio da pubblicizzare utilizzando DNS-SD [RFC6763].
|
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
|
void
Richiedi l'invio di un pacchetto TREL UDP a una determinata destinazione.
|
Strutture |
|
---|---|
otPlatTrelPeerInfo |
Rappresenta le informazioni peer TREL rilevate utilizzando la navigazione DNS-SD per il nome del servizio "_trel._udp". |
Typedef
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
Rappresenta le informazioni peer TREL rilevate utilizzando la navigazione DNS-SD per il nome del servizio "_trel._udp".
Funzioni
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
Disattiva il livello della piattaforma TREL.
Dopo questa chiamata, il livello della piattaforma DEVE interrompere la consultazione di DNS-SD sul nome di servizio "_trel._udp", interrompere la pubblicità del servizio DNS-SD TREL (da otPlatTrelRegisterService()
) e DEVE chiudere il socket UDP utilizzato per ricevere i messaggi TREL.
[in] aInstance L'istanza OpenThread.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
Inizializza e abilita il livello della piattaforma TREL.
Durante la chiamata, il livello della piattaforma DEVE eseguire quanto segue:
1) Il livello della piattaforma TREL DEVE aprire un socket UDP per ascoltare e ricevere i messaggi TREL dai peer. Il socket è associato a un numero di porta temporaneo scelto dal livello della piattaforma. Il numero di porta DEVE essere restituito in aUdpPort
. Il socket è inoltre associato alle interfacce di rete su cui deve essere supportato il TREL. Il socket e la porta scelta devono rimanere validi mentre TREL è abilitato.
2) Il livello della piattaforma DEVE avviare un'esplorazione DNS-SD continua sul nome del servizio "_trel._udp" all'interno del dominio di navigazione locale per trovare altri dispositivi che supportano TREL. La consultazione continua produrrà due diversi tipi di eventi: "aggiungere" eventi e "rimuovere" eventi. Quando viene avviata, la navigazione dovrebbe produrre un evento "add" per ogni peer TREL attualmente presente sulla rete. Ogni volta che un peer TREL passa alla modalità offline, deve essere generato un evento di "rimozione". ma gli eventi "remove" non sono garantiti. Quando viene rilevata un'istanza di servizio TREL, deve essere avviata una nuova query DNS-SD in corso per un record AAAA sul nome host indicato nel record SRV dell'istanza rilevata. Se per un peer vengono rilevati più indirizzi IPv6 host per un peer, DEVE essere segnalato uno con l'ambito più elevato tra tutti gli indirizzi (se ci sono più indirizzi nello stesso ambito, uno deve essere selezionato in modo casuale).
La piattaforma TREL DEVE segnalare le informazioni relative alle app peer rilevate utilizzando il callback otPlatTrelHandleDiscoveredPeerInfo()
. Questo callback DEVE essere attivato quando viene rilevato un nuovo peer, quando si verifica una modifica in una voce esistente (ad es. un nuovo record TXT, un nuovo numero di porta o un nuovo indirizzo IPv6) o quando il peer viene rimosso.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
Questa è una funzione di callback del livello piattaforma per segnalare informazioni sulle app peer TREL rilevate.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
È un callback dalla piattaforma per notificare la ricezione di un pacchetto TREL UDP.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
Registra un nuovo servizio da pubblicizzare utilizzando DNS-SD [RFC6763].
Il nome del servizio è "_trel._udp". La piattaforma dovrebbe utilizzare il proprio nome host che, se combinato con il nome del servizio e il nome di dominio DNS-SD locale, produrrà il nome completo dell'istanza del servizio, ad esempio "example-host._trel._udp.local.".
Il dominio sotto il quale compare il nome dell'istanza di servizio sarà "locale" per mDNS e sarà qualsiasi dominio utilizzato per la registrazione del servizio nel caso di un servizio DNS-SD locale non mDNS.
Una chiamata successiva a questa funzione aggiorna il servizio precedente. Viene utilizzato per aggiornare i dati del record TXT e/o il numero di porta.
Il buffer aTxtData
non viene mantenuto dopo il ritorno da questa funzione. Il livello della piattaforma NON DEVE mantenere il puntatore e copiare i contenuti, se necessario.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
Richiedi l'invio di un pacchetto TREL UDP a una determinata destinazione.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
Risorse
Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.