Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

IPv6

Mô-đun này bao gồm các chức năng điều khiển hoạt động giao tiếp IPv6.

Tóm tắt

Bảng liệt kê

anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
Nguồn gốc địa chỉ IPv6.
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
Trạng thái ECN, được thể hiện như trong tiêu đề IP.
anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
Số giao thức internet.

Typedef

otIp6Address typedef
struct otIp6Address
Cấu trúc này đại diện cho một địa chỉ IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
Con trỏ hàm này được gọi khi một địa chỉ IPv6 nội bộ được thêm vào hoặc bị xóa đi.
otIp6AddressComponents typedef
Cấu trúc này đại diện cho các thành phần của địa chỉ IPv6.
otIp6AddressInfo typedef
otIp6InterfaceIdentifier typedef
Cấu trúc này đại diện cho giá trị nhận dạng giao diện của một địa chỉ IPv6.
otIp6NetworkPrefix typedef
Cấu trúc này đại diện cho tiền tố mạng của địa chỉ IPv6 (64 bit quan trọng nhất của địa chỉ).
otIp6Prefix typedef
struct otIp6Prefix
Cấu trúc này đại diện cho một tiền tố IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
Con trỏ hàm này được gọi khi nhận biểu đồ dữ liệu IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
Con trỏ hàm này được gọi với kết quả là otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
Con trỏ hàm này cho phép người dùng lọc tiền tố và không cho phép thêm địa chỉ SLAAC dựa trên tiền tố.
otMessageInfo typedef
struct otMessageInfo
Cấu trúc này đại diện cho địa chỉ cổng IPv6 cục bộ và ngang hàng.
otNetifAddress typedef
Cấu trúc này đại diện cho một địa chỉ unicast giao diện mạng IPv6.
otNetifMulticastAddress typedef
Cấu trúc này đại diện cho một địa chỉ đa hướng giao diện mạng IPv6.
otSockAddr typedef
struct otSockAddr
Cấu trúc này đại diện cho một địa chỉ cổng IPv6.

Biến

OT_TOOL_PACKED_END

Hàm

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Thêm một địa chỉ giao diện mạng vào giao diện chuỗi.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Chức năng này thêm một cổng vào danh sách cổng không an toàn được cho phép.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Hàm này chuyển đổi một chuỗi địa chỉ IPv6 có thể đọc được thành biểu thức nhị phân.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Hàm này chuyển đổi một địa chỉ IPv6 nhất định thành một chuỗi mà con người có thể đọc được.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Kiểm tra xem 2 tiền tố IPv6 có giống nhau hay không.
otIp6GetMulticastAddresses(otInstance *aInstance)
Lấy danh sách các địa chỉ đa hướng IPv6 đã đăng ký giao diện Thread.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Lấy danh sách các địa chỉ IPv6 được chỉ định cho giao diện Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Hàm này trả về một con trỏ tới danh sách cổng không an toàn.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Kiểm tra xem hai địa chỉ IPv6 có giống nhau hay không.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Hàm này cho biết liệu một địa chỉ IPv6 có phải là Địa chỉ chưa được chỉ định hay không.
otIp6IsEnabled(otInstance *aInstance)
bool
Hàm này cho biết giao diện IPv6 có hoạt động hay không.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Kiểm tra xem bạn có bật chế độ quảng cáo đa hướng phát trên giao diện luồng hay không.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Hàm này cho biết liệu lưu lượng truy cập kiểm soát Thread có bị lọc ra hay không khi phân phối biểu đồ IPv6 thông qua lệnh gọi lại được chỉ định trong otIp6SetRecognizeCallback().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Hàm này cho biết mô-đun SLAAC có được bật hay không.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Phân bổ vùng đệm thông báo mới để gửi thông báo IPv6.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Phân bổ bộ đệm thông báo mới và ghi sơ đồ dữ liệu IPv6 vào bộ đệm thông báo để gửi thông báo IPv6.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Hàm này trả về độ dài so khớp tiền tố (bit) cho hai địa chỉ IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Hàm này chuyển đổi một tiền tố IPv6 nhất định thành một chuỗi mà con người có thể đọc được.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Hàm này chuyển đổi một số giao thức IP nhất định thành một chuỗi mà con người có thể đọc được.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Chức năng này đăng ký Trình xử lý đa hướng cho Bộ định tuyến xương sống chính.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Hàm này xóa tất cả các cổng khỏi danh sách cổng không an toàn được phép.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Xóa Địa chỉ giao diện mạng khỏi giao diện Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Hàm này xóa một cổng khỏi danh sách cổng không an toàn được phép.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Hàm này thực hiện việc chọn địa chỉ nguồn OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Hàm này gửi một biểu đồ dữ liệu IPv6 thông qua giao diện Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Hàm này đăng ký một lệnh gọi lại để thông báo cho các thay đổi về địa chỉ IPv6 nội bộ.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Hàm này cung cấp giao diện IPv6 lên/xuống.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Hàm này đặt Ish cục bộ Mesh (cho mục đích thử nghiệm).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Bật chế độ đa hướng phát trên giao diện Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Hàm này đăng ký một lệnh gọi lại để cung cấp các biểu đồ dữ liệu IPv6 đã nhận.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Hàm này đặt liệu lưu lượng điều khiển Thread có lọc ra hay không khi phân phối gói dữ liệu IPv6 thông qua lệnh gọi lại được chỉ định trong otIp6SetReceiveCallback().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Chức năng này bật/tắt mô-đun SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Hàm này đặt trình xử lý bộ lọc mô-đun SLAAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Hàm này chuyển đổi một địa chỉ cổng IPv6 nhất định thành một chuỗi mà người dùng có thể đọc.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Đăng ký giao diện luồng vào một địa chỉ đa hướng giao diện mạng.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Hủy đăng ký giao diện Luồng thành một Địa chỉ đa giao diện mạng.

Cấu trúc

otIp6Address

Cấu trúc này đại diện cho một địa chỉ IPv6.

otIp6AddressComponents

Cấu trúc này đại diện cho các thành phần của địa chỉ IPv6.

otIp6AddressInfo

Cấu trúc này đại diện cho thông tin địa chỉ IPv6.

otIp6InterfaceIdentifier

Cấu trúc này đại diện cho giá trị nhận dạng giao diện của một địa chỉ IPv6.

otIp6Networkprefix

Cấu trúc này đại diện cho tiền tố mạng của địa chỉ IPv6 (64 bit quan trọng nhất của địa chỉ).

otIp6prefix

Cấu trúc này đại diện cho một tiền tố IPv6.

otMessageInfo

Cấu trúc này đại diện cho địa chỉ cổng IPv6 cục bộ và ngang hàng.

otNetifAddress

Cấu trúc này đại diện cho một địa chỉ unicast giao diện mạng IPv6.

otNetif MulticastAddress

Cấu trúc này đại diện cho một địa chỉ đa hướng giao diện mạng IPv6.

otSockAddr

Cấu trúc này đại diện cho một địa chỉ cổng IPv6.

Liên minh

otIp6InterfaceIdentifier::OT_Tool_PACKED_FIELD

Bảng liệt kê

enum ẩn danh

 anonymous enum

Nguồn gốc địa chỉ IPv6.

Thuộc tính
OT_ADDRESS_ORIGIN_DHCPV6

Địa chỉ được chỉ định DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Địa chỉ được chỉ định theo cách thủ công.

OT_ADDRESS_ORIGIN_SLAAC

Địa chỉ được chỉ định SLAAC.

OT_ADDRESS_ORIGIN_THREAD

Địa chỉ chuỗi đã chỉ định (ALAT, RLAT, MLEID, v.v.)

enum ẩn danh

 anonymous enum

Trạng thái ECN, được thể hiện như trong tiêu đề IP.

Thuộc tính
OT_ECN_CAPABLE_0

Số tự động(0)

OT_ECN_CAPABLE_1

Số tự động(1)

OT_ECN_MARKED

Đã xảy ra tắc nghẽn (CE)

OT_ECN_NOT_CAPABLE

KHÔNG Tự động.

enum ẩn danh

 anonymous enum

Số giao thức internet.

Thuộc tính
OT_IP6_PROTO_DST_OPTS

Tùy chọn đích cho IPv6.

OT_IP6_PROTO_FRAGMENT

Tiêu đề mảnh cho IPv6.

OT_IP6_PROTO_HOP_OPTS

Tùy chọn IPv6-Hop-Hop.

OT_IP6_PROTO_ICMP6

ICMP cho IPv6.

OT_IP6_PROTO_IP6

Đóng gói IPv6.

OT_IP6_PROTO_NONE

Không có tiêu đề tiếp theo cho IPv6.

OT_IP6_PROTO_ROUTING

Tiêu đề định tuyến cho IPv6.

OT_IP6_PROTO_TCP

Giao thức điều khiển truyền tải.

OT_IP6_PROTO_UDP

Biểu đồ dữ liệu người dùng.

Typedef

otIp6Địa chỉ

struct otIp6Address otIp6Address

Cấu trúc này đại diện cho một địa chỉ IPv6.

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

Con trỏ hàm này được gọi khi một địa chỉ IPv6 nội bộ được thêm vào hoặc bị xóa đi.

Thông tin chi tiết
Các thông số
[in] aAddressInfo
Con trỏ đến thông tin địa chỉ IPv6.
[in] aIsAdded
TRUE nếu aAddress đã được thêm, FALSE nếu aAddress đã bị xóa.
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

otIp6AddressComponentComponents

struct otIp6AddressComponents otIp6AddressComponents

Cấu trúc này đại diện cho các thành phần của địa chỉ IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Cấu trúc này đại diện cho giá trị nhận dạng giao diện của một địa chỉ IPv6.

otIp6Networkprefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Cấu trúc này đại diện cho tiền tố mạng của địa chỉ IPv6 (64 bit quan trọng nhất của địa chỉ).

Tiền tố otIp6

struct otIp6Prefix otIp6Prefix

Cấu trúc này đại diện cho một tiền tố IPv6.

otIp6RecipientCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

Con trỏ hàm này được gọi khi nhận biểu đồ dữ liệu IPv6.

Thông tin chi tiết
Các thông số
[in] aMessage
Con trỏ đến bộ đệm thông báo có chứa biểu đồ dữ liệu IPv6 đã nhận. Hàm này chuyển quyền sở hữu của aMessage cho người nhận lệnh gọi lại. Người nhận sẽ được giải phóng tin nhắn gọi lại sau khi được xử lý (xem otMessageFree()).
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

otIp6Đăng MulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

Con trỏ hàm này được gọi với kết quả là otIp6RegisterMulticastListeners.

Thông tin chi tiết
Các thông số
[in] aContext
Con trỏ đến bối cảnh của người dùng.
[in] aError
OT_ERROR_AVAILABLE khi gửi MLR.req thành công và nhận được MLR.rsp, OT_ERROR_RESPONSE_ROWS khi không nhận được MLR.rsp, OT_ERROR_PARSE khi không phân tích được cú pháp MLR.rsp.
[in] aMlrStatus
Trạng thái đăng ký trình nghe đa hướng khi aError là OT_ERROR_AVAILABLE.
[in] aFailedAddresses
Con trỏ đến các địa chỉ IPv6 không thành công khi aError là OT_ERROR_AVAILABLE.
[in] aFailedAddressNum
Số địa chỉ IPv6 không thành công khi aError là OT_ERROR_NAMES.
Xem thêm:
otIp6register MulticastListeners

Bộ lọc tiền tố otIp6Slaac

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

Con trỏ hàm này cho phép người dùng lọc tiền tố và không cho phép thêm địa chỉ SLAAC dựa trên tiền tố.

Bạn có thể sử dụng otIp6SetSlaacPrefixFilter() để đặt trình xử lý bộ lọc. Trình xử lý bộ lọc được mô-đun SLAAC gọi khi sắp thêm địa chỉ SLAAC dựa trên tiền tố. Giá trị trả về boolean xác định liệu địa chỉ có được lọc (không được thêm) hay không.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aPrefix
Con trỏ để thêm địa chỉ SLAAC sắp được thêm vào.
Giá trị trả về
TRUE
Cho biết rằng địa chỉ SLAAC dựa trên tiền tố phải được lọc và KHÔNG được thêm vào.
FALSE
Cho biết rằng địa chỉ SLAAC dựa trên tiền tố phải được thêm vào.

Tin nhắn thông tin

struct otMessageInfo otMessageInfo

Cấu trúc này đại diện cho địa chỉ cổng IPv6 cục bộ và ngang hàng.

otNetifAddress

struct otNetifAddress otNetifAddress

Cấu trúc này đại diện cho một địa chỉ unicast giao diện mạng IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Cấu trúc này đại diện cho một địa chỉ đa hướng giao diện mạng IPv6.

otSockAddr

struct otSockAddr otSockAddr

Cấu trúc này đại diện cho một địa chỉ cổng IPv6.

Biến

OT_Tool_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Hàm

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Thêm một địa chỉ giao diện mạng vào giao diện chuỗi.

Thực thể đã chuyển aAddress được sao chép bằng giao diện Chuỗi. Giao diện Thread chỉ hỗ trợ số lượng địa chỉ unicast được thêm vào bên ngoài cố định. Xem M khai báo: CONFIG_CONFIG_IP6_MAX_EXT_UCAST_ sử

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aAddress
Con trỏ đến địa chỉ giao diện mạng.
Giá trị trả về
OT_ERROR_NONE
Đã thêm (hoặc cập nhật) địa chỉ giao diện mạng thành công.
OT_ERROR_INVALID_ARGS
Địa chỉ IP do aAddress chỉ định là địa chỉ nội bộ.
OT_ERROR_NO_BUFS
Giao diện mạng đã lưu trữ các địa chỉ bên ngoài tối đa được phép.

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Chức năng này thêm một cổng vào danh sách cổng không an toàn được cho phép.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aPort
Giá trị cổng.
Giá trị trả về
OT_ERROR_NONE
Đã thêm thành công cổng này vào danh sách cổng không an toàn được phép.
OT_ERROR_INVALID_ARGS
Cổng không hợp lệ (giá trị 0 được dành riêng để sử dụng nội bộ).
OT_ERROR_NO_BUFS
Danh sách cổng không an toàn đã đầy.

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

Hàm này chuyển đổi một chuỗi địa chỉ IPv6 có thể đọc được thành biểu thức nhị phân.

Thông tin chi tiết
Các thông số
[in] aString
Con trỏ đến một chuỗi kết thúc NULL.
[out] aAddress
Con trỏ đến địa chỉ IPv6.
Giá trị trả về
OT_ERROR_NONE
Phân tích cú pháp thành công chuỗi.
OT_ERROR_INVALID_ARGS
Không thể phân tích cú pháp chuỗi.

otIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Hàm này chuyển đổi một địa chỉ IPv6 nhất định thành một chuỗi mà con người có thể đọc được.

Chuỗi địa chỉ IPv6 được định dạng như 16 giá trị hex được phân tách bằng &#39 ;:' (tức là "%x:%x:%x:...:%x").

Nếu chuỗi kết quả không vừa với aBuffer (trong aSize ký tự), thì chuỗi sẽ bị cắt bớt nhưng chuỗi được xuất sẽ luôn bị chấm dứt do không có giá trị.

Thông tin chi tiết
Các thông số
[in] aAddress
Con trỏ đến địa chỉ IPv6 (MUST NOT là NULL).
[out] aBuffer
Con trỏ đến một mảng ký tự để xuất chuỗi (MUST NOT là NULL).
[in] aSize
Kích thước aBuffer (tính bằng byte). Khuyên dùng OT_IP6_ADDRESS_STRING_SIZE.

otIp6AreprefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

Kiểm tra xem 2 tiền tố IPv6 có giống nhau hay không.

Thông tin chi tiết
Các thông số
[in] aFirst
Con trỏ đến tiền tố IPv6 đầu tiên để so sánh.
[in] aSecond
Con trỏ đến tiền tố IPv6 thứ hai để so sánh.
Giá trị trả về
TRUE
Hai tiền tố IPv6 giống nhau.
FALSE
Hai tiền tố IPv6 không giống nhau.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Lấy danh sách các địa chỉ đa hướng IPv6 đã đăng ký giao diện Thread.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
Trả về
Con trỏ đến địa chỉ đa hướng giao diện mạng đầu tiên.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Lấy danh sách các địa chỉ IPv6 được chỉ định cho giao diện Thread.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
Trả về
Con trỏ đến địa chỉ giao diện mạng đầu tiên.

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

Hàm này trả về một con trỏ tới danh sách cổng không an toàn.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[out] aNumEntries
Số mục trong danh sách.
Trả về
Con trỏ đến danh sách cổng không an toàn.

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Kiểm tra xem hai địa chỉ IPv6 có giống nhau hay không.

Thông tin chi tiết
Các thông số
[in] aFirst
Con trỏ đến địa chỉ IPv6 đầu tiên để so sánh.
[in] aSecond
Con trỏ đến địa chỉ IPv6 thứ hai để so sánh.
Giá trị trả về
TRUE
Hai địa chỉ IPv6 giống nhau.
FALSE
Hai địa chỉ IPv6 không giống nhau.

otIp6IsĐịa chỉ chưa được chỉ định

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Hàm này cho biết liệu một địa chỉ IPv6 có phải là Địa chỉ chưa được chỉ định hay không.

Thông tin chi tiết
Các thông số
[in] aAddress
Con trỏ đến địa chỉ IPv6.
Giá trị trả về
TRUE
Nếu địa chỉ IPv6 là địa chỉ không được chỉ định.
FALSE
Nếu địa chỉ IPv6 không phải là Địa chỉ chưa được chỉ định.

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Hàm này cho biết giao diện IPv6 có hoạt động hay không.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
Giá trị trả về
TRUE
Giao diện IPv6 đã được bật.
FALSE
Giao diện IPv6 đã bị tắt.

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Kiểm tra xem bạn có bật chế độ quảng cáo đa hướng phát trên giao diện luồng hay không.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
Xem thêm:
otIp6Set MulticastPromiscuousEnabled

otIp6IsRecipientFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Hàm này cho biết liệu lưu lượng truy cập kiểm soát Thread có bị lọc ra hay không khi phân phối biểu đồ IPv6 thông qua lệnh gọi lại được chỉ định trong otIp6SetRecognizeCallback().

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
Trả về
TRUE nếu Lưu lượng truy cập kiểm soát chuỗi được lọc ra, FALSE nếu không được lọc.
Xem thêm:
otIp6SetSessionCallback
otIp6SetRecognizeFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Hàm này cho biết mô-đun SLAAC có được bật hay không.

Hàm này yêu cầu bật tính năng thời gian xây dựng OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Thông tin chi tiết
Giá trị trả về
TRUE
Mô-đun SLAAC được bật.
FALSE
Mô-đun SLAAC bị tắt.

otIp6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Phân bổ vùng đệm thông báo mới để gửi thông báo IPv6.

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

Phân bổ bộ đệm thông báo mới và ghi sơ đồ dữ liệu IPv6 vào bộ đệm thông báo để gửi thông báo IPv6.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aData
Con trỏ đến bộ đệm dữ liệu IPv6.
[in] aDataLength
Kích thước của bộ đệm dữ liệu IPv6 do aData chỉ định.
[in] aSettings
Con trỏ đến chế độ cài đặt thông báo hoặc giá trị NULL để đặt các chế độ cài đặt mặc định.
Trả về
Con trỏ đến thông báo hoặc NULL nếu có tiêu đề IPv6 không đúng định dạng hoặc không đủ bộ đệm thông báo.
Xem thêm:
otMessageFree

otIp6prefixmatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Hàm này trả về độ dài so khớp tiền tố (bit) cho hai địa chỉ IPv6.

Thông tin chi tiết
Các thông số
[in] aFirst
Con trỏ đến địa chỉ IPv6 đầu tiên.
[in] aSecond
Con trỏ đến địa chỉ IPv6 thứ hai.
Trả về
Độ dài tiền tố khớp với bit.

otIp6prefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

Hàm này chuyển đổi một tiền tố IPv6 nhất định thành một chuỗi mà con người có thể đọc được.

Chuỗi địa chỉ IPv6 có định dạng là "%x:%x:%x:...[::]/plen".

Nếu chuỗi kết quả không vừa với aBuffer (trong aSize ký tự), thì chuỗi sẽ bị cắt bớt nhưng chuỗi được xuất sẽ luôn bị chấm dứt do không có giá trị.

Thông tin chi tiết
Các thông số
[in] aPrefix
Con trỏ đến tiền tố IPv6 (MUST NOT là NULL).
[out] aBuffer
Con trỏ đến một mảng ký tự để xuất chuỗi (MUST NOT là NULL).
[in] aSize
Kích thước aBuffer (tính bằng byte). Khuyên dùng OT_IP6_PREFIX_STRING_SIZE.

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Hàm này chuyển đổi một số giao thức IP nhất định thành một chuỗi mà con người có thể đọc được.

Thông tin chi tiết
Các thông số
[in] aIpProto
Số giao thức IP (liệt kê OT_IP6_PROTO_*).
Trả về
Chuỗi đại diện cho aIpProto.

otIp6register MulticastListeners

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

Chức năng này đăng ký Trình xử lý đa hướng cho Bộ định tuyến xương sống chính.

Lưu ý: chỉ có thể sử dụng khi bật cả OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLEOPENTHREAD_CONFIG_COMMISSIONER_ENABLE)

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aAddresses
Một Chuỗi địa chỉ đa hướng để đăng ký.
[in] aAddressNum
Số địa chỉ đa hướng để đăng ký (0 nếu aAddresses là NULL).
[in] aTimeout
Con trỏ đến giá trị thời gian chờ (tính bằng giây) để đưa vào MLR.req. Giá trị thời gian chờ là 0 sẽ xóa Trình nghe đa hướng tương ứng. Nếu NULL, MLR.req sẽ không có Thời gian chờ Tlv theo mặc định.
[in] aCallback
Con trỏ đến hàm callback.
[in] aContext
Con trỏ đến bối cảnh của người dùng.
Giá trị trả về
OT_ERROR_NONE
Đã gửi thành công MLR.req. aCallback sẽ được gọi là iff phương thức này sẽ trả về OT_ERROR_None.
OT_ERROR_BUSY
Nếu khách hàng đăng ký trước đó.
OT_ERROR_INVALID_ARGS
Nếu một hoặc nhiều đối số không hợp lệ.
OT_ERROR_INVALID_STATE
Nếu thiết bị không ở trạng thái hợp lệ để gửi MLR.req (ví dụ: Không bắt đầu được Ủy viên, thì sẽ không tìm thấy Bộ định tuyến xương sống chính).
OT_ERROR_NO_BUFS
Nếu không có đủ bộ đệm tin nhắn.
Xem thêm:
otIp6register MulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Hàm này xóa tất cả các cổng khỏi danh sách cổng không an toàn được phép.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Xóa Địa chỉ giao diện mạng khỏi giao diện Thread.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aAddress
Con trỏ đến địa chỉ IP.
Giá trị trả về
OT_ERROR_NONE
Đã xóa thành công địa chỉ giao diện mạng.
OT_ERROR_INVALID_ARGS
Địa chỉ IP do aAddress chỉ định là địa chỉ nội bộ.
OT_ERROR_NOT_FOUND
Không tìm thấy Địa chỉ IP do aAddress chỉ định.

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Hàm này xóa một cổng khỏi danh sách cổng không an toàn được phép.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aPort
Giá trị cổng.
Giá trị trả về
OT_ERROR_NONE
Đã xóa thành công cổng khỏi danh sách cổng không an toàn được phép.
OT_ERROR_INVALID_ARGS
Cổng không hợp lệ (giá trị 0 được dành riêng để sử dụng nội bộ).
OT_ERROR_NOT_FOUND
Không tìm thấy cổng này trong danh sách cổng không an toàn.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Hàm này thực hiện việc chọn địa chỉ nguồn OpenThread.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in,out] aMessageInfo
Con trỏ đến thông tin tin nhắn.
Giá trị trả về
OT_ERROR_NONE
Đã tìm thấy địa chỉ nguồn và điền vào mSockAddr của aMessageInfo.
OT_ERROR_NOT_FOUND
Không tìm thấy địa chỉ nguồn nào và aMessageInfo không thay đổi.

otIp6Gửi

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Hàm này gửi một biểu đồ dữ liệu IPv6 thông qua giao diện Thread.

Người gọi sẽ 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 giá trị khác ngoài OT_ERROR_NONE được trả về.

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

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

Hàm này đăng ký một lệnh gọi lại để thông báo cho các thay đổi về địa chỉ IPv6 nội bộ.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aCallback
Con trỏ đến hàm được gọi khi địa chỉ IPv6 nội bộ được thêm vào hoặc xoá đi. Giá trị null để tắt lệnh gọi lại.
[in] aCallbackContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

Đã bật otIp6Set

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Hàm này cung cấp giao diện IPv6 lên/xuống.

Gọi hàm này để bật/tắt tính năng giao tiếp IPv6.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aEnabled
TRUE để bật IPv6, FALSE nếu không.
Giá trị trả về
OT_ERROR_NONE
Đã đưa lên/xuống giao diện IPv6 thành công.
OT_ERROR_INVALID_STATE
Giao diện IPv6 không dùng được vì thiết bị đang hoạt động ở chế độ liên kết thô (chỉ áp dụng khi tính năng OPENTHREAD_CONFIG_LINK_RAW_ENABLE đang bật).

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Hàm này đặt Ish cục bộ Mesh (cho mục đích thử nghiệm).

Chỉ có sẵn khi bật OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aIid
Một con trỏ đến IID cục bộ Mesh để đặt.
Giá trị trả về
OT_ERROR_NONE
Đã đặt thành công Mesh cục bộ IID.
OT_ERROR_INVALID_STATE
Giao thức chuỗi đã được bật.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Bật chế độ đa hướng phát trên giao diện Thread.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aEnabled
TRUE để bật Chế độ đa hướng phát đa hướng, FALSE nếu không.
Xem thêm:
otIp6Is MulticastPromiscuousEnabled

otIp6SetRecognizeCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

Hàm này đăng ký một lệnh gọi lại để cung cấp các biểu đồ dữ liệu IPv6 đã nhận.

Theo mặc định, lệnh gọi lại này không chuyển lưu lượng truy cập của luồng Kiểm soát chuỗi. Xem otIp6SetReceiveFilterEnabled() để thay đổi chế độ cài đặt bộ lọc lưu lượng truy cập kiểm soát chuỗi.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aCallback
Con trỏ đến một hàm được gọi khi nhận dữ liệu IPv6 hoặc NULL để tắt lệnh gọi lại.
[in] aCallbackContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.
Xem thêm:
otIp6IsRecognizeFilterEnabled
otIp6SetSubmitFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Hàm này đặt liệu lưu lượng điều khiển Thread có lọc ra hay không khi phân phối gói dữ liệu IPv6 thông qua lệnh gọi lại được chỉ định trong otIp6SetReceiveCallback().

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aEnabled
TRUE nếu Lưu lượng truy cập kiểm soát chuỗi được lọc ra, FALSE nếu không được lọc.
Xem thêm:
otIp6SetReceiveCallback
otIsRecipientIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Chức năng này bật/tắt mô-đun SLAAC.

Hàm này yêu cầu bật tính năng thời gian xây dựng OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Khi bật mô-đun SLAAC, địa chỉ SLAAC (dựa trên tiền tố lưới trong Dữ liệu mạng) sẽ được thêm vào giao diện. Khi bạn tắt mô-đun SLAAC, mọi địa chỉ SLAAC đã thêm trước đó sẽ bị xóa.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aEnabled
TRUE để bật, FALSE để tắt.

otIp6SetSlaacprefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Hàm này đặt trình xử lý bộ lọc mô-đun SLAAC.

Hàm này yêu cầu bật tính năng thời gian xây dựng OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Trình xử lý bộ lọc được mô-đun SLAAC gọi khi địa chỉ sắp thêm địa chỉ SLAAC dựa trên tiền tố để quyết định có nên thêm địa chỉ hay không.

Trình xử lý bộ lọc NULL tắt tính năng lọc và cho phép thêm tất cả địa chỉ SLAAC.

Nếu hàm này không được gọi, bộ lọc mặc định được mô-đun SLAAC sử dụng sẽ là NULL (tính năng lọc bị tắt).

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aFilter
Con trỏ đến trình xử lý tiền tố SLAAC hoặc NULL để tắt tính năng lọc.

otIp6SockAddrToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

Hàm này chuyển đổi một địa chỉ cổng IPv6 nhất định thành một chuỗi mà người dùng có thể đọc.

Chuỗi địa chỉ cổng IPv6 được định dạng là "[

]:" trong đó `
được hiển thị dưới dạng 16 giá trị hex được phân tách bằng ':' và là số cổng ở định dạng thập phân (tức là "[%x:%x:...:%x]:%u")

Nếu chuỗi kết quả không vừa với aBuffer (trong aSize ký tự), thì chuỗi sẽ bị cắt bớt nhưng chuỗi được xuất sẽ luôn bị chấm dứt do không có giá trị.

Thông tin chi tiết
Các thông số
[in] aSockAddr
Con trỏ đến địa chỉ cổng IPv6 (MUST NOT là NULL).
[out] aBuffer
Con trỏ đến một mảng ký tự để xuất chuỗi (MUST NOT là NULL).
[in] aSize
Kích thước aBuffer (tính bằng byte). Khuyên dùng OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6Gói đa địa chỉ phát sóng

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Đăng ký giao diện luồng vào một địa chỉ đa hướng giao diện mạng.

Phiên bản đã chuyển aAddress sẽ được sao chép bằng giao diện Chuỗi. Giao diện Thread chỉ hỗ trợ số lượng cố định các địa chỉ đa hướng được thêm vào bên ngoài. Xem MMở khóa CONFIG_CONFIG_IP6_MAX_EXT_MCAST_DELIMITERS.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aAddress
Con trỏ đến địa chỉ IP.
Giá trị trả về
OT_ERROR_NONE
Đã đăng ký thành công địa chỉ đa hướng giao diện mạng.
OT_ERROR_ALREADY
Địa chỉ đa hướng đã được đăng ký.
OT_ERROR_INVALID_ARGS
Địa chỉ IP do aAddress chỉ ra là một địa chỉ đa hướng không hợp lệ.
OT_ERROR_REJECTED
Địa chỉ IP do aAddress chỉ định là địa chỉ đa hướng nội bộ.
OT_ERROR_NO_BUFS
Giao diện mạng đã lưu trữ các địa chỉ đa hướng bên ngoài được phép tối đa.

otIp6Hủy nhiều địa chỉ đa hướng

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Hủy đăng ký giao diện Luồng thành một Địa chỉ đa giao diện mạng.

Thông tin chi tiết
Các thông số
[in] aInstance
Con trỏ tới một thực thể của OpenThread.
[in] aAddress
Con trỏ đến địa chỉ IP.
Giá trị trả về
OT_ERROR_NONE
Đã hủy đăng ký Địa chỉ đa hướng giao diện mạng.
OT_ERROR_REJECTED
Địa chỉ IP do aAddress chỉ định là địa chỉ nội bộ.
OT_ERROR_NOT_FOUND
Không tìm thấy Địa chỉ IP do aAddress chỉ định.

Macro

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Kích thước của địa chỉ IPv6 (byte)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Kích thước đề xuất cho phần đại diện chuỗi của địa chỉ IPv6.

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Kích thước của giá trị nhận dạng giao diện IPv6 (byte)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Số địa chỉ IPv6 tối đa được hỗ trợ bởi tính năng Đăng ký trình nghe đa hướng.

OT_IP6_>.</_ITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Kích thước của một tiền tố IPv6 (bit)

OT_IP6_>.</_SIZE

 OT_IP6_PREFIX_SIZE 8

Kích thước của một tiền tố IPv6 (byte)

OT_IP6_PERCENTAGE_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Kích thước đề xuất cho biểu diễn chuỗi của tiền tố IPv6.

OT_IP6_SOCK_FLAT_STRING

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Kích thước đề xuất cho biểu diễn chuỗi của địa chỉ cổng IPv6.

Tài nguyên

Các chủ đề về Tham chiếu API OpenThread được tạo từ mã nguồn, có sẵn 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 phần Tài nguyên.