NAT64
Mô-đun này bao gồm các hàm và cấu trúc cho hàm NAT64 trên bộ định tuyến biên.
Tóm tắt
Các hàm này chỉ có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Bảng liệt kê |
|
---|---|
otNat64DropReason{
|
enum Lý do rớt gói dữ liệu. |
otNat64State{
|
enum Tiểu bang của NAT64. |
Typedef |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
Đại diện cho địa chỉ IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
Đại diện cho bản ghi ánh xạ địa chỉ của NAT64. |
otNat64AddressMappingIterator
|
typedef Dùng để lặp lại qua quá trình ánh xạ địa chỉ NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
Đại diện cho bộ đếm của NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
Lý do rớt gói dữ liệu. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
Biểu thị bộ đếm của các gói bị bỏ qua do lỗi khi xử lý gói NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
Biểu thị bộ đếm của các giao thức do NAT64 hỗ trợ. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
Con trỏ được gọi khi nhận được gói dữ liệu IPv4 (được dịch bởi trình dịch NAT64). |
Biến |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
Hàm |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
Chuyển đổi chuỗi địa chỉ IPv4 mà con người có thể đọc được thành biểu diễn nhị phân.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
Chuyển đổi địa chỉ thành một chuỗi.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
Chuyển đổi chuỗi CIDR IPv4 mà con người có thể đọc được thành biểu diễn nhị phân.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
Chuyển đổi CIDR IPv4 thành một chuỗi.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
Thiết lập
aIp4Address bằng cách dịch địa chỉ NAT64 từ aIp6Address như chỉ định trong RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
Kiểm tra xem 2 địa chỉ IPv4 có giống nhau hay không.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
Phân bổ vùng đệm thông báo mới để gửi thông báo IPv4 đến trình dịch NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
Lấy CIDR IPv4 được định cấu hình trong trình biên dịch NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
Lấy bộ đếm trình dịch NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
Lấy bộ đếm lỗi của trình dịch NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
Nhận thông tin AddressMapping tiếp theo (bằng cách sử dụng một trình lặp).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
Nhận trạng thái của trình quản lý tiền tố NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
Lấy trạng thái của trình dịch NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
Khởi động một
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
Chuyển đổi gói dữ liệu IPv4 thành gói dữ liệu IPv6 và gửi qua giao diện Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Bật hoặc tắt các hàm NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
Đặt CIDR được dùng khi thiết lập địa chỉ nguồn của các gói IPv4 đã dịch đi.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
Đăng ký một lệnh gọi lại để cung cấp gói dữ liệu IPv4 nhận được.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
Thiết lập địa chỉ IPv6 bằng cách dịch địa chỉ NAT64 từ tiền tố NAT64 ưu tiên và địa chỉ IPv4 đã cho như chỉ định trong RFC 6052
|
Cấu trúc |
|
---|---|
otIp4Address |
Đại diện cho địa chỉ IPv4. |
otIp4Cidr |
Đại diện cho một khối CIDR IPv4. |
otNat64AddressMapping |
Đại diện cho bản ghi ánh xạ địa chỉ của NAT64. |
otNat64AddressMappingIterator |
Dùng để lặp lại qua quá trình ánh xạ địa chỉ NAT64. |
otNat64Counters |
Đại diện cho bộ đếm của NAT64. |
otNat64ErrorCounters |
Biểu thị bộ đếm của các gói bị bỏ qua do lỗi khi xử lý gói NAT64. |
otNat64ProtocolCounters |
Biểu thị bộ đếm của các giao thức do NAT64 hỗ trợ. |
Hiệp hội |
|
---|---|
otIp4Address:: |
Bảng liệt kê
otNat64DropReason
otNat64DropReason
Lý do rớt gói dữ liệu.
Thuộc tính | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
Gói dữ liệu bị rớt do không phân tích được cú pháp của gói dữ liệu. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
Gói bị bỏ do không tìm thấy bản đồ ánh xạ hoặc nhóm ánh xạ đã hết. |
OT_NAT64_DROP_REASON_UNKNOWN
|
Bỏ gói dữ liệu vì lý do không xác định. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
Gói dữ liệu bị rớt do giao thức IP không được hỗ trợ. |
otNat64State
otNat64State
Tiểu bang của NAT64.
Thuộc tính | |
---|---|
OT_NAT64_STATE_ACTIVE
|
Brazil đang phát hành tiền tố NAT64 và/hoặc dịch gói. |
OT_NAT64_STATE_DISABLED
|
NAT64 đã bị tắt. |
OT_NAT64_STATE_IDLE
|
NAT64 đã được bật, nhưng BR này không phải là NAT64 BR đang hoạt động. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 được bật, nhưng một hoặc nhiều phần phụ thuộc của NAT64 không chạy. |
Typedef
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
Đại diện cho bản ghi ánh xạ địa chỉ của NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
Dùng để lặp lại qua quá trình ánh xạ địa chỉ NAT64.
Các trường trong loại này không rõ ràng (chỉ dành cho lõi OpenThread sử dụng) và do đó, phương thức gọi không được truy cập hoặc sử dụng.
Trước khi sử dụng trình lặp, bạn PHẢI khởi tạo bằng otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
Biểu thị bộ đếm của các gói bị bỏ qua do lỗi khi xử lý gói NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
Biểu thị bộ đếm của các giao thức do NAT64 hỗ trợ.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
Con trỏ được gọi khi nhận được gói dữ liệu IPv4 (được dịch bởi trình dịch NAT64).
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
Biến
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
Hàm
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
Chuyển đổi chuỗi địa chỉ IPv4 mà con người có thể đọc được thành biểu diễn nhị phân.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
Chuyển đổi địa chỉ thành một chuỗi.
Định dạng chuỗi sử dụng ký hiệu bốn dấu chấm gồm 4 byte trong địa chỉ (ví dụ: "127.0.0.1").
Nếu chuỗi kết quả không vừa với aBuffer
(trong phạm vi aSize
ký tự), thì chuỗi sẽ bị cắt bớt nhưng chuỗi được trả về sẽ luôn kết thúc rỗng.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
Chuyển đổi chuỗi CIDR IPv4 mà con người có thể đọc được thành biểu diễn nhị phân.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
Chuyển đổi CIDR IPv4 thành một chuỗi.
Định dạng chuỗi sử dụng ký hiệu bốn dấu chấm gồm 4 byte trong địa chỉ có độ dài của tiền tố (ví dụ: "127.0.0.1/32").
Nếu chuỗi kết quả không vừa với aBuffer
(trong phạm vi aSize
ký tự), thì chuỗi sẽ bị cắt bớt nhưng chuỗi được trả về sẽ luôn kết thúc rỗng.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
Thiết lập aIp4Address
bằng cách dịch địa chỉ NAT64 từ aIp6Address
như chỉ định trong RFC 6052.
aPrefixLength
NAT64 PHẢI là một trong các giá trị sau: 32, 40, 48, 56, 64 hoặc 96, nếu không hành vi của phương thức này là không xác định.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
Kiểm tra xem 2 địa chỉ IPv4 có giống nhau hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
Phân bổ vùng đệm thông báo mới để gửi thông báo IPv4 đến trình dịch NAT64.
Các vùng đệm thư được phân bổ bởi chức năng này sẽ có 20 byte (sự khác biệt giữa kích thước của tiêu đề IPv6 và kích thước tiêu đề IPv4).
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Trả về |
Con trỏ tới vùng đệm thông báo hoặc giá trị NULL nếu không có vùng đệm thông báo nào hoặc các tham số không hợp lệ.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
Lấy CIDR IPv4 được định cấu hình trong trình biên dịch NAT64.
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
Lấy bộ đếm trình dịch NAT64.
Bộ đếm được tính kể từ khi thực thể được khởi tạo.
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
Lấy bộ đếm lỗi của trình dịch NAT64.
Bộ đếm được khởi tạo về 0 khi khởi tạo thực thể OpenThread.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
Nhận thông tin AddressMapping tiếp theo (bằng cách sử dụng một trình lặp).
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
Nhận trạng thái của trình quản lý tiền tố NAT64.
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||
Giá trị trả về |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
Lấy trạng thái của trình dịch NAT64.
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
Khởi động một otNat64AddressMappingIterator
.
Bạn PHẢI khởi tạo một biến lặp trước khi sử dụng.
Bạn có thể khởi chạy lại một trình lặp lại để khởi động lại từ điểm bắt đầu thông tin ánh xạ.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
Chuyển đổi gói dữ liệu IPv4 thành gói dữ liệu IPv6 và gửi qua giao diện Thread.
Người gọi chuyển quyền sở hữu aMessage
khi thực hiện cuộc gọi này. OpenThread sẽ giải phóng aMessage
khi quá trình xử lý hoàn tất, kể cả khi một giá trị không phải là OT_ERROR_NONE
được trả về.
Thông tin chi tiết | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
|
||||||||||||
Giá trị trả về |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
Bật hoặc tắt các hàm NAT64.
Lưu ý: Bao gồm Trình biên dịch NAT64 (khi bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
) và Trình quản lý tiền tố NAT64 (khi bật OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
).
Khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
, việc tắt chế độ cài đặt thành true sẽ đặt lại bảng ánh xạ trong trình biên dịch.
Có sẵn khi bạn bật OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
hoặc OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
Đặt CIDR được dùng khi thiết lập địa chỉ nguồn của các gói IPv4 đã dịch đi.
Chỉ có sẵn khi bật chế độ Open tấp_CONFIG_NAT64_TRANSLATOR_ENABLE.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
Đăng ký một lệnh gọi lại để cung cấp gói dữ liệu IPv4 nhận được.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
Thiết lập địa chỉ IPv6 bằng cách dịch địa chỉ NAT64 từ tiền tố NAT64 ưu tiên và địa chỉ IPv4 đã cho như chỉ định trong RFC 6052
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Trả về |
OT_ERROR_NONE Tổng hợp thành công địa chỉ IPv6 từ tiền tố NAT64 và địa chỉ IPv4.
|
||||||
Trả về |
OT_ERROR_INVALID_STATE Không có tiền tố NAT64 hợp lệ trong dữ liệu mạng.
|
Macro
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
Kích thước của địa chỉ IPv4 (byte)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
Độ dài 000.000.000.000 cộng với một hậu tố NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
Độ dài 000.000.000.000/00 cộng với một hậu tố NUL.
Tài nguyên
Các chủ đề tham khảo API OpenThread bắt nguồn từ mã nguồn, có trên GitHub. Để biết thêm thông tin hoặc để đóng góp cho tài liệu của chúng tôi, hãy tham khảo Tài nguyên.