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{
  OT_NAT64_DROP_REASON_UNKNOWN = 0,
  OT_NAT64_DROP_REASON_ILLEGAL_PACKET,
  OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO,
  OT_NAT64_DROP_REASON_NO_MAPPING
}
enum
Gründe für das Löschen von Paketen
otNat64State{
  OT_NAT64_STATE_DISABLED = 0,
  OT_NAT64_STATE_NOT_RUNNING,
  OT_NAT64_STATE_IDLE,
  OT_NAT64_STATE_ACTIVE
}
enum
NAT64-Status.

Typedefs

otIp4Address typedef
struct otIp4Address
Stellt eine IPv4-Adresse dar.
otIp4Cidr typedef
struct otIp4Cidr
otNat64AddressMapping typedef
Stellt einen Adresszuordnungseintrag für NAT64 dar.
otNat64AddressMappingIterator typedef
Wird für die Iteration über NAT64-Adresszuordnungen verwendet.
otNat64Counters typedef
Stellt die Zähler für NAT64 dar.
otNat64DropReason typedef
Gründe für das Löschen von Paketen
otNat64ErrorCounters typedef
Stellt die Zähler der verworfenen Pakete aufgrund von Fehlern bei der Verarbeitung von NAT64-Paketen dar.
otNat64ProtocolCounters typedef
Stellt die Zähler für die von NAT64 unterstützten Protokolle dar.
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext) typedef
void(*
Pointer wird aufgerufen, wenn ein IPv4-Datagramm (übersetzt vom NAT64-Übersetzer) empfangen wird.

Variablen

OT_TOOL_PACKED_END

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::OT_TOOL_PACKED_FIELD

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

otIp4Address

struct otIp4Address otIp4Address

Stellt eine IPv4-Adresse dar.

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.

otNat64Counters

struct otNat64Counters otNat64Counters

Stellt die Zähler für NAT64 dar.

otNat64DropReason

enum otNat64DropReason otNat64DropReason

Gründe für das Löschen von Paketen

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
[in] aMessage
Ein Zeiger auf den Nachrichtenpuffer, der das empfangene IPv6-Datagramm enthält. Diese Funktion überträgt die Inhaberschaft von aMessage auf den Empfänger des Callbacks. Die Nachricht sollte nach der Verarbeitung vom Empfänger des Callbacks freigegeben werden.
[in] aContext
Ein Zeiger auf einen anwendungsspezifischen Kontext.

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
[in] aString
Ein Zeiger auf einen NULL-terminierten String.
[out] aAddress
Ein Zeiger auf eine IPv4-Adresse.
Rückgabewerte
OT_ERROR_NONE
Der String wurde geparst.
OT_ERROR_INVALID_ARGS
Der String konnte nicht geparst werden.

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
[in] aAddress
Ein Zeiger auf eine IPv4-Adresse (DARF NICHT NULL sein).
[out] aBuffer
Ein Zeiger auf ein char-Array, um den String auszugeben (DARF NICHT nullptr sein).
[in] aSize
Die Größe von aBuffer (in Byte).

otIp4CidrFromString

otError otIp4CidrFromString(
  const char *aString,
  otIp4Cidr *aCidr
)

Wandelt einen für Menschen lesbaren IPv4-CIDR-String in eine Binärdarstellung um.

Details
Parameter
[in] aString
Ein Zeiger auf einen NULL-terminierten String.
[out] aCidr
Ein Zeiger auf ein IPv4-CIDR.
Rückgabewerte
OT_ERROR_NONE
Der String wurde geparst.
OT_ERROR_INVALID_ARGS
Der String konnte nicht geparst werden.

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
[in] aCidr
Ein Zeiger auf eine IPv4-CIDR (DARF NICHT NULL sein).
[out] aBuffer
Ein Zeiger auf ein char-Array, um den String auszugeben (DARF NICHT nullptr sein).
[in] aSize
Die Größe von aBuffer (in Byte).

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
[in] aPrefixLength
Die Präfixlänge für die IPv4/IPv6-Übersetzung.
[in] aIp6Address
Ein Zeiger auf eine IPv6-Adresse.
[out] aIp4Address
Ein Zeiger zur Ausgabe der IPv4-Adresse.

otIp4IsAddressEqual

bool otIp4IsAddressEqual(
  const otIp4Address *aFirst,
  const otIp4Address *aSecond
)

Testen Sie, ob zwei IPv4-Adressen identisch sind.

Details
Parameter
[in] aFirst
Ein Zeiger auf die erste IPv4-Adresse, die verglichen werden soll.
[in] aSecond
Ein Zeiger auf die zweite IPv4-Adresse, die verglichen werden soll.
Rückgabewerte
TRUE
Die beiden IPv4-Adressen sind identisch.
FALSE
Die beiden IPv4-Adressen sind nicht identisch.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSettings
Ein Zeiger auf die Nachrichteneinstellungen oder NULL zum Festlegen der Standardeinstellungen.
Rückgabe
Ein Zeiger auf den Nachrichtenpuffer oder NULL, wenn keine Nachrichtenpuffer verfügbar sind oder Parameter ungültig sind.
Weitere Informationen:
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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aCidr
Ein Zeiger auf einen otIp4Cidr. Dort wird das CIDR-Format gefüllt.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aCounters
Ein Zeiger auf eine otNat64Counters, auf der die Zähler des NAT64-Übersetzers platziert werden.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aCounters
Ein Zeiger auf eine otNat64Counters, auf der die Zähler des NAT64-Übersetzers platziert werden.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in,out] aIterator
Ein Zeiger auf den Iteration. Bei Erfolg wird der Iterator so aktualisiert, dass er auf den nächsten NAT64-Adresszuordnungseintrag verweist. Um den ersten Eintrag zu erhalten, sollte der Iterator auf OT_NAT64_ADDRESS_MAPPING_ITERATOR_INIT gesetzt werden.
[out] aMapping
Ein Zeiger auf einen otNat64AddressMapping, in dem Informationen zum nächsten NAT64-Adresszuordnungseintrag (bei Erfolg) platziert werden.
Rückgabewerte
OT_ERROR_NONE
Die nächsten NAT64-Adresszuordnungsinformationen wurden gefunden (aMapping wurde erfolgreich aktualisiert).
OT_ERROR_NOT_FOUND
Es wurden keine nachfolgenden NAT64-Adresszuordnungsinformationen gefunden.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
OT_NAT64_STATE_DISABLED
NAT64-Präfix-Manager ist deaktiviert.
OT_NAT64_STATE_NOT_RUNNING
NAT64-Präfix-Manager ist aktiviert, wird aber nicht ausgeführt, da der Routing-Manager nicht ausgeführt wird.
OT_NAT64_STATE_IDLE
NAT64-Präfix-Manager ist aktiviert, veröffentlicht aber kein NAT64-Präfix. In der Regel, wenn ein anderer Border-Router ein NAT64-Präfix mit höherer Priorität veröffentlicht.
OT_NAT64_STATE_ACTIVE
Der NAT64-Präfixmanager ist aktiviert und veröffentlicht das NAT64-Präfix im Thread-Netzwerk.

otNat64GetTranslatorState

otNat64State otNat64GetTranslatorState(
  otInstance *aInstance
)

Ruft den Status des NAT64-Übersetzers ab.

Verfügbar, wenn OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
OT_NAT64_STATE_DISABLED
NAT64-Übersetzer ist deaktiviert.
OT_NAT64_STATE_NOT_RUNNING
NAT64-Übersetzer ist aktiviert, aber der Übersetzer ist nicht mit einem gültigen NAT64-Präfix und einem CIDR konfiguriert.
OT_NAT64_STATE_ACTIVE
NAT64-Übersetzer ist aktiviert und übersetzt Pakete.

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
[in] aInstance
Die OpenThread-Instanz.
[out] aIterator
Ein Zeiger auf den zu initialisierenden Iterator.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf den Nachrichtenpuffer, der das IPv4-Datagramm enthält.
Rückgabewerte
OT_ERROR_NONE
Die Nachricht wurde verarbeitet.
OT_ERROR_DROP
Die Nachricht war korrekt formatiert, wurde aber aufgrund von Paketverarbeitungsregeln nicht vollständig verarbeitet.
OT_ERROR_NO_BUFS
Die erforderlichen Nachrichtenpuffer konnten beim Verarbeiten des Datagramms nicht zugeordnet werden.
OT_ERROR_NO_ROUTE
Keine Route zum Host
OT_ERROR_INVALID_SOURCE_ADDRESS
Die Quelladresse ist ungültig, z.B. eine Anycast- oder eine Multicast-Adresse.
OT_ERROR_PARSE
Beim Verarbeiten der Nachricht ist ein falsch formatierter Header aufgetreten.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
Ein boolescher Wert zum Aktivieren/Deaktivieren der NAT64-Funktionen
Weitere Informationen:
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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aCidr
Ein Zeiger auf einen otIp4Cidr für den IPv4-CIDR-Block für NAT64.
Rückgabewerte
OT_ERROR_INVALID_ARGS
Das angegebene CIDR ist kein gültiges IPv4-CIDR für NAT64.
OT_ERROR_NONE
CIDR für NAT64 festgelegt.
Siehe auch:
otBorderRouterSend
otBorderRouterSetReceiveCallback

otNat64SetReceiveIp4Callback

void otNat64SetReceiveIp4Callback(
  otInstance *aInstance,
  otNat64ReceiveIp4Callback aCallback,
  void *aContext
)

Registriert einen Callback, um empfangene IPv4-Datagramme bereitzustellen.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aCallback
Ein Zeiger auf eine Funktion, die beim Empfang eines IPv4-Datagramms aufgerufen wird, oder auf NULL, um den Callback zu deaktivieren.
[in] aContext
Ein Zeiger auf einen anwendungsspezifischen Kontext.

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
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aIp4Address
Ein Zeiger auf die IPv4-Adresse, die in IPv6 umgewandelt werden soll.
[out] aIp6Address
Ein Zeiger auf die synthetisierte IPv6-Adresse.
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.