IPv6

Ce module inclut des fonctions de contrôle de la communication IPv6.

Résumé

Énumérations

anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
Numéros de protocole Internet.
anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
Origines des adresses IPv6.
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
États ECN, représentés comme dans l'en-tête IP.

Typedefs

otBorderRoutingCounters typedef
Représente les compteurs de paquets transférés via le routage frontière.
otIp6Address typedef
struct otIp6Address
Représente une adresse IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
Le pointeur est appelé lorsqu'une adresse IPv6 interne est ajoutée ou supprimée.
otIp6AddressComponents typedef
Représente les composants d'une adresse IPv6.
otIp6AddressInfo typedef
Représente les informations d'adresse IPv6.
otIp6InterfaceIdentifier typedef
Représente l'identifiant d'interface d'une adresse IPv6.
otIp6NetworkPrefix typedef
Représente le préfixe réseau d'une adresse IPv6 (64 bits les plus significatifs de l'adresse).
otIp6Prefix typedef
struct otIp6Prefix
Représente un préfixe IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
Le pointeur est appelé lors de la réception d'un datagramme IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
Le pointeur est appelé avec les résultats otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
Le pointeur permet à l'utilisateur de filtrer les préfixes et d'empêcher l'ajout d'une adresse SLAAC basée sur un préfixe.
otMessageInfo typedef
struct otMessageInfo
Représente les adresses de socket IPv6 locales et appairées.
otNetifAddress typedef
Représente une adresse d'unicast d'interface réseau IPv6.
otNetifMulticastAddress typedef
Représente une adresse de multidiffusion d'interface réseau IPv6.
otPacketsAndBytes typedef
Représente les compteurs pour les paquets et les octets.
otSockAddr typedef
struct otSockAddr
Représente une adresse de socket IPv6.

Variables

OT_TOOL_PACKED_END

distantes

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Ajoute une adresse d'interface réseau à l'interface Thread.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Ajoute un port à la liste des ports non sécurisés autorisés.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Convertit une chaîne d'adresse IPv6 lisible en une représentation binaire.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Convertit une adresse IPv6 donnée en une chaîne lisible.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Vérifiez si deux préfixes IPv6 sont identiques.
otIp6GetBorderRoutingCounters(otInstance *aInstance)
Récupère les compteurs de routage de bordure.
otIp6GetMulticastAddresses(otInstance *aInstance)
Récupère la liste des adresses de multidiffusion IPv6 abonnées à l'interface Thread.
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
Récupère un préfixe avec aLength à partir de aAddress.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Récupère la liste des adresses IPv6 attribuées à l'interface Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Renvoie un pointeur vers la liste des ports non sécurisés.
otIp6HasUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
bool
Indique si une adresse IPv6 monodiffusion est attribuée à l'interface Thread.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Vérifiez si deux adresses IPv6 sont identiques.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Indique si une adresse IPv6 donnée est une adresse non spécifiée.
otIp6IsEnabled(otInstance *aInstance)
bool
Indique si l'interface IPv6 est opérationnelle.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Vérifie si le mode promiscuité multicast est activé sur l'interface Thread.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Indique si le trafic de contrôle Thread est filtré ou non lors de la distribution de datagrammes IPv6 via le rappel spécifié dans otIp6SetReceiveCallback().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Indique si le module SLAAC est activé ou non.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Allouer un nouveau tampon de message pour l'envoi d'un message IPv6.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Allouez un nouveau tampon de message et écrivez le datagramme IPv6 dans ce tampon pour envoyer un message IPv6.
otIp6PrefixFromString(const char *aString, otIp6Prefix *aPrefix)
Convertit une chaîne de préfixe IPv6 lisible en une représentation binaire.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Renvoie la longueur de correspondance du préfixe (en bits) pour deux adresses IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Convertit un préfixe IPv6 donné en une chaîne lisible.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Convertit un numéro de protocole IP donné en une chaîne lisible.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Enregistre les écouteurs de multidiffusion sur le routeur backbone principal.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Supprime tous les ports de la liste des ports non sécurisés autorisés.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Supprime une adresse d'interface réseau de l'interface Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Supprime un port de la liste des ports non sécurisés autorisés.
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
Réinitialise les compteurs de routage de bordure.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Sélectionne l'adresse source OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Envoie un datagramme IPv6 via l'interface Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Enregistre un rappel pour avertir les modifications apportées aux adresses IPv6 internes.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Active ou désactive l'interface IPv6.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Définit l'IID local du maillage (à des fins de test).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Active ou désactive le mode promiscuité multicast sur l'interface Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Enregistre un rappel pour fournir les datagrammes IPv6 reçus.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Détermine si le trafic de contrôle des threads est filtré ou non lors de la distribution de datagrammes IPv6 via le rappel spécifié dans otIp6SetReceiveCallback().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Active/désactive le module SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Définit le gestionnaire de filtres du module SLAAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Convertit une adresse de socket IPv6 donnée en une chaîne lisible.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Abonne l'interface Thread à une adresse multicast d'interface réseau.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Désabonne l'interface Thread en adresse multicast d'interface réseau.

Structs

otBorderRoutingCounters

Représente les compteurs de paquets transférés via le routage frontière.

otIp6Address

Représente une adresse IPv6.

otIp6AddressComponents

Représente les composants d'une adresse IPv6.

otIp6AddressInfo

Représente les informations d'adresse IPv6.

otIp6InterfaceIdentifier

Représente l'identifiant d'interface d'une adresse IPv6.

otIp6NetworkPrefix

Représente le préfixe réseau d'une adresse IPv6 (64 bits les plus significatifs de l'adresse).

otIp6Prefix

Représente un préfixe IPv6.

otMessageInfo

Représente les adresses de socket IPv6 locales et appairées.

otNetifAddress

Représente une adresse d'unicast d'interface réseau IPv6.

otNetifMulticastAddress

Représente une adresse de multidiffusion d'interface réseau IPv6.

otPacketsAndBytes

Représente les compteurs pour les paquets et les octets.

otSockAddr

Représente une adresse de socket IPv6.

Unions

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Énumérations

énumération anonyme

 anonymous enum

Numéros de protocole Internet.

Propriétés
OT_IP6_PROTO_DST_OPTS

Options de destination pour IPv6

OT_IP6_PROTO_FRAGMENT

En-tête de fragment pour IPv6.

OT_IP6_PROTO_HOP_OPTS

Option saut par saut IPv6.

OT_IP6_PROTO_ICMP6

ICMP pour IPv6.

OT_IP6_PROTO_IP6

Encapsulation IPv6.

OT_IP6_PROTO_NONE

Aucun en-tête suivant pour IPv6.

OT_IP6_PROTO_ROUTING

En-tête de routage pour IPv6.

OT_IP6_PROTO_TCP

Transmission Control Protocol (protocole de contrôle de transmission).

OT_IP6_PROTO_UDP

Datagramme utilisateur.

énumération anonyme

 anonymous enum

Origines des adresses IPv6.

Propriétés
OT_ADDRESS_ORIGIN_DHCPV6

Adresse DHCPv6 attribuée.

OT_ADDRESS_ORIGIN_MANUAL

Adresse attribuée manuellement.

OT_ADDRESS_ORIGIN_SLAAC

Adresse attribuée au SLAAC.

OT_ADDRESS_ORIGIN_THREAD

Adresse attribuée au thread (ALOC, RLOC, MLEID, etc.)

énumération anonyme

 anonymous enum

États ECN, représentés comme dans l'en-tête IP.

Propriétés
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Congestion rencontrée (CE)

OT_ECN_NOT_CAPABLE

Sans ECT.

Typedefs

otBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

Représente les compteurs de paquets transférés via le routage frontière.

otIp6Address

struct otIp6Address otIp6Address

Représente une adresse IPv6.

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

Le pointeur est appelé lorsqu'une adresse IPv6 interne est ajoutée ou supprimée.

Détails
Paramètres
[in] aAddressInfo
Pointeur vers les informations d'adresse IPv6.
[in] aIsAdded
TRUE si aAddress a été ajouté, FALSE si aAddress a été supprimé.
[in] aContext
Pointeur vers un contexte spécifique à l'application.

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Représente les composants d'une adresse IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

Représente les informations d'adresse IPv6.

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Représente l'identifiant d'interface d'une adresse IPv6.

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Représente le préfixe réseau d'une adresse IPv6 (64 bits les plus significatifs de l'adresse).

otIp6Prefix

struct otIp6Prefix otIp6Prefix

Représente un préfixe IPv6.

otIp6ReceiveCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

Le pointeur est appelé lors de la réception d'un datagramme IPv6.

Détails
Paramètres
[in] aMessage
Pointeur vers le tampon du message contenant le datagramme IPv6 reçu. Cette fonction transfère la propriété de aMessage au destinataire du rappel. Le message doit être libéré par le destinataire du rappel après son traitement (voir otMessageFree()).
[in] aContext
Pointeur vers un contexte spécifique à l'application.

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

Le pointeur est appelé avec les résultats otIp6RegisterMulticastListeners.

Détails
Paramètres
[in] aContext
Un pointeur vers le contexte de l'utilisateur.
[in] aError
OT_ERROR_NONE lorsque MLR.req a bien été envoyé et que MLR.rsp a été reçu, OT_ERROR_ANSWER_TIMEOUT en cas d'échec de la réception de MLR.rsp, OT_ERROR_PARSE lorsque l'analyse de MLR.rsp a échoué.
[in] aMlrStatus
État d'enregistrement de l'écouteur de multidiffusion lorsque aError est OT_ERROR_NONE.
[in] aFailedAddresses
Pointeur vers les adresses IPv6 ayant échoué lorsque aError a la valeur OT_ERROR_NONE.
[in] aFailedAddressNum
Nombre d'adresses IPv6 ayant échoué lorsque aError est défini sur OT_ERROR_NONE.
Voir aussi:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

Le pointeur permet à l'utilisateur de filtrer les préfixes et d'empêcher l'ajout d'une adresse SLAAC basée sur un préfixe.

otIp6SetSlaacPrefixFilter() peut être utilisé pour définir le gestionnaire de filtres. Le gestionnaire de filtres est appelé par le module SLAAC lorsqu'il est sur le point d'ajouter une adresse SLAAC basée sur un préfixe. Sa valeur de retour booléenne détermine si l'adresse est filtrée (non ajoutée) ou non.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aPrefix
Pointeur vers le préfixe pour lequel une adresse SLAAC est sur le point d'être ajoutée.
Valeurs de retour
TRUE
Indique que l'adresse SLAAC basée sur le préfixe doit être filtrée et NON ajoutée.
FALSE
Indique que l'adresse SLAAC basée sur le préfixe doit être ajoutée.

otMessageInfo

struct otMessageInfo otMessageInfo

Représente les adresses de socket IPv6 locales et appairées.

otNetifAddress

struct otNetifAddress otNetifAddress

Représente une adresse d'unicast d'interface réseau IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Représente une adresse de multidiffusion d'interface réseau IPv6.

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

Représente les compteurs pour les paquets et les octets.

otSockAddr

struct otSockAddr otSockAddr

Représente une adresse de socket IPv6.

Variables

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

distantes

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Ajoute une adresse d'interface réseau à l'interface Thread.

L'instance aAddress transmise est copiée par l'interface Thread. L'interface Thread n'accepte qu'un nombre fixe d'adresses unicast ajoutées en externe. Consultez les OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aAddress
Pointeur vers une adresse d'interface réseau.
Valeurs de retour
OT_ERROR_NONE
L'adresse d'interface réseau a bien été ajoutée (ou mise à jour).
OT_ERROR_INVALID_ARGS
L'adresse IP indiquée par aAddress est une adresse interne.
OT_ERROR_NO_BUFS
L'interface réseau stocke déjà le nombre maximal d'adresses externes autorisées.

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Ajoute un port à la liste des ports non sécurisés autorisés.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aPort
Valeur du port.
Valeurs de retour
OT_ERROR_NONE
Le port a bien été ajouté à la liste des ports non sécurisés autorisés.
OT_ERROR_INVALID_ARGS
Le port n'est pas valide (la valeur 0 est réservée à un usage interne).
OT_ERROR_NO_BUFS
La liste des ports non sécurisés est pleine.

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

Convertit une chaîne d'adresse IPv6 lisible en une représentation binaire.

Détails
Paramètres
[in] aString
Pointeur vers une chaîne se terminant par une valeur NULL.
[out] aAddress
Pointeur vers une adresse IPv6.
Valeurs de retour
OT_ERROR_NONE
L'analyse de aString et la mise à jour de aAddress ont bien été effectuées.
OT_ERROR_PARSE
Échec de l'analyse de aString en tant qu'adresse IPv6.

otIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Convertit une adresse IPv6 donnée en une chaîne lisible.

La chaîne d'adresse IPv6 prend la forme de 16 valeurs hexadécimales séparées par ":" (par exemple, "%x:%x:%x:...:%x").

Si la chaîne obtenue ne rentre pas dans aBuffer (de ses caractères aSize), elle sera tronquée, mais la sortie sera toujours nulle et se termine toujours.

Détails
Paramètres
[in] aAddress
Un pointeur vers une adresse IPv6 (NE DOIT PAS être NULL).
[out] aBuffer
Un pointeur vers un tableau de caractères pour générer la chaîne (NE DOIT PAS être NULL).
[in] aSize
Taille de aBuffer (en octets). Utilisation recommandée de OT_IP6_ADDRESS_STRING_SIZE.

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

Vérifiez si deux préfixes IPv6 sont identiques.

Détails
Paramètres
[in] aFirst
Pointeur vers le premier préfixe IPv6 à comparer.
[in] aSecond
Pointeur vers le deuxième préfixe IPv6 à comparer.
Valeurs de retour
TRUE
Les deux préfixes IPv6 sont identiques.
FALSE
Les deux préfixes IPv6 ne sont pas identiques.

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

Récupère les compteurs de routage de bordure.

La fonctionnalité de compilation OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE doit être activée.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Pointeur vers les compteurs de routage de bordure.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Récupère la liste des adresses de multidiffusion IPv6 abonnées à l'interface Thread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Pointeur vers la première adresse multicast de l'interface réseau.

otIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

Récupère un préfixe avec aLength à partir de aAddress.

Détails
Paramètres
[in] aAddress
Pointeur vers une adresse IPv6.
[in] aLength
Longueur du préfixe en bits.
[out] aPrefix
Un pointeur pour afficher le préfixe IPv6.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Récupère la liste des adresses IPv6 attribuées à l'interface Thread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Pointeur vers la première adresse d'interface réseau.

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

Renvoie un pointeur vers la liste des ports non sécurisés.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[out] aNumEntries
Nombre d'entrées dans la liste.
Renvoie
Pointeur vers la liste des ports non sécurisés.

otIp6HasUnicastAddress

bool otIp6HasUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Indique si une adresse IPv6 monodiffusion est attribuée à l'interface Thread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aAddress
Pointeur vers l'adresse unicast.
Valeurs de retour
TRUE
Si aAddress est attribué à l'interface Thread.
FALSE
Si aAddress n'est pas attribué à l'interface Thread.

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Vérifiez si deux adresses IPv6 sont identiques.

Détails
Paramètres
[in] aFirst
Pointeur vers la première adresse IPv6 à comparer.
[in] aSecond
Pointeur vers la deuxième adresse IPv6 à comparer.
Valeurs de retour
TRUE
Les deux adresses IPv6 sont identiques.
FALSE
Les deux adresses IPv6 ne sont pas les mêmes.

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Indique si une adresse IPv6 donnée est une adresse non spécifiée.

Détails
Paramètres
[in] aAddress
Pointeur vers une adresse IPv6.
Valeurs de retour
TRUE
Si l'adresse IPv6 correspond à "Adresse non spécifiée".
FALSE
Si l'adresse IPv6 n'est pas une adresse non spécifiée.

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Indique si l'interface IPv6 est opérationnelle.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Valeurs de retour
TRUE
L'interface IPv6 est activée.
FALSE
L'interface IPv6 est désactivée.

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Vérifie si le mode promiscuité multicast est activé sur l'interface Thread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Voir aussi:
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Indique si le trafic de contrôle Thread est filtré ou non lors de la distribution de datagrammes IPv6 via le rappel spécifié dans otIp6SetReceiveCallback().

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
"TRUE" si le trafic de contrôle des threads est filtré, "FALSE" dans le cas contraire.
Voir aussi:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Indique si le module SLAAC est activé ou non.

La fonctionnalité de compilation OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE doit être activée.

Détails
Valeurs de retour
TRUE
Le module SLAAC est activé.
FALSE
Le module SLAAC est désactivé.

otIp6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Allouer un nouveau tampon de message pour l'envoi d'un message IPv6.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aSettings
Pointeur vers les paramètres du message ou NULL pour définir les paramètres par défaut.
Renvoie
Pointeur vers le tampon du message ou NULL si aucun tampon de message n'est disponible ou si les paramètres ne sont pas valides.
Voir aussi:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

Allouez un nouveau tampon de message et écrivez le datagramme IPv6 dans ce tampon pour envoyer un message IPv6.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aData
Pointeur vers le tampon de datagramme IPv6.
[in] aDataLength
Taille du tampon de datagramme IPv6 indiqué par aData.
[in] aSettings
Pointeur vers les paramètres du message ou NULL pour définir les paramètres par défaut.
Renvoie
Pointeur vers le message, ou valeur NULL si un en-tête IPv6 non valide ou si les tampons de message sont insuffisants.
Voir aussi:
otMessageFree

otIp6PrefixFromString

otError otIp6PrefixFromString(
  const char *aString,
  otIp6Prefix *aPrefix
)

Convertit une chaîne de préfixe IPv6 lisible en une représentation binaire.

Le paramètre aString doit être une chaîne au format "

/", où
est une adresse IPv6 et est une longueur de préfixe.

Détails
Paramètres
[in] aString
Pointeur vers une chaîne se terminant par une valeur NULL.
[out] aPrefix
Pointeur vers un préfixe IPv6.
Valeurs de retour
OT_ERROR_NONE
La chaîne a bien été analysée en tant que préfixe IPv6 et mis à jour aPrefix.
OT_ERROR_PARSE
Échec de l'analyse de aString en tant que préfixe IPv6.

otIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Renvoie la longueur de correspondance du préfixe (en bits) pour deux adresses IPv6.

Détails
Paramètres
[in] aFirst
Pointeur vers la première adresse IPv6.
[in] aSecond
Pointeur vers la deuxième adresse IPv6.
Renvoie
Le préfixe correspond à la longueur en bits.

otIp6PrefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

Convertit un préfixe IPv6 donné en une chaîne lisible.

Le format de la chaîne d'adresse IPv6 est "%x:%x:%x:...[::]/plen".

Si la chaîne obtenue ne rentre pas dans aBuffer (de ses caractères aSize), elle sera tronquée, mais la sortie sera toujours nulle et se termine toujours.

Détails
Paramètres
[in] aPrefix
Un pointeur vers un préfixe IPv6 (NE DOIT PAS être NULL).
[out] aBuffer
Un pointeur vers un tableau de caractères pour générer la chaîne (NE DOIT PAS être NULL).
[in] aSize
Taille de aBuffer (en octets). Utilisation recommandée de OT_IP6_PREFIX_STRING_SIZE.

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Convertit un numéro de protocole IP donné en une chaîne lisible.

Détails
Paramètres
[in] aIpProto
Un numéro de protocole IP (énumération OT_IP6_PROTO_*).
Renvoie
Chaîne représentant aIpProto.

otIp6RegisterMulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

Enregistre les écouteurs de multidiffusion sur le routeur backbone principal.

OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE et OPENTHREAD_CONFIG_COMMISSIONER_ENABLE doivent être activés.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aAddresses
Tableau d'adresses multicast à enregistrer.
[in] aAddressNum
Nombre d'adresses de multidiffusion à enregistrer (0 si aAddresses est NULL).
[in] aTimeout
Pointeur vers la valeur du délai avant expiration (en secondes) à inclure dans MLR.req. Une valeur de 0 pour le délai avant expiration supprime l'écouteur de multidiffusion correspondant. Si la valeur est NULL, MLR.req n'a pas de Tlv Timeout par défaut.
[in] aCallback
Un pointeur vers la fonction de rappel.
[in] aContext
Un pointeur vers le contexte de l'utilisateur.
Valeurs de retour
OT_ERROR_NONE
Le fichier MLR.req. Le aCallback est appelé si cette méthode renvoie OT_ERROR_NONE.
OT_ERROR_BUSY
Un enregistrement précédent était en cours.
OT_ERROR_INVALID_ARGS
Si un ou plusieurs arguments ne sont pas valides.
OT_ERROR_INVALID_STATE
Si l'état de l'appareil n'était pas valide pour envoyer la demande MLR.req (par exemple, "Commissaire non démarré", "Routeur backbone principal" introuvable).
OT_ERROR_NO_BUFS
Si la quantité de mémoire tampon des messages est insuffisante.
Voir aussi:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Supprime tous les ports de la liste des ports non sécurisés autorisés.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Supprime une adresse d'interface réseau de l'interface Thread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aAddress
Pointeur vers une adresse IP.
Valeurs de retour
OT_ERROR_NONE
L'adresse d'interface réseau a bien été supprimée.
OT_ERROR_INVALID_ARGS
L'adresse IP indiquée par aAddress est une adresse interne.
OT_ERROR_NOT_FOUND
L'adresse IP indiquée par aAddress est introuvable.

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Supprime un port de la liste des ports non sécurisés autorisés.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aPort
Valeur du port.
Valeurs de retour
OT_ERROR_NONE
Le port a bien été supprimé de la liste des ports non sécurisés autorisés.
OT_ERROR_INVALID_ARGS
Le port n'est pas valide (la valeur 0 est réservée à un usage interne).
OT_ERROR_NOT_FOUND
Le port est introuvable dans la liste des ports non sécurisés.

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

Réinitialise les compteurs de routage de bordure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Sélectionne l'adresse source OpenThread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in,out] aMessageInfo
Pointeur vers les informations du message.
Valeurs de retour
OT_ERROR_NONE
Adresse source trouvée et saisie dans le champ mSockAddr de aMessageInfo.
OT_ERROR_NOT_FOUND
Aucune adresse source n'a été trouvée et aMessageInfo n'a pas été modifié.

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Envoie un datagramme IPv6 via l'interface Thread.

L'appelant transfère la propriété de aMessage lors de cet appel. OpenThread libère aMessage une fois le traitement terminé, y compris lorsqu'une valeur autre que OT_ERROR_NONE est renvoyée.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMessage
Pointeur vers le tampon du message contenant le datagramme IPv6.
Valeurs de retour
OT_ERROR_NONE
Le message a bien été traité.
OT_ERROR_DROP
Le message était bien formé, mais n'a pas été entièrement traité en raison des règles de traitement des paquets.
OT_ERROR_NO_BUFS
Impossible d'allouer les tampons de message nécessaires lors du traitement du datagramme.
OT_ERROR_NO_ROUTE
Aucune route vers l'hôte.
OT_ERROR_INVALID_SOURCE_ADDRESS
L'adresse source n'est pas valide (par exemple, une adresse Anycast ou une adresse de multidiffusion).
OT_ERROR_PARSE
Un en-tête incorrect est survenu lors du traitement du message.
OT_ERROR_INVALID_ARGS
Les métadonnées du message ne sont pas valides (par exemple, le message utilise OT_MESSAGE_ORIGIN_THREAD_NETIF comme origine).

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

Enregistre un rappel pour avertir les modifications apportées aux adresses IPv6 internes.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aCallback
Pointeur vers une fonction appelée lorsqu'une adresse IPv6 interne est ajoutée ou supprimée. NULL pour désactiver le rappel.
[in] aCallbackContext
Pointeur vers un contexte spécifique à l'application.

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Active ou désactive l'interface IPv6.

Appelez-le pour activer ou désactiver la communication IPv6.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aEnabled
TRUE pour activer IPv6, FALSE dans le cas contraire.
Valeurs de retour
OT_ERROR_NONE
L'interface IPv6 a été correctement remontée.
OT_ERROR_INVALID_STATE
L'interface IPv6 n'est pas disponible, car l'appareil fonctionne en mode liaison brute (applicable uniquement lorsque la fonctionnalité OPENTHREAD_CONFIG_LINK_RAW_ENABLE est activée).

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Définit l'IID local du maillage (à des fins de test).

Nécessite OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aIid
Pointeur vers l'IID local du maillage à définir.
Valeurs de retour
OT_ERROR_NONE
L'IID local du maillage a bien été défini.
OT_ERROR_INVALID_STATE
Les protocoles Thread sont activés.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Active ou désactive le mode promiscuité multicast sur l'interface Thread.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aEnabled
TRUE pour activer le mode promiscuité multidiffusion, FALSE dans le cas contraire.
Voir aussi:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

Enregistre un rappel pour fournir les datagrammes IPv6 reçus.

Par défaut, ce rappel ne transmet pas le trafic de contrôle des threads. Pour modifier le paramètre de filtre du trafic de contrôle des threads, consultez otIp6SetReceiveFilterEnabled().

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aCallback
Pointeur vers une fonction appelée lors de la réception d'un datagramme IPv6 ou valeur NULL pour désactiver le rappel.
[in] aCallbackContext
Pointeur vers un contexte spécifique à l'application.
Voir aussi:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Détermine si le trafic de contrôle des threads est filtré ou non lors de la distribution de datagrammes IPv6 via le rappel spécifié dans otIp6SetReceiveCallback().

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aEnabled
"TRUE" si le trafic de contrôle des threads est filtré, "FALSE" dans le cas contraire.
Voir aussi:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Active/désactive le module SLAAC.

La fonctionnalité de compilation OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE doit être activée.

Lorsque le module SLAAC est activé, des adresses SLAAC (en fonction des préfixes de réseau maillé dans les données réseau) sont ajoutées à l'interface. Lorsque le module SLAAC est désactivé, toute adresse SLAAC précédemment ajoutée est supprimée.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aEnabled
TRUE pour activer, FALSE pour désactiver.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Définit le gestionnaire de filtres du module SLAAC.

La fonctionnalité de compilation OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE doit être activée.

Le gestionnaire de filtres est appelé par le module SLAAC lorsqu'il est sur le point d'ajouter une adresse SLAAC basée sur un préfixe pour décider si l'adresse doit être ajoutée ou non.

Un gestionnaire de filtres NULL désactive le filtrage et autorise l'ajout de toutes les adresses SLAAC.

Si cette fonction n'est pas appelée, le filtre par défaut utilisé par le module SLAAC sera NULL (le filtrage est désactivé).

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aFilter
Pointeur vers le gestionnaire de filtres de préfixe SLAAC ou la valeur NULL pour désactiver le filtrage.

otIp6SockAddrToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

Convertit une adresse de socket IPv6 donnée en une chaîne lisible.

La chaîne d'adresse de socket IPv6 est au format [address]:port, où address est affiché sous la forme de 16 valeurs hexadécimales séparées par : et port est le numéro de port au format décimal, par exemple "[%x:%x:...:%x]:%u".

Si la chaîne obtenue ne rentre pas dans aBuffer (de ses caractères aSize), elle sera tronquée, mais la sortie sera toujours nulle et se termine toujours.

Détails
Paramètres
[in] aSockAddr
Pointeur vers une adresse de socket IPv6 (NE DOIT PAS être NULL).
[out] aBuffer
Un pointeur vers un tableau de caractères pour générer la chaîne (NE DOIT PAS être NULL).
[in] aSize
Taille de aBuffer (en octets). Utilisation recommandée de OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6SubscribeMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Abonne l'interface Thread à une adresse multicast d'interface réseau.

L'instance aAddress transmise sera copiée par l'interface Thread. L'interface Thread n'accepte qu'un nombre fixe d'adresses de multidiffusion ajoutées en externe. Consultez les OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aAddress
Pointeur vers une adresse IP.
Valeurs de retour
OT_ERROR_NONE
Abonnement à l'adresse multicast de l'interface réseau réussi.
OT_ERROR_ALREADY
L'adresse de multidiffusion est déjà abonnée.
OT_ERROR_INVALID_ARGS
L'adresse IP indiquée par aAddress est une adresse de multidiffusion non valide.
OT_ERROR_REJECTED
L'adresse IP indiquée par aAddress est une adresse de multidiffusion interne.
OT_ERROR_NO_BUFS
L'interface réseau stocke déjà le nombre maximal d'adresses de multidiffusion externes autorisé.

otIp6UnsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Désabonne l'interface Thread en adresse multicast d'interface réseau.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aAddress
Pointeur vers une adresse IP.
Valeurs de retour
OT_ERROR_NONE
Vous vous êtes bien désabonné de l'adresse multicast de l'interface réseau.
OT_ERROR_REJECTED
L'adresse IP indiquée par aAddress est une adresse interne.
OT_ERROR_NOT_FOUND
L'adresse IP indiquée par aAddress est introuvable.

Macros

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Taille d'une adresse IPv6 (octets)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Taille recommandée pour représenter une adresse IPv6 sous forme de chaîne.

OT_IP6_HEADER_PROTO_OFFSET

 OT_IP6_HEADER_PROTO_OFFSET 6

Décalage du champ proto dans l'en-tête IPv6 (octets)

OT_IP6_HEADER_SIZE

 OT_IP6_HEADER_SIZE 40

Taille d'un en-tête IPv6 (octets)

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Taille d'un identifiant d'interface IPv6 (octets)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Nombre maximal d'adresses IPv6 compatibles avec l'enregistrement d'écouteurs multicast.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Taille d'un préfixe IPv6 (bits)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Taille d'un préfixe IPv6 (octets)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Taille recommandée pour la représentation sous forme de chaîne d'un préfixe IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Taille recommandée pour la représentation sous forme de chaîne d'une adresse de socket IPv6.

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.