NAT64
Ce module inclut des fonctions et des structs pour la fonction NAT64 sur le routeur de bordure.
Résumé
Ces fonctions ne sont disponibles que lorsque OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
est activé.
Énumérations |
|
---|---|
otNat64DropReason{
|
enum Motifs de suppression de paquets. |
otNat64State{
|
enum États du NAT64. |
Typedefs |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Représente une adresse IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Représente un enregistrement de mappage d'adresses pour NAT64. |
otNat64AddressMappingIterator
|
typedef Utilisé pour itérer via les mappages d'adresses NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Représente les compteurs pour NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Motifs de suppression de paquets. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Représente les compteurs de paquets supprimés en raison d'erreurs lors du traitement des paquets NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Représente les compteurs pour les protocoles compatibles avec NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Le pointeur est appelé lors de la réception d'un datagramme IPv4 (traduit par le traducteur NAT64). |
Variables |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
distantes |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Convertit une chaîne d'adresse IPv4 lisible en une représentation binaire.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Convertit l'adresse en chaîne.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Convertit une chaîne CIDR IPv4 lisible en une représentation binaire.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Convertit le CIDR IPv4 en chaîne.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Définissez
aIp4Address en effectuant une traduction d'adresse NAT64 à partir de aIp6Address , comme spécifié dans le document RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Vérifiez si deux adresses IPv4 sont identiques.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Allouez un nouveau tampon de messages pour envoyer un message IPv4 au traducteur NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Récupère le CIDR IPv4 configuré dans le traducteur NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Récupère les compteurs de traducteur NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Récupère les compteurs d'erreurs de traducteur NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Récupère les informations AddressMapping suivantes (à l'aide d'un itérateur).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Récupère l'état du gestionnaire de préfixes NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Récupère l'état du traducteur NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Initialise un
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Traduit un datagramme IPv4 en datagramme IPv6 et l’envoie via l’interface Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Activez ou désactivez les fonctions NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Définit le CIDR utilisé lors de la définition de l'adresse source des paquets IPv4 traduits sortants.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Enregistre un rappel pour fournir les datagrammes IPv4 reçus.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Définit l'adresse IPv6 en effectuant une traduction d'adresse NAT64 à partir du préfixe NAT64 préféré et de l'adresse IPv4 donnée, comme spécifié dans le document RFC 6052.
|
Structs |
|
---|---|
otIp4Address |
Représente une adresse IPv4. |
otIp4Cidr |
Représente un bloc CIDR IPv4. |
otNat64AddressMapping |
Représente un enregistrement de mappage d'adresses pour NAT64. |
otNat64AddressMappingIterator |
Utilisé pour itérer via les mappages d'adresses NAT64. |
otNat64Counters |
Représente les compteurs pour NAT64. |
otNat64ErrorCounters |
Représente les compteurs de paquets supprimés en raison d'erreurs lors du traitement des paquets NAT64. |
otNat64ProtocolCounters |
Représente les compteurs pour les protocoles compatibles avec NAT64. |
Unions |
|
---|---|
otIp4Address:: |
Énumérations
otNat64DropReason
otNat64DropReason
Motifs de suppression de paquets.
Propriétés | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Suppression de paquets due à l'échec de l'analyse du datagramme. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Suppression de paquets en raison d'aucun mappage trouvé ou de l'épuisement du pool de mappage. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Interruption des paquets pour des raisons inconnues. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Suppression de paquets en raison d'un protocole IP non compatible. |
otNat64State
otNat64State
États du NAT64.
Propriétés | |
---|---|
OT_NAT64_STATE_ACTIVE
|
Le BR publie un préfixe NAT64 et/ou traduit des paquets. |
OT_NAT64_STATE_DISABLED
|
NAT64 est désactivé. |
OT_NAT64_STATE_IDLE
|
Le NAT64 est activé, mais ce BR n'est pas un BR NAT64 actif. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 est activé, mais une ou plusieurs de ses dépendances ne s'exécutent pas. |
Typedefs
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Représente un enregistrement de mappage d'adresses pour NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Utilisé pour itérer via les mappages d'adresses NAT64.
Les champs de ce type sont opaques (destinés à être utilisés uniquement par le cœur OpenThread) et ne doivent donc pas être accessibles ou utilisés par l'appelant.
Avant d'utiliser un itérateur, vous DEVEZ l'initialiser à l'aide de otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Représente les compteurs de paquets supprimés en raison d'erreurs lors du traitement des paquets NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Représente les compteurs pour les protocoles compatibles avec NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Le pointeur est appelé lors de la réception d'un datagramme IPv4 (traduit par le traducteur NAT64).
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Variables
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
distantes
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Convertit une chaîne d'adresse IPv4 lisible en une représentation binaire.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Convertit l'adresse en chaîne.
Le format de chaîne utilise une notation à quatre points de quatre octets dans l'adresse (par exemple, "127.0.0.1").
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 |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Convertit une chaîne CIDR IPv4 lisible en une représentation binaire.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Convertit le CIDR IPv4 en chaîne.
Le format de chaîne utilise une notation à quatre points de quatre octets dans l'adresse, avec la longueur du préfixe (par exemple, "127.0.0.1/32").
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 |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Définissez aIp4Address
en effectuant une traduction d'adresse NAT64 à partir de aIp6Address
, comme spécifié dans le document RFC 6052.
Le aPrefixLength
NAT64 DOIT être l'une des valeurs suivantes: 32, 40, 48, 56, 64 ou 96. Sinon, le comportement de cette méthode n'est pas défini.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Vérifiez si deux adresses IPv4 sont identiques.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Allouez un nouveau tampon de messages pour envoyer un message IPv4 au traducteur NAT64.
Les tampons de messages alloués par cette fonction auront 20 octets réservés (différence entre la taille des en-têtes IPv6 et celle des en-têtes IPv4).
Disponible lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
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.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Récupère le CIDR IPv4 configuré dans le traducteur NAT64.
Disponible lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Récupère les compteurs de traducteur NAT64.
Le compteur est comptabilisé depuis l'initialisation de l'instance.
Disponible lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Récupère les compteurs d'erreurs de traducteur NAT64.
Les compteurs sont initialisés à zéro lorsque l'instance OpenThread est initialisée.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Récupère les informations AddressMapping suivantes (à l'aide d'un itérateur).
Disponible lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Récupère l'état du gestionnaire de préfixes NAT64.
Disponible lorsque OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
est activé.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Récupère l'état du traducteur NAT64.
Disponible lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Initialise un otNat64AddressMappingIterator
.
Un itérateur DOIT être initialisé avant d'être utilisé.
Un itérateur peut être initialisé à nouveau pour redémarrer à partir du début des informations de mappage.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Traduit un datagramme IPv4 en datagramme IPv6 et l’envoie 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 |
|
||||||||||||
Valeurs de retour |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Activez ou désactivez les fonctions NAT64.
Remarque: Cela inclut le traducteur NAT64 (lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé) et le gestionnaire de préfixes NAT64 (lorsque OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
est activé).
Lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
est activé, le paramètre désactivé sur "true" réinitialise la table de mappage dans le traducteur.
Disponible lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
ou OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
est activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Définit le CIDR utilisé lors de la définition de l'adresse source des paquets IPv4 traduits sortants.
N'est disponible que lorsque OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE est activé.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Enregistre un rappel pour fournir les datagrammes IPv4 reçus.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Définit l'adresse IPv6 en effectuant une traduction d'adresse NAT64 à partir du préfixe NAT64 préféré et de l'adresse IPv4 donnée, comme spécifié dans le document RFC 6052.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Renvoie |
OT_ERROR_NONE L'adresse IPv6 a bien été synthétisée à partir du préfixe NAT64 et de l'adresse IPv4.
|
||||||
Renvoie |
OT_ERROR_INVALID_STATE Aucun préfixe NAT64 valide dans les données du réseau.
|
Macros
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Taille d'une adresse IPv4 (octets)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Longueur de 000.000.000.000 plus un suffixe NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Longueur de 000.000.000.000/00 plus un suffixe NUL.
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.