TREL - Plataforma
Este módulo incluye la abstracción de plataforma para Thread Radio encapsulation Link (TREL) con DNS-SD y UDP/IPv6.
Resumen
Typedefs |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
Representa una información de par de TREL que se descubrió mediante la navegación de DNS-SD en el nombre de servicio "_trel._udp". |
remotas |
|
---|---|
otPlatTrelDisable(otInstance *aInstance)
|
void
Inhabilita la capa de la plataforma TREL.
|
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
|
void
Inicializa y habilita la capa de la plataforma TREL.
|
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
|
void
Esta es una función de devolución de llamada de la capa de la plataforma para informar una información de pares de TREL descubierto.
|
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
|
void
Es una devolución de llamada de la plataforma para notificar sobre un paquete TREL UDP recibido.
|
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
|
void
Registra un nuevo servicio para anunciar con DNS-SD [RFC6763].
|
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
|
void
Solicita que se envíe un paquete UDP de TREL a un destino determinado.
|
Structs |
|
---|---|
otPlatTrelPeerInfo |
Representa una información de par de TREL que se descubrió mediante la navegación de DNS-SD en el nombre de servicio "_trel._udp". |
Typedefs
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
Representa una información de par de TREL que se descubrió mediante la navegación de DNS-SD en el nombre de servicio "_trel._udp".
remotas
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
Inhabilita la capa de la plataforma TREL.
Después de esta llamada, la capa de la plataforma DEBE detener la navegación de DNS-SD en el nombre de servicio "_trel._udp", dejar de anunciar el servicio DNS-SD de TREL (de otPlatTrelRegisterService()
) y DEBE cerrar el socket UDP utilizado para recibir los mensajes TREL.
[in] aInstance La instancia de OpenThread.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
Inicializa y habilita la capa de la plataforma TREL.
Después de esta llamada, la capa de la plataforma DEBE realizar lo siguiente:
1) La capa de la plataforma TREL DEBE abrir un socket UDP para escuchar y recibir mensajes TREL de pares. El socket está vinculado a un número de puerto efímero que elige la capa de la plataforma. El número de puerto se DEBE devolver en aUdpPort
. El socket también está vinculado a las interfaces de red en las que se admitirá TREL. El socket y el puerto elegido deben seguir siendo válidos mientras TREL está habilitado.
2) La capa de la plataforma DEBE iniciar una navegación de DNS-SD en curso en el nombre del servicio "_trel._udp" dentro del dominio de navegación local para descubrir otros dispositivos compatibles con TREL. La navegación continua producirá dos tipos de eventos diferentes: eventos "agregar" y eventos "quitar". Cuando se inicia la navegación, debe producir un evento "add" para cada par TREL actualmente presente en la red. Cada vez que un par de TREL se desconecta, se debe producir un evento "remove". Sin embargo, los eventos de eliminación no están garantizados. Cuando se descubre una instancia de servicio de TREL, se debe iniciar una nueva consulta de DNS-SD en curso para un registro AAAA en el nombre de host indicado en el registro SRV de la instancia descubierta. Si se descubren varias direcciones IPv6 de host para un par, se DEBE informar una con el mayor alcance entre todas las direcciones (si hay varias direcciones en el mismo alcance, se debe seleccionar una al azar).
La plataforma TREL DEBE indicar la información de pares descubierta mediante la devolución de llamada otPlatTrelHandleDiscoveredPeerInfo()
. Esta devolución de llamada DEBE invocarse cuando se detecta un par nuevo, cuando se produce un cambio en una entrada existente (p.ej., un registro TXT nuevo, un número de puerto nuevo o una dirección IPv6 nueva) o cuando se quita el par.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
Esta es una función de devolución de llamada de la capa de la plataforma para informar una información de pares de TREL descubierto.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
Es una devolución de llamada de la plataforma para notificar sobre un paquete TREL UDP recibido.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
Registra un nuevo servicio para anunciar con DNS-SD [RFC6763].
El nombre del servicio es "_trel._udp". La plataforma debe usar su propio nombre de host, el cual, combinado con el nombre del servicio y el nombre de dominio DNS-SD local, producirá el nombre completo de la instancia de servicio, por ejemplo, "example-host._trel._udp.local.".
El dominio bajo el que aparece el nombre de la instancia de servicio será "local" para mDNS y será el dominio que se use para el registro del servicio en el caso de un servicio DNS-SD local que no sea mDNS.
Una llamada posterior a esta función actualiza el servicio anterior. Se usa para actualizar los datos del registro TXT o el número de puerto.
El búfer aTxtData
no se conserva después de la devolución de esta función. La capa de la plataforma NO DEBE mantener el puntero y, en su lugar, copiar el contenido si es necesario.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
Solicita que se envíe un paquete UDP de TREL a un destino determinado.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
Recursos
Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.