NAT64
Bu modül, sınır yönlendiricideki NAT64 işleviyle ilgili işlevleri ve struct'ları içerir.
Özet
Bu işlevler yalnızca OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
etkinken kullanılabilir.
Sıralamalar |
|
---|---|
otNat64DropReason{
|
enum Paket bırakma nedenleri. |
otNat64State{
|
enum NAT64 durumları. |
Türdefler |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Bir IPv4 adresini temsil eder. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
NAT64 için adres eşleme kaydını temsil eder. |
otNat64AddressMappingIterator
|
typedef NAT64 adres eşlemelerini yinelemek için kullanılır. |
otNat64Counters
|
typedefstruct otNat64Counters
NAT64 sayaçlarını temsil eder. |
otNat64DropReason
|
typedefenum otNat64DropReason
Paket bırakma nedenleri. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
NAT64 paketleri işlenirken yaşanan hatalar nedeniyle bırakılan paketlerin sayaçlarını temsil eder. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
NAT64 tarafından desteklenen protokollerin sayaçlarını temsil eder. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Bir IPv4 datagramı (NAT64 çevirmeni tarafından çevrilen) alındığında işaretçi çağrılır. |
Değişkenler |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
İşlevler |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
İnsanlar tarafından okunabilir bir IPv4 adres dizesini ikili gösterime dönüştürür.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Adresi bir dizeye dönüştürür.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Kullanıcılar tarafından okunabilir bir IPv4 CIDR dizesini ikili gösterime dönüştürür.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
IPv4 CIDR'yi bir dizeye dönüştürür.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
aIp4Address değerini, RFC 6052'de belirtildiği gibi aIp6Address ürününden NAT64 adres çevirisi gerçekleştirerek ayarlayın. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
İki IPv4 adresinin aynı olup olmadığını test edin.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
NAT64 çevirmene IPv4 mesajı göndermek için yeni bir mesaj arabelleği ayırın.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
NAT64 çevirmeninde yapılandırılan IPv4 CIDR'yi alır.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
NAT64 çevirmen sayaçlarını alır.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
NAT64 çevirmen hatası sayaçlarını alır.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Sonraki AddressEşleme bilgisini alır (yineleyici kullanarak).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
NAT64 ön ek yöneticisinin durumunu alır.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
NAT64 çevirmenin durumunu alır.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Bir
otNat64AddressMappingIterator başlatır. |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Bir IPv4 datagramını IPv6 datagramına çevirir ve Thread arayüzü üzerinden gönderir.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
NAT64 işlevlerini etkinleştirin veya devre dışı bırakın.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Giden çevrilmiş IPv4 paketlerinin kaynak adresini ayarlarken kullanılan CIDR'yi belirler.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Alınan IPv4 verigramlarını sağlamak için bir geri çağırma kaydeder.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
IPv6 adresini, tercih edilen NAT64 ön ekinden ve verilen IPv4 adresinden RFC 6052'de belirtildiği şekilde NAT64 adres çevirisi gerçekleştirerek belirler.
|
Yapılar |
|
---|---|
otIp4Address |
Bir IPv4 adresini temsil eder. |
otIp4Cidr |
Bir IPv4 CIDR bloğunu temsil eder. |
otNat64AddressMapping |
NAT64 için adres eşleme kaydını temsil eder. |
otNat64AddressMappingIterator |
NAT64 adres eşlemelerini yinelemek için kullanılır. |
otNat64Counters |
NAT64 sayaçlarını temsil eder. |
otNat64ErrorCounters |
NAT64 paketleri işlenirken yaşanan hatalar nedeniyle bırakılan paketlerin sayaçlarını temsil eder. |
otNat64ProtocolCounters |
NAT64 tarafından desteklenen protokollerin sayaçlarını temsil eder. |
Birlikler |
|
---|---|
otIp4Address:: |
Sıralamalar
otNat64DropReason
otNat64DropReason
Paket bırakma nedenleri.
Özellikler | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Datagramın ayrıştırılamaması nedeniyle paket düşüşü. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Eşleme bulunamadığı veya eşleme havuzu tükendiği için paket düşüşü. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Bilinmeyen nedenlerle paket bırakma. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Desteklenmeyen IP protokolü nedeniyle paket düşüşü. |
otNat64State
otNat64State
NAT64 durumları.
Özellikler | |
---|---|
OT_NAT64_STATE_ACTIVE
|
BR, bir NAT64 öneki yayınlıyor ve/veya paketleri çeviriyor. |
OT_NAT64_STATE_DISABLED
|
NAT64 devre dışı. |
OT_NAT64_STATE_IDLE
|
NAT64 etkin ancak bu BR etkin bir NAT64 BR değil. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 etkin, ancak NAT64'ün bir veya daha fazla bağımlılığı çalışmıyor. |
Türdefler
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
NAT64 için adres eşleme kaydını temsil eder.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
NAT64 adres eşlemelerini yinelemek için kullanılır.
Bu türdeki alanlar opaktır (yalnızca OpenThread Core tarafından kullanılmak üzere tasarlanmıştır) ve bu nedenle arayan tarafından erişilmemeli veya kullanılmamalıdır.
Bir iterasyon/yineleyici kullanılmadan önce otNat64AddressMappingIteratorInit()
kullanılarak başlatılması ZORUNLUDUR.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
NAT64 paketleri işlenirken yaşanan hatalar nedeniyle bırakılan paketlerin sayaçlarını temsil eder.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
NAT64 tarafından desteklenen protokollerin sayaçlarını temsil eder.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Bir IPv4 datagramı (NAT64 çevirmeni tarafından çevrilen) alındığında işaretçi çağrılır.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
Değişkenler
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
İşlevler
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
İnsanlar tarafından okunabilir bir IPv4 adres dizesini ikili gösterime dönüştürür.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Adresi bir dizeye dönüştürür.
Dize biçimi, adreste dört baytlık dört noktalı gösterimi kullanır (ör. "127.0.0.1").
Oluşturulan dize aBuffer
içine sığmazsa (aSize
karakter içinde) dize kısaltılır, ancak çıkarılan dize her zaman boş sona erer.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Kullanıcılar tarafından okunabilir bir IPv4 CIDR dizesini ikili gösterime dönüştürür.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
IPv4 CIDR'yi bir dizeye dönüştürür.
Dize biçimi, adreste ön ek uzunluğuyla birlikte (ör. "127.0.0.1/32").
Oluşturulan dize aBuffer
içine sığmazsa (aSize
karakter içinde) dize kısaltılır, ancak çıkarılan dize her zaman boş sona erer.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
aIp4Address
değerini, RFC 6052'de belirtildiği gibi aIp6Address
ürününden NAT64 adres çevirisi gerçekleştirerek ayarlayın.
NAT64 aPrefixLength
şu değerlerden biri OLMALIDIR: 32, 40, 48, 56, 64 veya 96. Aksi takdirde, bu yöntemin davranışı tanımlanmamış olur.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
İki IPv4 adresinin aynı olup olmadığını test edin.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
NAT64 çevirmene IPv4 mesajı göndermek için yeni bir mesaj arabelleği ayırın.
Bu işlev tarafından ayrılan mesaj arabelleklerinde 20 bayt (IPv6 üstbilgilerinin boyutu ile IPv4 üst bilgi boyutları arasındaki fark) ayrılmış olur.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
Kullanılabilir mesaj arabelleği yoksa veya parametreler geçersizse mesaj arabelleğine veya NULL değerine işaret eder.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
NAT64 çevirmeninde yapılandırılan IPv4 CIDR'yi alır.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
NAT64 çevirmen sayaçlarını alır.
Sayaç, örneğin başlatılmasından itibaren sayılır.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
NAT64 çevirmen hatası sayaçlarını alır.
OpenThread örneği başlatıldığında sayaçlar sıfır olarak başlatılır.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Sonraki AddressEşleme bilgisini alır (yineleyici kullanarak).
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
NAT64 ön ek yöneticisinin durumunu alır.
OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
NAT64 çevirmenin durumunu alır.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Bir otNat64AddressMappingIterator
başlatır.
Bir yinelemenin kullanılmadan önce başlatılması ZORUNLUDUR.
Eşleme bilgilerinin başlangıcından itibaren yeniden başlatmak için bir iterasyon tekrar başlatılabilir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Bir IPv4 datagramını IPv6 datagramına çevirir ve Thread arayüzü üzerinden gönderir.
Arayan, bu aramayı yaparken aMessage
sahipliğini aktarır. OpenThread, OT_ERROR_NONE
dışında bir değerin döndürülmesi de dahil olmak üzere işleme tamamlandığında aMessage
alanını boşaltır.
Ayrıntılar | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||||||
Döndürülen Değerler |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
NAT64 işlevlerini etkinleştirin veya devre dışı bırakın.
Not: NAT64 Çevirmeni (OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinken) ve NAT64 Önek Yöneticisi'ni (OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
etkinken) içerir.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
etkinleştirildiğinde, devre dışı olan ayar true (doğru) değerine ayarlandığında çevirmendeki harita tablosunu sıfırlar.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
veya OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Giden çevrilmiş IPv4 paketlerinin kaynak adresini ayarlarken kullanılan CIDR'yi belirler.
Yalnızca OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE etkinleştirildiğinde kullanılabilir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
Döndürülen Değerler |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Alınan IPv4 verigramlarını sağlamak için bir geri çağırma kaydeder.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
IPv6 adresini, tercih edilen NAT64 ön ekinden ve verilen IPv4 adresinden RFC 6052'de belirtildiği şekilde NAT64 adres çevirisi gerçekleştirerek belirler.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
İadeler |
OT_ERROR_NONE IPv6 adresi NAT64 önekinden ve IPv4 adresinden başarıyla sentezlendi.
|
||||||
İadeler |
OT_ERROR_INVALID_STATE Ağ verilerinde geçerli bir NAT64 öneki yok.
|
Makrolar
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
IPv4 adresinin boyutu (bayt)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
000.000.000.000 uzunluk ve NUL son eki.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
000.000.000.000/00 uzunluk ve NUL son eki.
Kaynaklar
OpenThread API Referans konuları, GitHub'da bulunan kaynak koddan gelir. Daha fazla bilgi edinmek veya dokümanlarımıza katkıda bulunmak için Kaynaklar bölümüne bakın.