NAT64
Questo modulo include funzioni e struct per la funzione NAT64 sul router di confine.
Riepilogo
Queste funzioni sono disponibili solo quando OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
è abilitato.
Enumerazioni |
|
---|---|
otNat64DropReason{
|
enum Motivi dell'abbandono dei pacchetti. |
otNat64State{
|
enum degli stati di NAT64. |
Typedef |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Rappresenta un indirizzo IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Rappresenta un record di mappatura degli indirizzi per NAT64. |
otNat64AddressMappingIterator
|
typedef Utilizzato per l'iterazione tramite le mappature degli indirizzi NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Rappresenta i contatori per NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Motivi dell'abbandono dei pacchetti. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Rappresenta i contatori dei pacchetti ignorati a causa di errori durante la gestione dei pacchetti NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Rappresenta i contatori per i protocolli supportati da NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Il puntatore viene chiamato quando viene ricevuto un datagramma IPv4 (tradotto dal traduttore NAT64). |
Variabili |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
Funzioni |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Converte una stringa di indirizzi IPv4 leggibile in una rappresentazione binaria.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Converte l'indirizzo in una stringa.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Converte una stringa CIDR IPv4 leggibile in una rappresentazione binaria.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Converte il CIDR IPv4 in una stringa.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Imposta
aIp4Address eseguendo la traduzione degli indirizzi NAT64 da aIp6Address , come specificato in RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Verifica se due indirizzi IPv4 sono uguali.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Alloca un nuovo buffer dei messaggi per l'invio di un messaggio IPv4 al traduttore NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Restituisce il CIDR IPv4 configurato nel traduttore NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Ottieni contatori del traduttore NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Restituisce i contatori di errori del traduttore NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Recupera le informazioni successive di AddressMapping (utilizzando un iteratore).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Restituisce lo stato del gestore di prefissi NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Restituisce lo stato del traduttore NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Inizializza un
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Traduce un datagramma IPv4 in un datagramma IPv6 e lo invia tramite l'interfaccia Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Abilita o disabilita le funzioni NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Imposta il CIDR utilizzato durante l'impostazione dell'indirizzo di origine dei pacchetti IPv4 tradotti in uscita.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Registra un callback per fornire i datagrammi IPv4 ricevuti.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Imposta l'indirizzo IPv6 eseguendo la traduzione degli indirizzi NAT64 dal prefisso NAT64 preferito e dall'indirizzo IPv4 specificato come specificato in RFC 6052.
|
Strutture |
|
---|---|
otIp4Address |
Rappresenta un indirizzo IPv4. |
otIp4Cidr |
Rappresenta un blocco CIDR IPv4. |
otNat64AddressMapping |
Rappresenta un record di mappatura degli indirizzi per NAT64. |
otNat64AddressMappingIterator |
Utilizzato per l'iterazione tramite le mappature degli indirizzi NAT64. |
otNat64Counters |
Rappresenta i contatori per NAT64. |
otNat64ErrorCounters |
Rappresenta i contatori dei pacchetti ignorati a causa di errori durante la gestione dei pacchetti NAT64. |
otNat64ProtocolCounters |
Rappresenta i contatori per i protocolli supportati da NAT64. |
Unione |
|
---|---|
otIp4Address:: |
Enumerazioni
otNat64DropReason
otNat64DropReason
Motivi dell'abbandono dei pacchetti.
Proprietà | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Riduzione del pacchetto a causa dell'impossibilità di analizzare il datagramma. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Riduzione dei pacchetti a causa dell'assenza di mapping o del pool di mapping esaurito. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Riduzione del pacchetto per motivi sconosciuti. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Riduzione del pacchetto a causa di un protocollo IP non supportato. |
otNat64State
otNat64State
degli stati di NAT64.
Proprietà | |
---|---|
OT_NAT64_STATE_ACTIVE
|
Il BR sta pubblicando un prefisso NAT64 e/o traducendo i pacchetti. |
OT_NAT64_STATE_DISABLED
|
NAT64 è disabilitato. |
OT_NAT64_STATE_IDLE
|
NAT64 è abilitato, ma questo BR non è un BR NAT64 attivo. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 è abilitato, ma una o più dipendenze di NAT64 non sono in esecuzione. |
Typedef
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Rappresenta un record di mappatura degli indirizzi per NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Utilizzato per l'iterazione tramite le mappature degli indirizzi NAT64.
I campi di questo tipo sono opachi (destinati solo all'utilizzo da parte del core OpenThread) e pertanto non devono essere accessibili o utilizzati dal chiamante.
Prima di utilizzare un iteratore, DEVE essere inizializzato utilizzando otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Rappresenta i contatori dei pacchetti ignorati a causa di errori durante la gestione dei pacchetti NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Rappresenta i contatori per i protocolli supportati da NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Il puntatore viene chiamato quando viene ricevuto un datagramma IPv4 (tradotto dal traduttore NAT64).
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Variabili
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
Funzioni
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Converte una stringa di indirizzi IPv4 leggibile in una rappresentazione binaria.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Converte l'indirizzo in una stringa.
Il formato stringa utilizza la notazione con quattro byte di quattro byte nell'indirizzo (ad es. "127.0.0.1").
Se la stringa risultante non rientra in aBuffer
(all'interno dei suoi aSize
caratteri), la stringa viene troncata, ma la stringa restituita è sempre con terminazione null.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Converte una stringa CIDR IPv4 leggibile in una rappresentazione binaria.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Converte il CIDR IPv4 in una stringa.
Il formato stringa utilizza la notazione con quattro byte di quattro byte nell'indirizzo con la lunghezza del prefisso (ad es. "127.0.0.1/32").
Se la stringa risultante non rientra in aBuffer
(all'interno dei suoi aSize
caratteri), la stringa viene troncata, ma la stringa restituita è sempre con terminazione null.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Imposta aIp4Address
eseguendo la traduzione degli indirizzi NAT64 da aIp6Address
, come specificato in RFC 6052.
Il valore aPrefixLength
NAT64 DEVE essere uno dei seguenti valori: 32, 40, 48, 56, 64 o 96, altrimenti il comportamento di questo metodo non è definito.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Verifica se due indirizzi IPv4 sono uguali.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Alloca un nuovo buffer dei messaggi per l'invio di un messaggio IPv4 al traduttore NAT64.
I buffer dei messaggi allocati da questa funzione avranno 20 byte (differenza tra la dimensione delle intestazioni IPv6 e le dimensioni dell'intestazione IPv4).
Disponibile quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
Un puntatore al buffer dei messaggi o NULL se non sono disponibili buffer dei messaggi o se i parametri non sono validi.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Restituisce il CIDR IPv4 configurato nel traduttore NAT64.
Disponibile quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Ottieni contatori del traduttore NAT64.
Il contatore viene conteggiato dall'inizializzazione dell'istanza.
Disponibile quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Restituisce i contatori di errori del traduttore NAT64.
I contatori vengono inizializzati a zero quando viene inizializzata l'istanza OpenThread.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Recupera le informazioni successive di AddressMapping (utilizzando un iteratore).
Disponibile quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Restituisce lo stato del gestore di prefissi NAT64.
Disponibile quando OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
è abilitato.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Restituisce lo stato del traduttore NAT64.
Disponibile quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Inizializza un otNat64AddressMappingIterator
.
Un iteratore DEVE essere inizializzato prima di essere utilizzato.
Un iteratore può essere inizializzato di nuovo per riavviarsi dall'inizio delle informazioni di mappatura.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Traduce un datagramma IPv4 in un datagramma IPv6 e lo invia tramite l'interfaccia Thread.
Il chiamante trasferisce la proprietà di aMessage
quando effettui questa chiamata. OpenThread libererà aMessage
al termine dell'elaborazione, anche quando viene restituito un valore diverso da OT_ERROR_NONE
.
Dettagli | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||
Valori restituiti |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Abilita o disabilita le funzioni NAT64.
Nota: sono inclusi il traduttore NAT64 (se OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato) e il gestore dei prefissi NAT64 (se OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
è abilitato).
Quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
è abilitato, l'impostazione disabilitata su true reimposta la tabella di mappatura nel traduttore.
Disponibile quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
o OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
è attivo.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Imposta il CIDR utilizzato durante l'impostazione dell'indirizzo di origine dei pacchetti IPv4 tradotti in uscita.
È disponibile solo quando OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE è abilitato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otBorderRouterSend
otBorderRouterSetFetchCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Registra un callback per fornire i datagrammi IPv4 ricevuti.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Imposta l'indirizzo IPv6 eseguendo la traduzione degli indirizzi NAT64 dal prefisso NAT64 preferito e dall'indirizzo IPv4 specificato come specificato in RFC 6052.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
OT_ERROR_NONE Sintetizzazione dell'indirizzo IPv6 dal prefisso NAT64 e dall'indirizzo IPv4 riuscita.
|
||||||
Restituisce |
OT_ERROR_INVALID_STATE Nessun prefisso NAT64 valido nei dati di rete.
|
Macro
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Dimensioni di un indirizzo IPv4 (byte)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Lunghezza di 000.000.000.000 più un suffisso NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Lunghezza di 000.000.000.000/00 più un suffisso NUL.
Risorse
Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.