NAT64
Dieses Modul enthält Funktionen und Strukturen für die NAT64-Funktion auf dem Border-Router.
Zusammenfassung
Diese Funktionen sind nur verfügbar, wenn OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
aktiviert ist.
Aufzählungen |
|
---|---|
otNat64DropReason{
|
enum Gründe für das Löschen von Paketen |
otNat64State{
|
enum NAT64-Status. |
Typedefs |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Stellt eine IPv4-Adresse dar. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Stellt einen Adresszuordnungseintrag für NAT64 dar. |
otNat64AddressMappingIterator
|
typedef Wird für die Iteration über NAT64-Adresszuordnungen verwendet. |
otNat64Counters
|
typedefstruct otNat64Counters
Stellt die Zähler für NAT64 dar. |
otNat64DropReason
|
typedefenum otNat64DropReason
Gründe für das Löschen von Paketen |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Stellt die Zähler der verworfenen Pakete aufgrund von Fehlern bei der Verarbeitung von NAT64-Paketen dar. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Stellt die Zähler für die von NAT64 unterstützten Protokolle dar. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Pointer wird aufgerufen, wenn ein IPv4-Datagramm (übersetzt vom NAT64-Übersetzer) empfangen wird. |
Variablen |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
Funktionen |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Wandelt einen menschenlesbaren IPv4-Adressstring in eine binäre Darstellung um.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Wandelt die Adresse in einen String um.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Wandelt einen für Menschen lesbaren IPv4-CIDR-String in eine Binärdarstellung um.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Wandelt das IPv4-CIDR in einen String um.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Legen Sie
aIp4Address fest, indem Sie eine NAT64-Adressübersetzung aus aIp6Address gemäß RFC 6052 ausführen. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Testen Sie, ob zwei IPv4-Adressen identisch sind.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Weisen Sie einen neuen Nachrichtenpuffer zum Senden einer IPv4-Nachricht an den NAT64-Übersetzer zu.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Ruft das im NAT64-Übersetzer konfigurierte IPv4-CIDR ab.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Ruft NAT64-Übersetzerzähler ab.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Ruft die NAT64-Übersetzer-Fehlerzähler ab.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Ruft die nächsten AddressMapping-Informationen mit einem Iteration ab.
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Ruft den Status des NAT64-Präfix-Managers ab.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Ruft den Status des NAT64-Übersetzers ab.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Initialisiert ein
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Übersetzt ein IPv4-Datagramm in ein IPv6-Datagramm und sendet es über die Thread-Schnittstelle.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
NAT64-Funktionen aktivieren oder deaktivieren.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Legt das CIDR fest, das beim Festlegen der Quelladresse der ausgehenden übersetzten IPv4-Pakete verwendet wird.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Registriert einen Callback, um empfangene IPv4-Datagramme bereitzustellen.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Legt die IPv6-Adresse fest, indem eine NAT64-Adressübersetzung aus dem bevorzugten NAT64-Präfix und der angegebenen IPv4-Adresse gemäß RFC 6052 durchgeführt wird.
|
Strukturen |
|
---|---|
otIp4Address |
Stellt eine IPv4-Adresse dar. |
otIp4Cidr |
Stellt einen IPv4-CIDR-Block dar. |
otNat64AddressMapping |
Stellt einen Adresszuordnungseintrag für NAT64 dar. |
otNat64AddressMappingIterator |
Wird für die Iteration über NAT64-Adresszuordnungen verwendet. |
otNat64Counters |
Stellt die Zähler für NAT64 dar. |
otNat64ErrorCounters |
Stellt die Zähler der verworfenen Pakete aufgrund von Fehlern bei der Verarbeitung von NAT64-Paketen dar. |
otNat64ProtocolCounters |
Stellt die Zähler für die von NAT64 unterstützten Protokolle dar. |
Gewerkschaften |
|
---|---|
otIp4Address:: |
Aufzählungen
otNat64DropReason
otNat64DropReason
Gründe für das Löschen von Paketen
Attribute | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Paketverlust aufgrund eines Fehlers beim Parsen des Datagramms. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Paket gelöscht, weil keine Zuordnungen gefunden wurden oder der Zuordnungspool erschöpft ist. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Paket wurde aus unbekannten Gründen gelöscht. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Paketverlust aufgrund eines nicht unterstützten IP-Protokolls |
otNat64State
otNat64State
NAT64-Status.
Attribute | |
---|---|
OT_NAT64_STATE_ACTIVE
|
Der BR veröffentlicht ein NAT64-Präfix und/oder übersetzt Pakete. |
OT_NAT64_STATE_DISABLED
|
NAT64 ist deaktiviert. |
OT_NAT64_STATE_IDLE
|
NAT64 ist aktiviert, aber dieser BR ist kein aktiver NAT64-BR. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 ist aktiviert, aber mindestens eine Abhängigkeiten von NAT64 werden nicht ausgeführt. |
Typedefs
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Stellt einen Adresszuordnungseintrag für NAT64 dar.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Wird für die Iteration über NAT64-Adresszuordnungen verwendet.
Die Felder in diesem Typ sind intransparent (nur zur Verwendung durch den OpenThread-Kern vorgesehen) und sollten daher nicht vom Aufrufer aufgerufen oder verwendet werden.
Vor der Verwendung eines Listeners MUSS er mit otNat64AddressMappingIteratorInit()
initialisiert werden.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Stellt die Zähler der verworfenen Pakete aufgrund von Fehlern bei der Verarbeitung von NAT64-Paketen dar.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Stellt die Zähler für die von NAT64 unterstützten Protokolle dar.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Pointer wird aufgerufen, wenn ein IPv4-Datagramm (übersetzt vom NAT64-Übersetzer) empfangen wird.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Variablen
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
Funktionen
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Wandelt einen menschenlesbaren IPv4-Adressstring in eine binäre Darstellung um.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Wandelt die Adresse in einen String um.
Das Stringformat verwendet eine Vier-Punkt-Notation von vier Byte in der Adresse (z.B. „127.0.0.1“).
Wenn der resultierende String nicht in aBuffer
(innerhalb seiner aSize
-Zeichen) passt, wird der String abgeschnitten, aber der ausgegebene String wird immer mit Null beendet.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Wandelt einen für Menschen lesbaren IPv4-CIDR-String in eine Binärdarstellung um.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Wandelt das IPv4-CIDR in einen String um.
Das Stringformat verwendet eine Quad-Punkt-Notation von vier Byte in der Adresse mit der Präfixlänge (z.B. „127.0.0.1/32“).
Wenn der resultierende String nicht in aBuffer
(innerhalb seiner aSize
-Zeichen) passt, wird der String abgeschnitten, aber der ausgegebene String wird immer mit Null beendet.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Legen Sie aIp4Address
fest, indem Sie eine NAT64-Adressübersetzung aus aIp6Address
gemäß RFC 6052 ausführen.
Die NAT64-aPrefixLength
MUSS einer der folgenden Werte sein: 32, 40, 48, 56, 64 oder 96. Andernfalls ist das Verhalten dieser Methode nicht definiert.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Testen Sie, ob zwei IPv4-Adressen identisch sind.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Weisen Sie einen neuen Nachrichtenpuffer zum Senden einer IPv4-Nachricht an den NAT64-Übersetzer zu.
Für Nachrichtenpuffer, die von dieser Funktion zugewiesen werden, sind 20 Byte (Differenz zwischen der Größe der IPv6-Header und der IPv4-Header-Größe) reserviert.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
Ein Zeiger auf den Nachrichtenpuffer oder NULL, wenn keine Nachrichtenpuffer verfügbar sind oder Parameter ungültig sind.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Ruft das im NAT64-Übersetzer konfigurierte IPv4-CIDR ab.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Ruft NAT64-Übersetzerzähler ab.
Der Zähler wird seit der Initialisierung der Instanz gezählt.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Ruft die NAT64-Übersetzer-Fehlerzähler ab.
Die Zähler werden auf null initialisiert, wenn die OpenThread-Instanz initialisiert wird.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Ruft die nächsten AddressMapping-Informationen mit einem Iteration ab.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Ruft den Status des NAT64-Präfix-Managers ab.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
aktiviert ist.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Ruft den Status des NAT64-Übersetzers ab.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Initialisiert ein otNat64AddressMappingIterator
.
Ein Iterator MUSS initialisiert werden, bevor er verwendet wird.
Ein Iterator kann erneut initialisiert werden, um vom Anfang der Zuordnungsinformationen neu zu starten.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Übersetzt ein IPv4-Datagramm in ein IPv6-Datagramm und sendet es über die Thread-Schnittstelle.
Der Anrufer überträgt bei diesem Anruf die Inhaberschaft von aMessage
. OpenThread gibt aMessage
kostenlos, wenn die Verarbeitung abgeschlossen ist, auch wenn ein anderer Wert als OT_ERROR_NONE
zurückgegeben wird.
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Rückgabewerte |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
NAT64-Funktionen aktivieren oder deaktivieren.
Hinweis: Dazu gehören NAT64 Translator (wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist) und NAT64 Präfix Manager (wenn OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
aktiviert ist).
Wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
aktiviert ist und die Einstellung auf „true“ gesetzt ist, wird die Zuordnungstabelle im Übersetzer zurückgesetzt.
Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
oder OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
aktiviert ist.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Legt das CIDR fest, das beim Festlegen der Quelladresse der ausgehenden übersetzten IPv4-Pakete verwendet wird.
Ist nur verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE aktiviert ist.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Registriert einen Callback, um empfangene IPv4-Datagramme bereitzustellen.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Legt die IPv6-Adresse fest, indem eine NAT64-Adressübersetzung aus dem bevorzugten NAT64-Präfix und der angegebenen IPv4-Adresse gemäß RFC 6052 durchgeführt wird.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabe |
OT_ERROR_NONE Die IPv6-Adresse wurde aus dem NAT64-Präfix und der IPv4-Adresse synthetisiert.
|
||||||
Rückgabe |
OT_ERROR_INVALID_STATE Kein gültiges NAT64-Präfix in den Netzwerkdaten.
|
Makros
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Größe einer IPv4-Adresse (Byte)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Länge von 000.000.000.000 plus das Suffix NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Länge von 000.000.000.000/00 plus das Suffix NUL.
Ressourcen
OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.