O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

TREL - Plataforma

Este módulo inclui a abstração de plataforma para Thread Radio Encapsulation Link (TREL) usando DNS-SD e UDP/IPv6.

Resumo

Typedefs

otPlatTrelPeerInfo typedef
Essa estrutura representa uma informação de peer TREL descoberta usando a navegação DNS-SD no nome do serviço "_trel._udp".

Funções

otPlatTrelDisable ( otInstance *aInstance)
void
Esta função desabilita a camada da plataforma TREL.
otPlatTrelEnable ( otInstance *aInstance, uint16_t *aUdpPort)
void
Esta função inicializa e habilita a camada da plataforma TREL.
otPlatTrelHandleDiscoveredPeerInfo ( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
void
Esta é uma função de retorno de chamada da camada de plataforma para relatar uma informação de peer TREL descoberta.
otPlatTrelHandleReceived ( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
Esta função é um retorno de chamada da plataforma para notificar um pacote TREL UDP recebido.
otPlatTrelRegisterService ( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
void
Esta função registra um novo serviço a ser anunciado usando DNS-SD [RFC6763].
otPlatTrelSend ( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
Esta função solicita que um pacote TREL UDP seja enviado para um determinado destino.

Estruturas

otPlatTrelPeerInfo

Essa estrutura representa uma informação de peer TREL descoberta usando a navegação DNS-SD no nome do serviço "_trel._udp".

Typedefs

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

Essa estrutura representa uma informação de peer TREL descoberta usando a navegação DNS-SD no nome do serviço "_trel._udp".

Funções

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

Esta função desabilita a camada da plataforma TREL.

Após essa chamada, a camada de plataforma DEVE parar o DNS-SD navegar no nome do serviço "_trel._udp", parar de anunciar o serviço TREL DNS-SD (de otPlatTrelRegisterService() ) e DEVE fechar o soquete UDP usado para receber mensagens TREL.

[in] aInstance A instância OpenThread.

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

Esta função inicializa e habilita a camada da plataforma TREL.

Após esta chamada, a camada de plataforma DEVE realizar o seguinte:

1) A camada de plataforma TREL DEVE abrir um soquete UDP para ouvir e receber mensagens TREL de pares. O soquete está vinculado a um número de porta efêmero escolhido pela camada de plataforma. O número da porta DEVE ser retornado em aUdpPort . O soquete também está vinculado à(s) interface(s) de rede nas quais o TREL deve ser suportado. O soquete e a porta escolhida devem permanecer válidos enquanto o TREL estiver habilitado.

2) A camada de plataforma DEVE iniciar uma navegação DNS-SD contínua no nome do serviço "_trel._udp" dentro do domínio de navegação local para descobrir outros dispositivos que suportem TREL. A navegação contínua produzirá dois tipos diferentes de eventos: eventos de "adicionar" e eventos de "remoção". Quando a navegação é iniciada, ela deve produzir um evento "add" para cada peer TREL atualmente presente na rede. Sempre que um peer TREL fica offline, um evento "remove" deve ser produzido. No entanto, os eventos de "remoção" não são garantidos. Quando uma instância de serviço TREL é descoberta, uma nova consulta DNS-SD em andamento para um registro AAAA deve ser iniciada no nome do host indicado no registro SRV da instância descoberta. Se vários endereços IPv6 de host forem descobertos para um peer, um com maior escopo entre todos os endereços DEVE ser relatado (se houver vários endereços no mesmo escopo, um deve ser selecionado aleatoriamente).

A plataforma TREL DEVE sinalizar de volta as informações do peer descoberto usando o retorno de chamada otPlatTrelHandleDiscoveredPeerInfo() . Este retorno de chamada DEVE ser invocado quando um novo peer for descoberto, quando houver uma alteração em uma entrada existente (por exemplo, novo registro TXT ou novo número de porta ou novo endereço IPv6), ou quando o peer for removido.

Detalhes
Parâmetros
[in] aInstance
A instância OpenThread.
[out] aUdpPort
Um ponteiro para retornar o número da porta selecionada por camada de plataforma.

otPlatTrelHandleDiscoveredPeerInfo

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

Esta é uma função de retorno de chamada da camada de plataforma para relatar uma informação de peer TREL descoberta.

Detalhes
Parâmetros
[in] aInstance
A instância OpenThread.
[in] aInfo
Um ponteiro para as informações do par TREL.

otPlatTrelHandleRecebido

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

Esta função é um retorno de chamada da plataforma para notificar um pacote TREL UDP recebido.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância OpenThread.
[in] aBuffer
Um buffer contendo o payload UDP recebido.
[in] aLength
Comprimento da carga UDP (número de bytes).

otPlatTrelRegisterService

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

Esta função registra um novo serviço a ser anunciado usando DNS-SD [RFC6763].

O nome do serviço é "_trel._udp". A plataforma deve usar seu próprio nome de host, que, quando combinado com o nome do serviço e o nome de domínio DNS-SD local, produzirá o nome completo da instância do serviço, por exemplo, "example-host._trel._udp.local.".

O domínio sob o qual o nome da instância de serviço aparece será 'local' para mDNS e será qualquer domínio usado para registro de serviço no caso de um serviço DNS-SD local não mDNS.

Uma chamada subsequente para essa função atualiza o serviço anterior. É usado para atualizar os dados do registro TXT e/ou o número da porta.

O buffer aTxtData não é persistido após o retorno desta função. A camada de plataforma NÃO DEVE manter o ponteiro e, em vez disso, copiar o conteúdo, se necessário.

Detalhes
Parâmetros
[in] aInstance
A instância OpenThread.
[in] aPort
O número da porta a ser incluída no registro SRV do serviço anunciado.
[in] aTxtData
Um ponteiro para os dados do registro TXT (codificado) a serem incluídos no serviço anunciado.
[in] aTxtLength
O comprimento de aTxtData (número de bytes).

otPlatTrelSend

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

Esta função solicita que um pacote TREL UDP seja enviado para um determinado destino.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância OpenThread.
[in] aUdpPayload
Um ponteiro para carga útil UDP.
[in] aUdpPayloadLen
O comprimento da carga útil (número de bytes).
[in] aDestSockAddr
O endereço do soquete de destino.

Recursos

Os tópicos de referência da API OpenThread se originam do código-fonte, disponível no GitHub . Para obter mais informações ou contribuir com nossa documentação, consulte Recursos .