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{
  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
Lý do rớt gói dữ liệu.
otNat64State{
  OT_NAT64_STATE_DISABLED = 0,
  OT_NAT64_STATE_NOT_RUNNING,
  OT_NAT64_STATE_IDLE,
  OT_NAT64_STATE_ACTIVE
}
enum
Tiểu bang của NAT64.

Typedef

otIp4Address typedef
struct otIp4Address
Đại diện cho địa chỉ IPv4.
otIp4Cidr typedef
struct otIp4Cidr
otNat64AddressMapping typedef
Đạ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 typedef
Đại diện cho bộ đếm của NAT64.
otNat64DropReason typedef
Lý do rớt gói dữ liệu.
otNat64ErrorCounters typedef
Biểu thị bộ đếm của các gói bị bỏ qua do lỗi khi xử lý gói NAT64.
otNat64ProtocolCounters typedef
Biểu thị bộ đếm của các giao thức do NAT64 hỗ trợ.
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext) typedef
void(*
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

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

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

otIp4Address

struct otIp4Address otIp4Address

Đại diện cho địa chỉ IPv4.

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().

otNat64Counters

struct otNat64Counters otNat64Counters

Đại diện cho bộ đếm của NAT64.

otNat64DropReason

enum otNat64DropReason otNat64DropReason

Lý do rớt gói dữ liệu.

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ố
[in] aMessage
Con trỏ đến vùng đệm thông báo chứa gói dữ liệu IPv6 nhận được. Hàm này chuyển quyền sở hữu của aMessage cho trình nhận lệnh gọi lại. Người nhận lệnh gọi lại sẽ giải phóng tin nhắn sau khi xử lý.
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

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ố
[in] aString
Con trỏ đến một chuỗi kết thúc có giá trị NULL.
[out] aAddress
Con trỏ đến địa chỉ IPv4.
Giá trị trả về
OT_ERROR_NONE
Đã phân tích cú pháp chuỗi thành công.
OT_ERROR_INVALID_ARGS
Không thể phân tích cú pháp chuỗi này.

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ố
[in] aAddress
Con trỏ đến địa chỉ IPv4 (KHÔNG ĐƯỢC là NULL).
[out] aBuffer
Con trỏ đến một mảng char để xuất chuỗi (KHÔNG ĐƯỢC là nullptr).
[in] aSize
Kích thước của aBuffer (tính bằng byte).

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ố
[in] aString
Con trỏ đến một chuỗi kết thúc có giá trị NULL.
[out] aCidr
Con trỏ đến một CIDR IPv4.
Giá trị trả về
OT_ERROR_NONE
Đã phân tích cú pháp chuỗi thành công.
OT_ERROR_INVALID_ARGS
Không thể phân tích cú pháp chuỗi này.

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ố
[in] aCidr
Con trỏ đến một CIDR IPv4 (PHẢI KHÔNG là NULL).
[out] aBuffer
Con trỏ đến một mảng char để xuất chuỗi (KHÔNG ĐƯỢC là nullptr).
[in] aSize
Kích thước của aBuffer (tính bằng byte).

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ố
[in] aPrefixLength
Độ dài tiền tố cần dùng để dịch IPv4/IPv6.
[in] aIp6Address
Con trỏ đến một địa chỉ IPv6.
[out] aIp4Address
Con trỏ để xuất địa chỉ IPv4.

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ố
[in] aFirst
Con trỏ tới địa chỉ IPv4 đầu tiên để so sánh.
[in] aSecond
Con trỏ tới địa chỉ IPv4 thứ hai để so sánh.
Giá trị trả về
TRUE
Hai địa chỉ IPv4 này giống nhau.
FALSE
Hai địa chỉ IPv4 này không giống nhau.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSettings
Con trỏ đến phần cài đặt thông báo hoặc giá trị NULL để đặt chế độ cài đặt mặc định.
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ệ.
Xem thêm:
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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[out] aCidr
Con trỏ đến một otIp4Cidr. Vị trí sẽ điền CIDR.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[out] aCounters
Con trỏ đến otNat64Counters nơi đặt bộ đếm của trình dịch NAT64.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[out] aCounters
Con trỏ đến otNat64Counters nơi đặt bộ đếm của trình dịch NAT64.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in,out] aIterator
Một con trỏ đến biến lặp. Sau khi thành công, trình lặp sẽ được cập nhật để trỏ đến bản ghi ánh xạ địa chỉ NAT64 tiếp theo. Để nhận được mục nhập đầu tiên, trình lặp phải được đặt thành OT_NAT64_ADDRESS_MAPPING_ITERATOR_INIT.
[out] aMapping
Con trỏ đến otNat64AddressMapping nơi thông tin bản ghi ánh xạ địa chỉ NAT64 tiếp theo được đặt (khi thành công).
Giá trị trả về
OT_ERROR_NONE
Đã tìm thấy thông tin ánh xạ địa chỉ NAT64 tiếp theo (aMapping đã được cập nhật thành công).
OT_ERROR_NOT_FOUND
Không tìm thấy thông tin ánh xạ địa chỉ NAT64 tiếp theo.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Giá trị trả về
OT_NAT64_STATE_DISABLED
Trình quản lý tiền tố NAT64 đã bị tắt.
OT_NAT64_STATE_NOT_RUNNING
Trình quản lý tiền tố NAT64 được bật nhưng không chạy (vì trình quản lý định tuyến không chạy).
OT_NAT64_STATE_IDLE
Đã bật trình quản lý tiền tố NAT64 nhưng chưa xuất bản tiền tố NAT64. Thông thường, khi có một bộ định tuyến biên khác xuất bản tiền tố NAT64 với mức độ ưu tiên cao hơn.
OT_NAT64_STATE_ACTIVE
Trình quản lý tiền tố NAT64 đã được bật và đang phát hành tiền tố NAT64 lên mạng Thread.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Giá trị trả về
OT_NAT64_STATE_DISABLED
Trình dịch NAT64 đã bị tắt.
OT_NAT64_STATE_NOT_RUNNING
Trình dịch NAT64 đã được bật, nhưng trình biên dịch không được định cấu hình với tiền tố NAT64 hợp lệ và CIDR.
OT_NAT64_STATE_ACTIVE
Trình dịch NAT64 đã được bật và đang dịch các gói.

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ố
[in] aInstance
Thực thể OpenThread.
[out] aIterator
Một con trỏ đến trình lặp để khởi chạy.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aMessage
Con trỏ đến vùng đệm thông báo chứa gói dữ liệu IPv4.
Giá trị trả về
OT_ERROR_NONE
Đã xử lý thành công tin nhắn.
OT_ERROR_DROP
Thư đã được định dạng đúng cách nhưng chưa được xử lý đầy đủ do các quy tắc xử lý gói.
OT_ERROR_NO_BUFS
Không thể phân bổ vùng đệm thông báo cần thiết khi xử lý gói tin.
OT_ERROR_NO_ROUTE
Không có đường dẫn đến máy chủ.
OT_ERROR_INVALID_SOURCE_ADDRESS
Địa chỉ nguồn không hợp lệ, ví dụ: địa chỉ Anycast hoặc địa chỉ phát đa hướng.
OT_ERROR_PARSE
Đã gặp phải tiêu đề không đúng định dạng khi xử lý thư.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aEnabled
Giá trị boolean để bật/tắt các hàm NAT64
Xem thêm:
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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aCidr
Con trỏ đến một otIp4Cidr cho khối CIDR IPv4 cho NAT64.
Giá trị trả về
OT_ERROR_INVALID_ARGS
CIDR đã cho không phải là CIDR IPv4 hợp lệ cho NAT64.
OT_ERROR_NONE
Đặt thành công CIDR cho NAT64.
Xem thêm:
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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aCallback
Con trỏ đến một hàm được gọi khi nhận được gói dữ liệu IPv4 hoặc giá trị NULL để tắt lệnh gọi lại.
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

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ố
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aIp4Address
Con trỏ đến địa chỉ IPv4 để dịch sang IPv6.
[out] aIp6Address
Con trỏ tới địa chỉ IPv6 tổng hợp.
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.