Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

TREL - Plataforma

En este módulo, se incluye la abstracción de la plataforma para Thread Radio Encapsulation Link (TREL) mediante DNS-SD y UDP/IPv6.

Resumen

Typedefs

otPlatTrelPeerInfo typedef
Esta estructura representa una información de intercambio de tráfico TREL descubierto mediante la exploración de DNS-SD en el nombre del servicio "_trel._udp".

Functions

otPlatTrelDisable(otInstance *aInstance)
void
Esta función inhabilita la capa de la plataforma TREL.
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
void
Esta función 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 la información de un par de TREL descubierto.
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
Esta función 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
Esta función registra un servicio nuevo que se anunciará mediante DNS-SD [RFC6763].
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
Esta función solicita que se envíe un paquete TREL UDP a un destino determinado.

Structs

OtPlatTrelPeerInfo

Esta estructura representa una información de intercambio de tráfico TREL descubierto mediante la exploración de DNS-SD en el nombre del servicio "_trel._udp".

Typedefs

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

Esta estructura representa una información de intercambio de tráfico TREL descubierto mediante la exploración de DNS-SD en el nombre del servicio "_trel._udp".

Functions

OtPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

Esta función inhabilita la capa de la plataforma TREL.

Después de esta llamada, la capa de la plataforma DEBE detener la exploración de DNS-SD en el nombre del servicio (dejar de anunciar el servicio de TREL DNS-SD) y otPlatTrelRegisterService()DEBE cerrar el socket UDP que se usa para recibir los mensajes de TREL.

[in] aInstance La instancia de OpenThread

OtPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

Esta función 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 de TREL de los 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 mostrar en aUdpPort. El socket también está vinculado a interfaces de red en las que se admitirá TREL. El socket y el puerto elegido deben permanecer válidos mientras TREL está habilitado.

2) La capa de la plataforma DEBE iniciar una navegación DNS-SD continua en el nombre del servicio (para descubrir otros dispositivos que admiten TREL) dentro del nombre del servicio. La exploración en curso producirá dos tipos diferentes de eventos: "add" events y "remove" Cuando se inicia la navegación, se debería producir un evento "&addt" para cada par de TREL que esté actualmente en la red. Cuando un par TREL se desconecta, se debe producir un evento "Quitar". Sin embargo, no se pueden quitar los eventos. Cuando se detecta una instancia de servicio de TREL, se debe iniciar una nueva consulta en curso de DNS-SD para un registro AAAA en el nombre de host que se indica en el registro SRV de la instancia descubierta. Si se descubren varias direcciones IPv6 de host para un par, se debe informar uno con el alcance más alto 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 par descubierta mediante la devolución de llamada otPlatTrelHandleDiscoveredPeerInfo(). Esta devolución de llamada DEBE invocarse cuando se detecta un nuevo par, cuando hay un cambio en una entrada existente (p.ej., un nuevo registro TXT o un nuevo número de puerto o dirección IPv6 nueva), o cuando se quita el par.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread
[out] aUdpPort
Un puntero para mostrar el número de puerto seleccionado por capa de plataforma.

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 la información de un par de TREL descubierto.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread
[in] aInfo
Un puntero para la información del par TREL.

OtPlatTrelHandleReceived

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

Esta función es una devolución de llamada de la plataforma para notificar sobre un paquete TREL UDP recibido.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread
[in] aBuffer
Es un búfer que contiene la carga útil de UDP recibida.
[in] aLength
Longitud de la carga útil de UDP (cantidad de bytes).

otPlatTrelRegisterService

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

Esta función registra un servicio nuevo que se anunciará mediante DNS-SD [RFC6763].

El nombre del servicio es &tt;_trel._udp". La plataforma debe usar su propio nombre de host, que, cuando se combine con el nombre del servicio y el nombre de dominio local de DNS-SD, generará el nombre completo de la instancia del servicio, por ejemplo, "example-host._trel._udp.local."

El dominio en el que aparece el nombre de la instancia de servicio será mDNS (local) para mDNS y será el dominio que se use para el registro del servicio en el caso de un servicio de DNS-SD local que no sea de DNS.

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 persiste después de que se muestra esta función. La capa de la plataforma NO DEBE mantener el puntero y, en su lugar, copia el contenido si es necesario.

Detalles
Parámetros
[in] aInstance
La instancia de OpenThread
[in] aPort
El número de puerto que se incluirá en el registro SRV del servicio anunciado.
[in] aTxtData
Un puntero para los datos de registro TXT (codificados) que se incluirán en el servicio anunciado.
[in] aTxtLength
La longitud de aTxtData (cantidad de bytes).

OtPlatTrelSend

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

Esta función solicita que se envíe un paquete TREL UDP a un destino determinado.

Detalles
Parámetros
[in] aInstance
Estructura de la instancia de OpenThread
[in] aUdpPayload
Un puntero para la carga útil de UDP.
[in] aUdpPayloadLen
Longitud de la carga útil (cantidad de bytes)
[in] aDestSockAddr
La dirección del socket de destino.

Recursos

Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.