NAT64
Ten moduł zawiera funkcje i struktury NAT64 na routerze granicznym.
Podsumowanie
Te funkcje są dostępne tylko wtedy, gdy włączona jest usługa OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Wyliczenia |
|
---|---|
otNat64DropReason{
|
enum | typ wyliczeniowy Przyczyny upuszczania pakietów. |
otNat64State{
|
enum | typ wyliczeniowy w stanach NAT64. |
Definicje typów |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Reprezentuje adres IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Reprezentuje rekord mapowania adresu dla NAT64. |
otNat64AddressMappingIterator
|
typedef Służy do iteracji przez mapowania adresów NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Reprezentuje liczniki NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Przyczyny upuszczania pakietów. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Reprezentuje liczniki utraconych pakietów w wyniku błędów podczas obsługi pakietów NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Reprezentuje liczniki protokołów obsługiwanych przez NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Wskaźnik jest wywoływany po odebraniu datagramu IPv4 (przetłumaczonego przez tłumacza NAT64). |
Zmienne |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
Funkcje |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Konwertuje zrozumiały dla człowieka ciąg adresu IPv4 na binarną reprezentację.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Konwertuje adres na ciąg znaków.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Konwertuje czytelny dla człowieka ciąg CIDR IPv4 w reprezentację binarną.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Konwertuje CIDR IPv4 na ciąg znaków.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Ustaw
aIp4Address , wykonując translację adresu NAT64 z aIp6Address zgodnie ze standardem RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Sprawdź, czy 2 adresy IPv4 są takie same.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Przydziel nowy bufor wiadomości do wysyłania wiadomości IPv4 do tłumacza NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Pobiera CIDR IPv4 skonfigurowany w tłumaczeniu NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Pobiera liczniki translacji NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Pobiera liczniki błędów tłumacza NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Pobiera następne informacje AddressMapping (przy użyciu iteratora).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Pobiera stan menedżera prefiksów NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Pobiera stan tłumacza NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Inicjuje
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Tłumaczy datagram IPv4 na datagram IPv6 i wysyła przez interfejs Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Włącz lub wyłącz funkcje NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Ustawia CIDR używany podczas ustawiania adresu źródłowego wychodzących pakietów IPv4.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Rejestruje wywołanie zwrotne w celu dostarczenia odebranych datagramów IPv4.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Ustawia adres IPv6 przez wykonanie translacji adresu NAT64 z preferowanego prefiksu NAT64 i podanego adresu IPv4 zgodnie z RFC 6052.
|
Konstrukcja |
|
---|---|
otIp4Address |
Reprezentuje adres IPv4. |
otIp4Cidr |
Reprezentuje blok CIDR IPv4. |
otNat64AddressMapping |
Reprezentuje rekord mapowania adresu dla NAT64. |
otNat64AddressMappingIterator |
Służy do iteracji przez mapowania adresów NAT64. |
otNat64Counters |
Reprezentuje liczniki NAT64. |
otNat64ErrorCounters |
Reprezentuje liczniki utraconych pakietów w wyniku błędów podczas obsługi pakietów NAT64. |
otNat64ProtocolCounters |
Reprezentuje liczniki protokołów obsługiwanych przez NAT64. |
Związki |
|
---|---|
otIp4Address:: |
Wyliczenia
otNat64DropReason
otNat64DropReason
Przyczyny upuszczania pakietów.
Właściwości | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Usunięcie pakietu z powodu nie udało się przeanalizować datagramu. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Pakiet został utracony z powodu nieznalezienia mapowań lub wyczerpania puli mapowania. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Upuszczenie pakietu z nieznanych przyczyn. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Pakiet utracony z powodu nieobsługiwanego protokołu IP. |
otNat64State
otNat64State
w stanach NAT64.
Właściwości | |
---|---|
OT_NAT64_STATE_ACTIVE
|
BR publikuje prefiks NAT64 lub pakiety translacji. |
OT_NAT64_STATE_DISABLED
|
Funkcja NAT64 jest wyłączona. |
OT_NAT64_STATE_IDLE
|
Usługa NAT64 jest włączona, ale ten BR nie jest aktywnym identyfikatorem NAT64. |
OT_NAT64_STATE_NOT_RUNNING
|
Usługa NAT64 jest włączona, ale co najmniej jedna zależność NAT64 nie jest uruchomiona. |
Definicje typów
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Reprezentuje rekord mapowania adresu dla NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Służy do iteracji przez mapowania adresów NAT64.
Pola tego typu są nieprzejrzyste (przeznaczone tylko do użytku przez rdzeni OpenThread), więc element wywołujący nie powinien ich używać ani uzyskiwać do nich dostępu.
Przed użyciem iteratora MUSI zostać zainicjowana za pomocą właściwości otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Reprezentuje liczniki utraconych pakietów w wyniku błędów podczas obsługi pakietów NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Reprezentuje liczniki protokołów obsługiwanych przez NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Wskaźnik jest wywoływany po odebraniu datagramu IPv4 (przetłumaczonego przez tłumacza NAT64).
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Zmienne
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
Funkcje
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Konwertuje zrozumiały dla człowieka ciąg adresu IPv4 na binarną reprezentację.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Konwertuje adres na ciąg znaków.
Format ciągu znaków wykorzystuje zapis 4 bajtów w adresie zawierający cztery bajty (np. „127.0.0.1”).
Jeśli powstały ciąg znaków nie mieści się w polu aBuffer
(łącznie ze znakami aSize
), zostanie on obcięty, ale wyjściowy ciąg będzie zawsze miał wartość null.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Konwertuje czytelny dla człowieka ciąg CIDR IPv4 w reprezentację binarną.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Konwertuje CIDR IPv4 na ciąg znaków.
Format ciągu znaków wykorzystuje zapis czterech bajtów w adresie z długością prefiksu (np. „127.0.0.1/32”).
Jeśli powstały ciąg znaków nie mieści się w polu aBuffer
(łącznie ze znakami aSize
), zostanie on obcięty, ale wyjściowy ciąg będzie zawsze miał wartość null.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Ustaw aIp4Address
, wykonując translację adresu NAT64 z aIp6Address
zgodnie ze standardem RFC 6052.
aPrefixLength
NAT64 MUSI mieć jedną z tych wartości: 32, 40, 48, 56, 64 lub 96. W przeciwnym razie działanie tej metody będzie nieokreślone.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Sprawdź, czy 2 adresy IPv4 są takie same.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Przydziel nowy bufor wiadomości do wysyłania wiadomości IPv4 do tłumacza NAT64.
Bufory wiadomości przydzielone przez tę funkcję będą miały zarezerwowane 20 bajtów (różnica między rozmiarem nagłówków IPv6 i rozmiarów nagłówków IPv4).
Dostępne, gdy włączono OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwroty |
Wskaźnik do bufora wiadomości lub wartość NULL, jeśli nie są dostępne żadne bufory wiadomości lub parametry są nieprawidłowe.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Pobiera CIDR IPv4 skonfigurowany w tłumaczeniu NAT64.
Dostępne, gdy włączono OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Pobiera liczniki translacji NAT64.
Licznik jest liczony od zainicjowania instancji.
Dostępne, gdy włączono OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Pobiera liczniki błędów tłumacza NAT64.
Liczniki są inicjowane do zera po zainicjowaniu instancji OpenThread.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Pobiera następne informacje AddressMapping (przy użyciu iteratora).
Dostępne, gdy włączono OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Pobiera stan menedżera prefiksów NAT64.
Dostępne, gdy włączono OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Pobiera stan tłumacza NAT64.
Dostępne, gdy włączono OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Inicjuje otNat64AddressMappingIterator
.
Przed użyciem iteratora MUSI zostać zainicjowany.
Iterator można ponownie zainicjować, aby uruchomić ponownie od początku informacji o mapowaniu.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Tłumaczy datagram IPv4 na datagram IPv6 i wysyła przez interfejs Thread.
Podczas nawiązywania połączenia rozmówca przenosi własność konta aMessage
. Po zakończeniu przetwarzania OpenThread zwolni aMessage
, nawet jeśli zostanie zwrócona wartość inna niż OT_ERROR_NONE
.
Szczegóły | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||||||
Zwracane wartości |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Włącz lub wyłącz funkcje NAT64.
Uwaga: obejmuje to translatora NAT64 (gdy włączony jest interfejs OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
) i menedżera prefiksów NAT64 (gdy włączona jest zasada OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
).
Gdy zasada OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
jest włączona, wyłączenie tej opcji powoduje zresetowanie tabeli mapowania w tłumacze.
Dostępne, gdy włączona jest zasada OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
lub OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Ustawia CIDR używany podczas ustawiania adresu źródłowego wychodzących pakietów IPv4.
Jest dostępna tylko wtedy, gdy włączona jest opcja OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBorderRouterSend
otBorderRouterSetReceivedCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Rejestruje wywołanie zwrotne w celu dostarczenia odebranych datagramów IPv4.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Ustawia adres IPv6 przez wykonanie translacji adresu NAT64 z preferowanego prefiksu NAT64 i podanego adresu IPv4 zgodnie z RFC 6052.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwroty |
OT_ERROR_NONE Udało się syntetyzować adres IPv6 z prefiksu NAT64 i adresu IPv4.
|
||||||
Zwroty |
OT_ERROR_FAILED_STATE Brak prawidłowego prefiksu NAT64 w danych sieci.
|
Makra
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Rozmiar adresu IPv4 (bajty)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Długość 000 000 000 000 plus przyrostek NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Długość 000 000 000 000/00 z przyrostkiem NUL.
Zasoby
Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.