IPv6

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

Tóm tắt

Bảng liệt kê

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.
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
Các trạng thái ECN, được thể hiện như trong tiêu đề IP.

Typedef

otBorderRoutingCounters typedef
Biểu thị bộ đếm của các gói được chuyển tiếp thông qua Định tuyến đường biên.
otIp6Address typedef
struct otIp6Address
Đại diện cho địa chỉ IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef
void(*
Con trỏ được gọi khi thêm hoặc xoá địa chỉ IPv6 nội bộ.
otIp6AddressComponents typedef
Đại diện cho các thành phần của địa chỉ IPv6.
otIp6AddressInfo typedef
Biểu thị thông tin địa chỉ IPv6.
otIp6InterfaceIdentifier typedef
Biểu thị giá trị nhận dạng giao diện của địa chỉ IPv6.
otIp6NetworkPrefix typedef
Đạ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
Đại diện cho tiền tố IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef
void(*
Con trỏ được gọi khi nhận được gói dữ liệu IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef
void(*
Con trỏ được gọi với kết quả của otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef
bool(*
Con trỏ 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
Đại diện cho địa chỉ ổ cắm IPv6 cục bộ và ngang hàng.
otNetifAddress typedef
Đại diện cho địa chỉ unicast của giao diện mạng IPv6.
otNetifMulticastAddress typedef
Đại diện cho địa chỉ phát đa hướng giao diện mạng IPv6.
otPacketsAndBytes typedef
Đại diện cho bộ đếm cho các gói và byte.
otSockAddr typedef
struct otSockAddr
Đại diện cho địa chỉ ổ cắm IPv6.

Biến

OT_TOOL_PACKED_END

Hàm

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Thêm Địa chỉ giao diện mạng vào giao diện Thread.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Thêm một cổng vào danh sách cổng không được bảo mật được cho phép.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Chuyển đổi chuỗi địa chỉ IPv6 mà con người có thể đọc được thành biểu diễn nhị phân.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Chuyển đổi địa chỉ IPv6 cho trước 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 hai tiền tố IPv6 có giống nhau hay không.
otIp6GetBorderRoutingCounters(otInstance *aInstance)
Lấy bộ đếm Định tuyến biên giới.
otIp6GetMulticastAddresses(otInstance *aInstance)
Lấy danh sách các địa chỉ phát đa hướng IPv6 đã đăng ký giao diện Thread.
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
Nhận tiền tố có aLength từ aAddress.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Lấy danh sách địa chỉ IPv6 được chỉ định cho giao diện Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Trả về một con trỏ đến danh sách cổng không an toàn.
otIp6HasUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
bool
Cho biết địa chỉ IPv6 unicast có được chỉ định cho giao diện Thread hay không.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Kiểm tra xem 2 địa chỉ IPv6 có giống nhau hay không.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Cho biết liệu một địa chỉ IPv6 nhất định có phải là Địa chỉ không xác định hay không.
otIp6IsEnabled(otInstance *aInstance)
bool
Cho biết giao diện IPv6 có hoạt động hay không.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Kiểm tra xem chế độ hỗn hợp đa hướng có được bật trên giao diện Thread hay không.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Cho biết liệu lưu lượng truy cập kiểm soát luồng có được lọc ra 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() hay không.
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Cho biết liệu mô-đun SLAAC có được bật hay không.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Phân bổ một 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ổ một vùng đệm thông báo mới và ghi gói dữ liệu IPv6 vào vùng đệm thông báo để gửi thông báo IPv6.
otIp6PrefixFromString(const char *aString, otIp6Prefix *aPrefix)
Chuyển đổi chuỗi tiền tố IPv6 mà con người có thể đọc được thành biểu diễn nhị phân.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Trả về độ dài khớp tiền tố (bit) cho hai địa chỉ IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
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 *
Chuyển đổi một số giao thức IP đã cho thành 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)
Đăng ký trình nghe Multicast cho Bộ định tuyến đường trục chính.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Xoá tất cả các cổng khỏi danh sách cổng không an toàn được cho phép.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Xoá Địa chỉ giao diện mạng khỏi giao diện Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Xoá một cổng khỏi danh sách cổng không an toàn được cho phép.
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
Đặt lại bộ đếm định tuyến biên giới.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Thực hiện lựa chọn địa chỉ nguồn OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Gửi một gói dữ liệu IPv6 qua giao diện Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Đăng ký lệnh gọi lại để thông báo về các thay đổi đối với địa chỉ IPv6 nội bộ.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Đưa giao diện IPv6 lên hoặc xuống.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Đặt IID cục bộ Mesh (cho mục đích thử nghiệm).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Bật hoặc tắt chế độ hỗn hợp phát đa hướng trên giao diện Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Đăng ký một lệnh gọi lại để cung cấp gói dữ liệu IPv6 nhận được.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Thiết lập xem lưu lượng truy cập kiểm soát luồng có được lọc ra 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() hay không.
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Bật/tắt mô-đun SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Đặt trình xử lý bộ lọc mô-đun SLAAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Chuyển đổi địa chỉ ổ cắm IPv6 nhất định thành một chuỗi mà con người có thể đọc được.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Đăng ký giao diện Thread (Luồng) vào Địa chỉ Multicast giao diện mạng.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Huỷ đăng ký giao diện Thread (Chuỗi) đối với Địa chỉ Multicast giao diện mạng.

Cấu trúc

otBorderRoutingCounters

Biểu thị bộ đếm của các gói được chuyển tiếp thông qua Định tuyến đường biên.

otIp6Address

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

otIp6AddressComponents

Đại diện cho các thành phần của địa chỉ IPv6.

otIp6AddressInfo

Biểu thị thông tin địa chỉ IPv6.

otIp6InterfaceIdentifier

Biểu thị giá trị nhận dạng giao diện của địa chỉ IPv6.

otIp6NetworkPrefix

Đạ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

Đại diện cho tiền tố IPv6.

otMessageInfo

Đại diện cho địa chỉ ổ cắm IPv6 cục bộ và ngang hàng.

otNetifAddress

Đại diện cho địa chỉ unicast của giao diện mạng IPv6.

otNetifMulticastAddress

Đại diện cho địa chỉ phát đa hướng giao diện mạng IPv6.

otPacketsAndBytes

Đại diện cho bộ đếm cho các gói và byte.

otSockAddr

Đại diện cho địa chỉ ổ cắm IPv6.

Hiệp hội

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Bảng liệt kê

enum ẩn danh

 anonymous enum

Số giao thức Internet.

Thuộc tính
OT_IP6_PROTO_DST_OPTS

Tuỳ chọn đích cho IPv6.

OT_IP6_PROTO_FRAGMENT

Tiêu đề mảnh cho IPv6.

OT_IP6_PROTO_HOP_OPTS

Tuỳ chọn Hop-by-Hop của IPv6.

OT_IP6_PROTO_ICMP6

ICMP dành cho IPv6.

OT_IP6_PROTO_IP6

Đóng gói IPv6.

OT_IP6_PROTO_NONE

Không có tiêu đề tiếp theo nào 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

Gói dữ liệu người dùng.

enum ẩn danh

 anonymous enum

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

Thuộc tính
OT_ADDRESS_ORIGIN_DHCPV6

địa chỉ đã chỉ định trong DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

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

OT_ADDRESS_ORIGIN_SLAAC

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

OT_ADDRESS_ORIGIN_THREAD

Địa chỉ đã chỉ định theo chuỗi (ALOC, RLOC, MLEID, v.v.)

enum ẩn danh

 anonymous enum

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

Thuộc tính
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Gặp phải tình trạng tắc nghẽn (CE)

OT_ECN_NOT_CAPABLE

Không thuộc ECT.

Typedef

otBorderRoutingCounters

struct otBorderRoutingCounters otBorderRoutingCounters

Biểu thị bộ đếm của các gói được chuyển tiếp thông qua Định tuyến đường biên.

otIp6Address

struct otIp6Address otIp6Address

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

otIp6AddressCallback

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

Con trỏ được gọi khi thêm hoặc xoá địa chỉ IPv6 nội bộ.

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

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Đại diện cho các thành phần của địa chỉ IPv6.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

Biểu thị thông tin địa chỉ IPv6.

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Biểu thị giá trị nhận dạng giao diện của địa chỉ IPv6.

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Đạ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

struct otIp6Prefix otIp6Prefix

Đại diện cho tiền tố IPv6.

otIp6ReceiveCallback

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

Con trỏ được gọi khi nhận được gói dữ liệu IPv6.

Thông tin chi tiết
Thông 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. Trình nhận lệnh gọi lại sẽ giải phóng thông báo sau khi xử lý (xem otMessageFree()).
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

otIp6RegisterMulticastListenersCallback

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

Con trỏ được gọi với kết quả của otIp6RegisterMulticastListeners.

Thông tin chi tiết
Thông số
[in] aContext
Con trỏ đến ngữ cảnh người dùng.
[in] aError
OT_ERROR_NONE khi gửi MLR.req thành công và nhận MLR.rsp, OT_ERROR_LENGTH_TIMEOUT khi không nhận được MLR.rsp, OT_ERROR_PARSE khi không thể phân tích cú pháp MLR.rsp.
[in] aMlrStatus
Trạng thái đăng ký Trình nghe Multicast khi aError là OT_ERROR_NONE.
[in] aFailedAddresses
Con trỏ tới các địa chỉ IPv6 không thành công khi aError có giá trị là OT_ERROR_NONE.
[in] aFailedAddressNum
Số địa chỉ IPv6 không thực hiện được khi aError ở trạng thái OT_ERROR_NONE.
Xem thêm:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

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

Con trỏ 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ể dùng otIp6SetSlaacPrefixFilter() để thiết lập trình xử lý bộ lọc. Trình xử lý bộ lọc được mô-đun SLAAC gọi ra khi sắp thêm địa chỉ SLAAC dựa trên tiền tố. Giá trị trả về boolean của hàm 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
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aPrefix
Con trỏ trỏ đến tiền tố 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ố nên được lọc và KHÔNG được thêm.
FALSE
Cho biết rằng bạn sẽ thêm địa chỉ SLAAC dựa trên tiền tố.

otMessageInfo

struct otMessageInfo otMessageInfo

Đại diện cho địa chỉ ổ cắm IPv6 cục bộ và ngang hàng.

otNetifAddress

struct otNetifAddress otNetifAddress

Đại diện cho địa chỉ unicast của giao diện mạng IPv6.

otNetifMulticastAddress

struct otNetifMulticastAddress otNetifMulticastAddress

Đại diện cho địa chỉ phát đa hướng giao diện mạng IPv6.

otPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

Đại diện cho bộ đếm cho các gói và byte.

otSockAddr

struct otSockAddr otSockAddr

Đại diện cho địa chỉ ổ cắm 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 Địa chỉ giao diện mạng vào giao diện Thread.

Thực thể đã truyền aAddress được giao diện Thread sao chép. Giao diện Thread chỉ hỗ trợ một số lượng cố định địa chỉ unicast được thêm bên ngoài. Vui lòng xem OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể 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) thành công Địa chỉ giao diện mạng.
OT_ERROR_INVALID_ARGS
Địa chỉ IP do aAddress biểu thị 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
)

Thêm một cổng vào danh sách cổng không được bảo mật được cho phép.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aPort
Giá trị cổng.
Giá trị trả về
OT_ERROR_NONE
Đã thêm thành công cổng vào danh sách cổng không an toàn được cho 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
)

Chuyển đổi chuỗi địa chỉ IPv6 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 một địa chỉ IPv6.
Giá trị trả về
OT_ERROR_NONE
Đã phân tích cú pháp aString và cập nhật aAddress thành công.
OT_ERROR_PARSE
Không thể phân tích cú pháp aString dưới dạng địa chỉ IPv6.

otIp6AddressToString

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

Chuyển đổi địa chỉ IPv6 cho trước thành một chuỗi mà con người có thể đọc được.

Chuỗi địa chỉ IPv6 có định dạng là 16 giá trị hex được phân tách bằng ":" (ví dụ: "%x:%x:%x:...:%x").

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

otIp6ArePrefixesEqual

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

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

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

otIp6GetBorderRoutingCounters

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

Lấy bộ đếm Định tuyến biên giới.

Bạn phải bật tính năng thời gian xây dựng của OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
Con trỏ đến bộ đếm Định tuyến biên giới.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

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

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

otIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

Nhận tiền tố có aLength từ aAddress.

Thông tin chi tiết
Thông số
[in] aAddress
Con trỏ đến một địa chỉ IPv6.
[in] aLength
Độ dài của tiền tố tính bằng bit.
[out] aPrefix
Một con trỏ để xuất tiền tố IPv6.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

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

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể 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
)

Trả về một con trỏ đến danh sách cổng không an toàn.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể 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.

otIp6HasUnicastAddress

bool otIp6HasUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Cho biết địa chỉ IPv6 unicast có được chỉ định cho giao diện Thread hay không.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aAddress
Con trỏ đến địa chỉ unicast.
Giá trị trả về
TRUE
Nếu aAddress được chỉ định cho giao diện Thread.
FALSE
Nếu aAddress không được chỉ định cho giao diện Thread.

otIp6IsAddressEqual

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

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

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

otIp6IsAddressUnspecified

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Cho biết liệu một địa chỉ IPv6 nhất định có phải là Địa chỉ không xác định hay không.

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

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Cho biết giao diện IPv6 có hoạt động hay không.

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

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Kiểm tra xem chế độ hỗn hợp đa hướng có được bật trên giao diện Thread hay không.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Xem thêm:
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Cho biết liệu lưu lượng truy cập kiểm soát luồng có được lọc ra 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() hay không.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
TRUE nếu lưu lượng truy cập Kiểm soát luồng bị lọc ra, nếu không thì sẽ là FALSE.
Xem thêm:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Cho biết liệu mô-đun SLAAC có được bật hay không.

Bạn phải bật tính năng thời gian xây dựng của 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ổ một vùng đệm thông báo mới để gửi thông báo IPv6.

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

otIp6NewMessageFromBuffer

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

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

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aData
Con trỏ tới vùng đệm gói dữ liệu IPv6.
[in] aDataLength
Kích thước của vùng đệm gói dữ liệu IPv6 do aData trỏ đến.
[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ỏ đến thông báo hoặc giá trị NULL nếu tiêu đề IPv6 không đúng định dạng hoặc không có đủ vùng đệm thông báo.
Xem thêm:
otMessageFree

otIp6PrefixFromString

otError otIp6PrefixFromString(
  const char *aString,
  otIp6Prefix *aPrefix
)

Chuyển đổi chuỗi tiền tố IPv6 mà con người có thể đọc được thành biểu diễn nhị phân.

Tham số aString phải là một chuỗi có định dạng "

/", trong đó
là địa chỉ IPv6 và là độ dài tiền tố.

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] aPrefix
Con trỏ tới tiền tố IPv6.
Giá trị trả về
OT_ERROR_NONE
Đã phân tích cú pháp thành công chuỗi dưới dạng tiền tố IPv6 và cập nhật aPrefix.
OT_ERROR_PARSE
Không thể phân tích cú pháp aString dưới dạng tiền tố IPv6.

otIp6PrefixMatch

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

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

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

otIp6PrefixToString

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

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

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Chuyển đổi một số giao thức IP đã cho thành chuỗi mà con người có thể đọc được.

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

otIp6RegisterMulticastListeners

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

Đăng ký trình nghe Multicast cho Bộ định tuyến đường trục chính.

Bạn phải bật OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLEOPENTHREAD_CONFIG_COMMISSIONER_ENABLE.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aAddresses
Mảng địa chỉ Multicast cần đăng ký.
[in] aAddressNum
Số Địa chỉ Multicast cần đă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) cần được đưa vào MLR.req. Giá trị thời gian chờ là 0 sẽ xoá Trình nghe đa hướng tương ứng. Nếu giá trị là NULL, thì theo mặc định, MLR.req sẽ không có Thời gian chờ Tlv.
[in] aCallback
Con trỏ đến hàm callback.
[in] aContext
Con trỏ đến ngữ cảnh người dùng.
Giá trị trả về
OT_ERROR_NONE
Đã gửi thành công MLR.req. aCallback sẽ được gọi nếu phương thức này trả về OT_ERROR_NONE.
OT_ERROR_BUSY
Nếu quá trình đăng ký trước đó đang diễn ra.
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ụ: Uỷ viên chưa bắt đầu, thì không tìm thấy Bộ định tuyến trục chính chính).
OT_ERROR_NO_BUFS
Nếu không có đủ vùng đệm thư.
Xem thêm:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Xoá tất cả các cổng khỏi danh sách cổng không an toàn được cho phép.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.

otIp6RemoveUnicastAddress

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

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

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aAddress
Con trỏ đến một Địa chỉ IP.
Giá trị trả về
OT_ERROR_NONE
Đã xoá thành công Địa chỉ giao diện mạng.
OT_ERROR_INVALID_ARGS
Địa chỉ IP do aAddress biểu thị 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
)

Xoá một cổng khỏi danh sách cổng không an toàn được cho phép.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aPort
Giá trị cổng.
Giá trị trả về
OT_ERROR_NONE
Đã xoá thành công cổng khỏi danh sách cổng không an toàn được cho 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 trong danh sách cổng không an toàn.

otIp6ResetBorderRoutingCounters

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

Đặt lại bộ đếm định tuyến biên giới.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Thực hiện lựa chọn địa chỉ nguồn OpenThread.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể 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.

otIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Gửi một gói dữ liệu IPv6 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 IPv6.
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ư.
OT_ERROR_INVALID_ARGS
Siêu dữ liệu của thông báo không hợp lệ, ví dụ: thông báo sử dụng OT_MESSAGE_ORIGIN_THREAD_NETIF làm nguồn gốc.

otIp6SetAddressCallback

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

Đăng ký lệnh gọi lại để thông báo về các thay đổi đối với địa chỉ IPv6 nội bộ.

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 thêm hoặc xoá địa chỉ IPv6 nội bộ. NULL (Rỗng) để tắt lệnh gọi lại.
[in] aCallbackContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Đưa giao diện IPv6 lên hoặc xuống.

Gọi sự kiện này để bật hoặc tắt giao tiếp IPv6.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aEnabled
TRUE để bật IPv6, nếu không sẽ là FALSE.
Giá trị trả về
OT_ERROR_NONE
Đã đưa giao diện IPv6 lên/xuống thành công.
OT_ERROR_INVALID_STATE
Không có giao diện IPv6 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 được bật).

otIp6SetMeshLocalIid

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

Đặt IID cục bộ Mesh (cho mục đích thử nghiệm).

Cần có OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aIid
Một con trỏ đến Mesh Local IID cần đặt.
Giá trị trả về
OT_ERROR_NONE
Đặt thành công IID cục bộ Mesh.
OT_ERROR_INVALID_STATE
Các giao thức luồng đang bật.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Bật hoặc tắt chế độ hỗn hợp phát đa hướng trên giao diện Thread.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aEnabled
TRUE để bật chế độ Đa hướng hỗn hợp, nếu không thì là FALSE.
Xem thêm:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

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

Đăng ký một lệnh gọi lại để cung cấp gói dữ liệu IPv6 nhận được.

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

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 IPv6 hoặc 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.
Xem thêm:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Thiết lập xem lưu lượng truy cập kiểm soát luồng có được lọc ra 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() hay không.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aEnabled
TRUE nếu lưu lượng truy cập Kiểm soát luồng bị lọc ra, nếu không thì sẽ là FALSE.
Xem thêm:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Bật/tắt mô-đun SLAAC.

Bạn phải bật tính năng thời gian xây dựng của OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

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

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

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

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

Bạn phải bật tính năng thời gian xây dựng của OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

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

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

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

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aFilter
Con trỏ tới trình xử lý bộ lọc 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
)

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

Chuỗi địa chỉ cổng kết nối IPv6 có định dạng [address]:port, trong đó address được thể hiện dưới dạng 16 giá trị hex phân tách bằng :port là số cổng ở định dạng thập phân, ví dụ như "[%x:%x:...:%x]:%u".

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] aSockAddr
Con trỏ tới địa chỉ ổ cắm IPv6 (PHẢI KHÔNG là NULL).
[out] aBuffer
Con trỏ đến một mảng char để xuất chuỗi (KHÔNG ĐƯỢC là NULL).
[in] aSize
Kích thước của aBuffer (tính bằng byte). Bạn nên dùng OT_IP6_SOCK_ADDR_STRING_SIZE.

otIp6SubscribeMulticastAddress

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

Đăng ký giao diện Thread (Luồng) vào Địa chỉ Multicast giao diện mạng.

Thực thể aAddress đã truyền sẽ được giao diện Thread sao chép. Giao diện Thread chỉ hỗ trợ một số lượng cố định địa chỉ phát đa hướng được thêm bên ngoài. Vui lòng xem OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

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

otIp6UnsubscribeMulticastAddress

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

Huỷ đăng ký giao diện Thread (Chuỗi) đối với Địa chỉ Multicast giao diện mạng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aAddress
Con trỏ đến một Địa chỉ IP.
Giá trị trả về
OT_ERROR_NONE
Huỷ đăng ký Địa chỉ đa hướng giao diện mạng thành công.
OT_ERROR_REJECTED
Địa chỉ IP do aAddress biểu thị 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 chuỗi đại diện của địa chỉ IPv6.

OT_IP6_HEADER_PROTO_OFFSET

 OT_IP6_HEADER_PROTO_OFFSET 6

Phần bù của trường proto trong tiêu đề IPv6 (byte)

OT_IP6_HEADER_SIZE

 OT_IP6_HEADER_SIZE 40

Kích thước của tiêu đề IPv6 (byte)

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Kích thước của mã 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 tính năng Đăng ký Trình nghe Multicast hỗ trợ.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

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

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

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

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Kích thước đề xuất cho chuỗi đại diện của một tiền tố IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Kích thước đề xuất cho biểu thị dạng chuỗi của địa chỉ ổ cắm IPv6.

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.