NAT64
Modul ini mencakup fungsi dan struktur untuk fungsi NAT64 di router pembatas.
Ringkasan
Fungsi ini hanya tersedia jika OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
diaktifkan.
Enumerasi |
|
---|---|
otNat64DropReason{
|
enum Alasan penghentian paket. |
otNat64State{
|
enum Status NAT64. |
Typedef |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Mewakili alamat IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Mewakili data pemetaan alamat untuk NAT64. |
otNat64AddressMappingIterator
|
typedef Digunakan untuk melakukan iterasi melalui pemetaan alamat NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Mewakili penghitung untuk NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Alasan penghentian paket. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Menggambarkan penghitung paket yang dilepas karena error saat menangani paket NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Mewakili penghitung untuk protokol yang didukung oleh NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Pointer dipanggil ketika datagram IPv4 (diterjemahkan oleh penerjemah NAT64) diterima. |
Variabel |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
Fungsi |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Mengonversi string alamat IPv4 yang dapat dibaca manusia menjadi representasi biner.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Mengonversi alamat menjadi string.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Mengonversi string CIDR IPv4 yang dapat dibaca manusia menjadi representasi biner.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Mengonversi CIDR IPv4 menjadi string.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Tetapkan
aIp4Address dengan melakukan terjemahan alamat NAT64 dari aIp6Address seperti yang ditentukan dalam RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Uji apakah dua alamat IPv4 adalah sama.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Mengalokasikan buffering pesan baru untuk mengirim pesan IPv4 ke penerjemah NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Mendapatkan CIDR IPv4 yang dikonfigurasi di penerjemah NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Mendapatkan penghitung penerjemah NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Mendapatkan penghitung error penerjemah NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Mendapatkan info AddressMapping berikutnya (menggunakan iterator).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Mendapatkan status pengelola awalan NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Mendapatkan status penerjemah NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Menginisialisasi
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Menerjemahkan datagram IPv4 ke datagram IPv6 dan mengirimkannya melalui antarmuka Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Mengaktifkan atau menonaktifkan fungsi NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Menetapkan CIDR yang digunakan saat menetapkan alamat sumber paket IPv4 keluar yang diterjemahkan.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Mendaftarkan callback untuk menyediakan datagram IPv4 yang diterima.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Menyetel alamat IPv6 dengan melakukan penerjemahan alamat NAT64 dari awalan NAT64 yang disukai dan alamat IPv4 yang diberikan seperti yang ditentukan dalam RFC 6052.
|
Struct |
|
---|---|
otIp4Address |
Mewakili alamat IPv4. |
otIp4Cidr |
Menggambarkan blok CIDR IPv4. |
otNat64AddressMapping |
Mewakili data pemetaan alamat untuk NAT64. |
otNat64AddressMappingIterator |
Digunakan untuk melakukan iterasi melalui pemetaan alamat NAT64. |
otNat64Counters |
Mewakili penghitung untuk NAT64. |
otNat64ErrorCounters |
Menggambarkan penghitung paket yang dilepas karena error saat menangani paket NAT64. |
otNat64ProtocolCounters |
Mewakili penghitung untuk protokol yang didukung oleh NAT64. |
Serikat |
|
---|---|
otIp4Address:: |
Enumerasi
otNat64DropReason
otNat64DropReason
Alasan penghentian paket.
Properti | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Penurunan paket karena gagal mengurai datagram. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Paket dihapus karena pemetaan tidak ditemukan atau kumpulan pemetaan habis. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Paket tiba karena alasan yang tidak diketahui. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Paket hilang karena protokol IP tidak didukung. |
otNat64State
otNat64State
Status NAT64.
Properti | |
---|---|
OT_NAT64_STATE_ACTIVE
|
BR memublikasikan awalan NAT64 dan/atau menerjemahkan paket. |
OT_NAT64_STATE_DISABLED
|
NAT64 dinonaktifkan. |
OT_NAT64_STATE_IDLE
|
NAT64 diaktifkan, tetapi BR ini bukan NAT64 BR aktif. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 diaktifkan, tetapi satu atau beberapa dependensi NAT64 tidak berjalan. |
Typedef
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Mewakili data pemetaan alamat untuk NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Digunakan untuk melakukan iterasi melalui pemetaan alamat NAT64.
Kolom dalam jenis ini buram (hanya ditujukan untuk digunakan oleh inti OpenThread) sehingga tidak boleh diakses atau digunakan oleh pemanggil.
Sebelum menggunakan iterator, iterator HARUS diinisialisasi menggunakan otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Menggambarkan penghitung paket yang dilepas karena error saat menangani paket NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Mewakili penghitung untuk protokol yang didukung oleh NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Pointer dipanggil ketika datagram IPv4 (diterjemahkan oleh penerjemah NAT64) diterima.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Variabel
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
Fungsi
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Mengonversi string alamat IPv4 yang dapat dibaca manusia menjadi representasi biner.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Mengonversi alamat menjadi string.
Format string menggunakan notasi titik-titik empat byte dalam alamat (mis., "127.0.0.1").
Jika string yang dihasilkan tidak sesuai dengan aBuffer
(dalam karakter aSize
-nya), string akan terpotong tetapi string yang dihasilkan selalu dihentikan null.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Mengonversi string CIDR IPv4 yang dapat dibaca manusia menjadi representasi biner.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Mengonversi CIDR IPv4 menjadi string.
Format string menggunakan notasi bertitik empat byte dalam alamat dengan panjang awalan (mis., "127.0.0.1/32").
Jika string yang dihasilkan tidak sesuai dengan aBuffer
(dalam karakter aSize
-nya), string akan terpotong tetapi string yang dihasilkan selalu dihentikan null.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Tetapkan aIp4Address
dengan melakukan terjemahan alamat NAT64 dari aIp6Address
seperti yang ditentukan dalam RFC 6052.
aPrefixLength
NAT64 HARUS berupa salah satu dari nilai berikut: 32, 40, 48, 56, 64, atau 96. Jika tidak, perilaku metode ini tidak dapat ditentukan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Uji apakah dua alamat IPv4 adalah sama.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Mengalokasikan buffering pesan baru untuk mengirim pesan IPv4 ke penerjemah NAT64.
Buffering pesan yang dialokasikan oleh fungsi ini akan memiliki 20 byte (perbedaan antara ukuran header IPv6 dan ukuran header IPv4) yang dicadangkan.
Tersedia jika OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke buffer pesan atau NULL jika tidak ada buffer pesan yang tersedia atau parameter tidak valid.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Mendapatkan CIDR IPv4 yang dikonfigurasi di penerjemah NAT64.
Tersedia jika OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Mendapatkan penghitung penerjemah NAT64.
Penghitung dihitung sejak instance diinisialisasi.
Tersedia jika OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Mendapatkan penghitung error penerjemah NAT64.
Penghitung diinisialisasi ke nol saat instance OpenThread diinisialisasi.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Mendapatkan info AddressMapping berikutnya (menggunakan iterator).
Tersedia jika OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Mendapatkan status pengelola awalan NAT64.
Tersedia jika OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
diaktifkan.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Mendapatkan status penerjemah NAT64.
Tersedia jika OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Menginisialisasi otNat64AddressMappingIterator
.
Iterator HARUS diinisialisasi sebelum digunakan.
Iterator dapat diinisialisasi lagi untuk memulai ulang dari awal info pemetaan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Menerjemahkan datagram IPv4 ke datagram IPv6 dan mengirimkannya melalui antarmuka Thread.
Penelepon mentransfer kepemilikan aMessage
saat melakukan panggilan ini. OpenThread akan membebaskan aMessage
saat pemrosesan selesai, termasuk saat nilai selain OT_ERROR_NONE
ditampilkan.
Detail | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Nilai Pengembalian |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Mengaktifkan atau menonaktifkan fungsi NAT64.
Catatan: Ini termasuk Penerjemah NAT64 (saat OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan) dan Prefix Manager NAT64 (saat OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
diaktifkan).
Jika OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
diaktifkan, menyetel dinonaktifkan ke benar (true) akan mereset tabel pemetaan di penerjemah.
Tersedia saat OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
atau OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Menetapkan CIDR yang digunakan saat menetapkan alamat sumber paket IPv4 keluar yang diterjemahkan.
Hanya tersedia jika OPENANCHOR_CONFIG_NAT64_TRANSLATOR_ENABLE diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Mendaftarkan callback untuk menyediakan datagram IPv4 yang diterima.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Menyetel alamat IPv6 dengan melakukan penerjemahan alamat NAT64 dari awalan NAT64 yang disukai dan alamat IPv4 yang diberikan seperti yang ditentukan dalam RFC 6052.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Hasil |
OT_ERROR_NONE Berhasil menyintesis alamat IPv6 dari awalan NAT64 dan alamat IPv4.
|
||||||
Hasil |
OT_ERROR_INVALID_STATE Tidak ada awalan NAT64 yang valid dalam data jaringan.
|
Makro
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Ukuran alamat IPv4 (byte)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Panjang 000.000.000.000 ditambah akhiran NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Panjang 000.000.000.000/00 ditambah akhiran NUL.
Referensi
Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.