TREL – Plate-forme

Ce module inclut l'abstraction de plate-forme TREL (Thread Radio Encapsulation Link) utilisant DNS-SD et UDP/IPv6.

Résumé

Typedefs

otPlatTrelPeerInfo typedef
Représente des informations de pairs TREL découvertes à l'aide de la navigation DNS-SD sur le nom de service "_trel._udp".

distantes

otPlatTrelDisable(otInstance *aInstance)
void
Désactive la couche de plate-forme TREL.
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
void
Initialise et active la couche de plate-forme TREL.
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
void
Il s'agit d'une fonction de rappel à partir de la couche de la plate-forme pour signaler la découverte d'informations sur un pair TREL.
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
void
Rappel de la plate-forme pour avertir la réception d'un paquet TREL UDP.
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
void
Enregistre un nouveau service à annoncer à l'aide de DNS-SD [RFC6763].
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
void
Demande l'envoi d'un paquet UDP TREL à une destination donnée.

Structs

otPlatTrelPeerInfo

Représente des informations de pairs TREL découvertes à l'aide de la navigation DNS-SD sur le nom de service "_trel._udp".

Typedefs

otPlatTrelPeerInfo

struct otPlatTrelPeerInfo otPlatTrelPeerInfo

Représente des informations de pairs TREL découvertes à l'aide de la navigation DNS-SD sur le nom de service "_trel._udp".

distantes

otPlatTrelDisable

void otPlatTrelDisable(
  otInstance *aInstance
)

Désactive la couche de plate-forme TREL.

Après cet appel, la couche de plate-forme DOIT arrêter la navigation DNS-SD sur le nom de service "_trel._udp", cesser de promouvoir le service TREL DNS-SD (à partir de otPlatTrelRegisterService()) et DOIT fermer le socket UDP utilisé pour recevoir des messages TREL.

[in] aInstance : instance OpenThread.

otPlatTrelEnable

void otPlatTrelEnable(
  otInstance *aInstance,
  uint16_t *aUdpPort
)

Initialise et active la couche de plate-forme TREL.

Lors de cet appel, la couche de plate-forme DOIT effectuer les opérations suivantes:

1) La couche de plate-forme TREL DOIT ouvrir un socket UDP pour écouter et recevoir des messages TREL des pairs. Le socket est lié à un numéro de port éphémère choisi par la couche de la plate-forme. Le numéro de port DOIT être renvoyé dans aUdpPort. Le socket est également lié aux interfaces réseau sur lesquelles la fonction TREL doit être prise en charge. Le socket et le port choisi doivent rester valides tant que la fonction TREL est activée.

2) La couche de plate-forme DOIT lancer une navigation DNS-SD en cours sur le nom de service "_trel._udp" dans le domaine de navigation local afin de détecter d'autres appareils compatibles avec TREL. La navigation en cours produit deux types d'événements différents : les événements "ajouter" et "supprimer". Lorsque la navigation est lancée, un événement "add" est généré pour chaque pair TREL actuellement présent sur le réseau. Chaque fois qu'un pair TREL est déconnecté, un événement "remove" doit être généré. Toutefois, les événements "remove" ne sont pas garantis. Lorsqu'une instance de service TREL est découverte, une nouvelle requête DNS-SD en cours pour un enregistrement AAAA doit être lancée sur le nom d'hôte indiqué dans l'enregistrement SRV de l'instance découverte. Si plusieurs adresses IPv6 hôtes sont découvertes pour un pair, une adresse dont le champ d'application est le plus élevé DOIT être signalée (s'il existe plusieurs adresses au même champ d'application, une adresse doit être sélectionnée de manière aléatoire).

La plate-forme TREL DOIT renvoyer les informations sur les pairs découvertes à l'aide du rappel otPlatTrelHandleDiscoveredPeerInfo(). Ce rappel DOIT être invoqué lorsqu'un nouveau pair est détecté, en cas de modification d'une entrée existante (par exemple, un nouvel enregistrement TXT, un nouveau numéro de port ou une nouvelle adresse IPv6) ou en cas de suppression du pair.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[out] aUdpPort
Pointeur permettant de renvoyer le numéro de port sélectionné par couche de plate-forme.

otPlatTrelHandleDiscoveredPeerInfo

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

Il s'agit d'une fonction de rappel à partir de la couche de la plate-forme pour signaler la découverte d'informations sur un pair TREL.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[in] aInfo
Pointeur vers les informations des pairs TREL.

otPlatTrelHandleReceived

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

Rappel de la plate-forme pour avertir la réception d'un paquet TREL UDP.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aBuffer
Tampon contenant la charge utile UDP reçue.
[in] aLength
Longueur de la charge utile UDP (nombre d’octets).

otPlatTrelRegisterService

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

Enregistre un nouveau service à annoncer à l'aide de DNS-SD [RFC6763].

Le nom du service est "_trel._udp". La plate-forme doit utiliser son propre nom d'hôte. Lorsqu'il est associé au nom du service et au nom de domaine DNS-SD local, vous obtenez le nom complet de l'instance de service, par exemple "example-host._trel._udp.local.".

Le domaine sous lequel le nom de l'instance de service apparaît sera "local" pour mDNS, et sera le domaine utilisé pour l'enregistrement du service dans le cas d'un service DNS-SD local autre que mDNS.

Un appel ultérieur à cette fonction met à jour le service précédent. Il est utilisé pour mettre à jour les données de l'enregistrement TXT et/ou le numéro de port.

Le tampon aTxtData n'est pas conservé après le retour de cette fonction. La couche de plate-forme NE DOIT PAS conserver le pointeur, mais copier le contenu si nécessaire.

Détails
Paramètres
[in] aInstance
L'instance OpenThread.
[in] aPort
Numéro de port à inclure dans l'enregistrement SRV du service annoncé.
[in] aTxtData
Pointeur vers les données d'enregistrement TXT (encodées) à inclure dans le service annoncé.
[in] aTxtLength
Longueur de aTxtData (nombre d'octets).

otPlatTrelSend

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

Demande l'envoi d'un paquet UDP TREL à une destination donnée.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aUdpPayload
Un pointeur vers la charge utile UDP.
[in] aUdpPayloadLen
Longueur de la charge utile (nombre d'octets).
[in] aDestSockAddr
Adresse du socket de destination.

Ressources

Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez la section Ressources.