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
|
typedefstruct 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(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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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.