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 da plataforma para o Thread Encapsulation Link (TREL) usando DNS-SD e UDP/IPv6.

Resumo

Typedefs

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

Functions

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

Estruturas

otPlatTrelPeerInfo (em inglês)

Essa estrutura representa uma informação de peering do TREL descoberto 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 peering do TREL descoberto usando a navegação DNS-SD no nome do serviço "_trel._udp".

Functions

OtPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

Essa função desativa a camada da plataforma TREL.

Após essa chamada, a camada da plataforma PRECISA interromper a busca DNS-SD no nome do serviço "_trel._udp" e interromper a publicidade do serviço TREL DNS-SD (de otPlatTrelRegisterService()) e PRECISA fechar o soquete UDP usado para receber mensagens TREL.

[in] aInstance da instância do OpenThread

OtPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

Essa função inicializa e ativa a camada da plataforma TREL.

Nessa chamada, a camada da plataforma PRECISA realizar as seguintes ações:

1) A camada da plataforma TREL PRECISA abrir um soquete UDP para fazer isso. O soquete está vinculado a uma porta temporária escolhida pela camada da plataforma. O número da porta PRECISA ser retornado em aUdpPort. O soquete também está vinculado às interfaces de rede em que o TREL será compatível. O soquete e a porta escolhida precisam permanecer válidos enquanto o TREL estiver ativado.

2) A camada de plataforma PRECISA iniciar uma navegação DNS-SD em andamento no nome do serviço "_trel._udp" no domínio de navegação local para descobrir outros dispositivos compatíveis com TREL. A navegação em andamento produzirá dois tipos diferentes de eventos: "add" e "remove". Quando a navegação é iniciada, ela deve produzir um evento "add" para cada peering TREL presente na rede. Sempre que um ponto TREL ficar off-line, um evento "remove" deverá ser produzido. No entanto, não é garantido que os eventos "quoquo;remove" Quando uma instância de serviço TREL é descoberta, uma nova consulta DNS-SD em andamento para um registro AAAA precisa 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 par, PRECISAM ser um que tenha o escopo mais alto entre todos os endereços (se houver vários endereços no mesmo escopo, será preciso selecionar um aleatoriamente).

A plataforma TREL PRECISA sinalizar as informações de peering descobertas usando o callback otPlatTrelHandleDiscoveredPeerInfo(). Esse callback PRECISA ser invocado quando um novo peering é descoberto, quando há uma mudança em uma entrada existente (por exemplo, um novo registro TXT, um novo número de porta ou um novo endereço IPv6) ou quando o peering é removido.

Detalhes
Parâmetros
[in] aInstance
A instância do 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 callback da camada da plataforma para informar sobre uma descoberta de informações de TREL semelhante.

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

otPlatTrelHandleReceived

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

Essa função é um callback da plataforma para notificar sobre um pacote TREL UDP recebido.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread
[in] aBuffer
Um buffer que contém o payload UDP recebido.
[in] aLength
Tamanho do payload UDP (número de bytes).

OtPlatTrelRegisterService

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

Essa função registra um novo serviço que será anunciado usando o DNS-SD [RFC6763].

O nome do serviço é "_trel._udp". A plataforma deve usar o 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 de serviço, por exemplo, "example-host._trel._udp.local.".

O domínio em que o nome da instância de serviço aparece é "m" e "qualquer um" para o mDNS e será qualquer domínio usado para o registro de serviço no caso de um serviço local de DNS-SD que não seja mDNS.

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

O buffer aTxtData não é mantido após o retorno dessa função. A camada da plataforma NÃO pode manter o ponteiro e copiar o conteúdo, se necessário.

Detalhes
Parâmetros
[in] aInstance
A instância do 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) para 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
)

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

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

Recursos

Os tópicos de referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para saber mais ou contribuir com nossa documentação, consulte Recursos.