trang kết quả tìm kiếm

Mô-đun này bao gồm các hàm kiểm soát hành vi của ứng dụng SRP.

Tóm tắt

Mô-đun này bao gồm các chức năng của Giao thức đăng ký dịch vụ.

Mô-đun này bao gồm các hàm dành cho vùng đệm ứng dụng SRP và nhóm dịch vụ.

Các hàm trong mô-đun này chỉ có sẵn khi đã bật tính năng cảnh open trưng_CONFIG_SRP_CLIENT_BUFFERS_ENABLE.

Bảng liệt kê

otSrpClientItemState{
  OT_SRP_CLIENT_ITEM_STATE_TO_ADD,
  OT_SRP_CLIENT_ITEM_STATE_ADDING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH,
  OT_SRP_CLIENT_ITEM_STATE_REFRESHING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE,
  OT_SRP_CLIENT_ITEM_STATE_REMOVING,
  OT_SRP_CLIENT_ITEM_STATE_REGISTERED,
  OT_SRP_CLIENT_ITEM_STATE_REMOVED
}
enum
Chỉ định trạng thái của mục máy khách SRP (thông tin dịch vụ hoặc máy chủ).
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
Đại diện cho chế độ địa chỉ mà máy chủ SRP sử dụng.
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
enum
Biểu thị trạng thái của máy chủ SRP.

Typedef

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Loại con trỏ xác định lệnh gọi lại mà ứng dụng SRP sử dụng để thông báo cho người dùng khi quá trình này tự động bắt đầu hoặc dừng.
otSrpClientBuffersServiceEntry typedef
Đại diện cho một mục nhập trong nhóm dịch vụ ứng dụng SRP.
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Loại con trỏ xác định lệnh gọi lại mà ứng dụng SRP sử dụng để thông báo cho người dùng về các thay đổi/sự kiện/lỗi.
otSrpClientHostInfo typedef
Đại diện cho thông tin máy chủ lưu trữ ứng dụng SRP.
otSrpClientService typedef
Đại diện cho dịch vụ ứng dụng SRP.
otSrpServerAddressMode typedef
Đại diện cho chế độ địa chỉ mà máy chủ SRP sử dụng.
otSrpServerHost typedef
Loại không rõ ràng này đại diện cho một máy chủ dịch vụ SRP.
otSrpServerLeaseConfig typedef
Bao gồm cấu hình LEASE và KEY-LEASE cho máy chủ SRP.
otSrpServerLeaseInfo typedef
Bao gồm thông tin cho thuê máy chủ SRP của một máy chủ lưu trữ/dịch vụ.
otSrpServerResponseCounters typedef
Bao gồm số liệu thống kê về các phản hồi của máy chủ SRP.
otSrpServerService typedef
Loại không rõ ràng này đại diện cho dịch vụ SRP.
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Xử lý các bản cập nhật dịch vụ SRP.
otSrpServerServiceUpdateId typedef
uint32_t
Mã của giao dịch cập nhật dịch vụ SRP trên Máy chủ SRP.
otSrpServerTtlConfig typedef
Bao gồm cả cấu hình TTL của máy chủ SRP.

Hàm

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
Thêm một dịch vụ để được đăng ký với máy chủ.
otSrpClientBuffersAllocateService(otInstance *aInstance)
Phân bổ một mục nhập dịch vụ mới từ nhóm.
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
Giải phóng tất cả các mục nhập dịch vụ đã phân bổ trước đó.
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Giải phóng một mục dịch vụ được phân bổ trước đó.
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
Lấy dãy mục nhập địa chỉ IPv6 để dùng làm danh sách địa chỉ máy chủ SRP.
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
Lấy vùng đệm chuỗi để dùng cho tên máy chủ lưu trữ ứng dụng SRP.
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Lấy vùng đệm chuỗi cho tên thực thể dịch vụ từ một mục nhập dịch vụ.
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Lấy vùng đệm chuỗi cho tên dịch vụ từ một mục nhập dịch vụ.
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Lấy vùng đệm cho bản ghi TXT từ một mục nhập dịch vụ.
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Lấy mảng cho các nhãn loại dịch vụ phụ từ mục nhập dịch vụ.
otSrpClientClearHostAndServices(otInstance *aInstance)
void
Xoá mọi thông tin về máy chủ và mọi dịch vụ.
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
Xoá một dịch vụ, ngay lập tức xoá dịch vụ đó khỏi danh sách dịch vụ khách hàng.
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
Tắt chế độ tự động bắt đầu.
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
Bật chế độ địa chỉ máy chủ tự động.
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Bật chế độ tự động bắt đầu.
otSrpClientGetDomainName(otInstance *aInstance)
const char *
Lấy tên miền mà ứng dụng SRP đang sử dụng.
otSrpClientGetHostInfo(otInstance *aInstance)
Lấy thông tin về máy chủ.
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
Lấy khoảng thời gian thuê khoá mặc định dùng trong các yêu cầu cập nhật SRP.
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
Lấy khoảng thời gian thuê mặc định dùng trong các yêu cầu cập nhật SRP.
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
Lấy địa chỉ ổ cắm (địa chỉ IPv6 và số cổng) của máy chủ SRP đang được ứng dụng SRP sử dụng.
otSrpClientGetServices(otInstance *aInstance)
Lấy danh sách các dịch vụ đang được khách hàng quản lý.
otSrpClientGetTtl(otInstance *aInstance)
uint32_t
Lấy giá trị TTL trong mọi bản ghi có trong yêu cầu cập nhật SRP.
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
Cho biết trạng thái hiện tại của chế độ tự động bắt đầu (bật hoặc tắt).
otSrpClientIsRunning(otInstance *aInstance)
bool
Cho biết ứng dụng SRP có đang chạy hay không.
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
Cho biết chế độ "bao gồm bản ghi khoá dịch vụ" được bật hay tắt.
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
Chuyển đổi otSrpClientItemState thành một chuỗi.
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Bắt đầu quá trình xoá thông tin máy chủ lưu trữ và tất cả các dịch vụ.
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
Yêu cầu huỷ đăng ký một dịch vụ với máy chủ.
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Thiết lập lệnh gọi lại để thông báo cho phương thức gọi về các sự kiện/thay đổi từ ứng dụng SRP.
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
Đặt tên miền mà ứng dụng SRP sẽ sử dụng.
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Đặt/cập nhật danh sách địa chỉ IPv6 của máy chủ.
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
Đặt nhãn tên máy chủ lưu trữ.
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Đặt khoảng thời gian thuê khoá mặc định dùng trong các yêu cầu cập nhật SRP.
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Đặt khoảng thời gian thuê mặc định dùng trong các yêu cầu cập nhật SRP.
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
Bật/tắt chế độ "bao gồm bản ghi khoá dịch vụ".
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
void
Đặt giá trị TTL trong mọi bản ghi có trong yêu cầu cập nhật SRP.
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
Bắt đầu thao tác ứng dụng SRP.
otSrpClientStop(otInstance *aInstance)
void
Dừng hoạt động của ứng dụng SRP.
otSrpServerGetAddressMode(otInstance *aInstance)
Trả về chế độ địa chỉ mà máy chủ SRP đang sử dụng.
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
Trả về số thứ tự dùng với chế độ địa chỉ Anycast.
otSrpServerGetDomain(otInstance *aInstance)
const char *
Trả về miền được uỷ quyền cho máy chủ SRP.
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Trả về cấu hình LEASE và KEY-LEASE của máy chủ SRP.
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
Trả về máy chủ đã đăng ký tiếp theo trên máy chủ SRP.
otSrpServerGetPort(otInstance *aInstance)
uint16_t
Trả về cổng mà máy chủ SRP đang nghe.
otSrpServerGetResponseCounters(otInstance *aInstance)
Trả về bộ đếm phản hồi của máy chủ SRP.
otSrpServerGetState(otInstance *aInstance)
Trả về trạng thái của máy chủ SRP.
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
void
Trả về cấu hình TTL của máy chủ SRP.
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Báo cáo kết quả xử lý bản cập nhật SRP cho máy chủ SRP.
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Trả về địa chỉ của máy chủ đã cho.
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
Trả về tên đầy đủ của máy chủ lưu trữ.
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
void
Trả về thông tin LEASE và KEY-LEASE của một máy chủ lưu trữ cụ thể.
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
Trả về dịch vụ tiếp theo của máy chủ đã chọn.
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
Cho biết liệu máy chủ dịch vụ SRP đã bị xoá hay chưa.
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
bool
Cho biết liệu máy chủ có khớp với một tên máy chủ được cung cấp hay không.
otSrpServerIsAutoEnableMode(otInstance *aInstance)
bool
Cho biết liệu chế độ tự động bật được bật hay tắt.
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
Phân tích cú pháp tên dịch vụ loại phụ (tên đầy đủ) và trích xuất nhãn loại phụ.
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
Trả về máy chủ lưu trữ có thực thể dịch vụ.
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
const char *
Trả về nhãn thực thể dịch vụ (nhãn đầu tiên trong tên thực thể) của dịch vụ.
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
Trả về tên phiên bản dịch vụ đầy đủ của dịch vụ.
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
void
Trả về thông tin LEASE và KEY-LEASE của một dịch vụ cụ thể.
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
uint16_t
Lấy số lượng loại phụ của dịch vụ.
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
Trả về cổng của thực thể dịch vụ.
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
Trả về mức độ ưu tiên của thực thể dịch vụ.
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
Trả về tên dịch vụ đầy đủ của dịch vụ.
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
const char *
Lấy tên dịch vụ loại phụ (tên đầy đủ) của dịch vụ tại một chỉ mục nhất định.
otSrpServerServiceGetTtl(const otSrpServerService *aService)
uint32_t
Trả về TTL của thực thể dịch vụ.
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Trả về dữ liệu bản ghi TXT của thực thể dịch vụ.
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
Trả về trọng số của thực thể dịch vụ.
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
bool
Cho biết dịch vụ có một loại phụ cụ thể hay không.
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
Cho biết dịch vụ SRP đã bị xoá hay chưa.
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
bool
Cho biết liệu dịch vụ này có khớp với tên phiên bản dịch vụ đã cho hay không.
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
bool
Cho biết liệu dịch vụ này có khớp với một tên dịch vụ cụ thể hay không.
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
Đặt chế độ địa chỉ mà máy chủ SRP sẽ sử dụng.
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
Đặt số thứ tự dùng với chế độ địa chỉ Anycast.
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
void
Bật/tắt chế độ tự động bật trên máy chủ SRP.
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
Thiết lập miền trên máy chủ SRP.
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
Bật/tắt máy chủ SRP.
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Đặt cấu hình LEASE và KEY-LEASE cho máy chủ SRP.
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Đặt trình xử lý cập nhật dịch vụ SRP trên máy chủ SRP.
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
Đặt cấu hình TTL của máy chủ SRP.

Cấu trúc

otSrpClientBuffersServiceEntry

Đại diện cho một mục nhập trong nhóm dịch vụ ứng dụng SRP.

otSrpClientHostInfo

Đại diện cho thông tin máy chủ lưu trữ ứng dụng SRP.

otSrpClientService

Đại diện cho dịch vụ ứng dụng SRP.

otSrpServerLeaseConfig

Bao gồm cấu hình LEASE và KEY-LEASE cho máy chủ SRP.

otSrpServerLeaseInfo

Bao gồm thông tin cho thuê máy chủ SRP của một máy chủ lưu trữ/dịch vụ.

otSrpServerResponseCounters

Bao gồm số liệu thống kê về các phản hồi của máy chủ SRP.

otSrpServerTtlConfig

Bao gồm cả cấu hình TTL của máy chủ SRP.

Bảng liệt kê

otSrpClientItemState

 otSrpClientItemState

Chỉ định trạng thái của mục máy khách SRP (thông tin dịch vụ hoặc máy chủ).

Thuộc tính
OT_SRP_CLIENT_ITEM_STATE_ADDING

Mục đang được thêm/đăng ký.

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

Đang làm mới mục.

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

Mục đã được đăng ký với máy chủ.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

Mục này đã bị xoá.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

Mục đang bị xoá.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Mục sẽ được thêm vào/đăng ký.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Mặt hàng sẽ được làm mới (đăng ký lại để gia hạn hợp đồng thuê).

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Mục cần xoá.

otSrpServerAddressMode

 otSrpServerAddressMode

Đại diện cho chế độ địa chỉ mà máy chủ SRP sử dụng.

Chế độ địa chỉ chỉ định cách máy chủ SRP xác định địa chỉ và số cổng và cách thông tin này được xuất bản trong Dữ liệu mạng luồng.

Thuộc tính
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

Chế độ địa chỉ Anycast.

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

Chế độ địa chỉ Unicast.

otSrpServerState

 otSrpServerState

Biểu thị trạng thái của máy chủ SRP.

Thuộc tính
OT_SRP_SERVER_STATE_DISABLED

Máy chủ SRP đã bị tắt.

OT_SRP_SERVER_STATE_RUNNING

Máy chủ SRP đã được bật và đang chạy.

OT_SRP_SERVER_STATE_STOPPED

Máy chủ SRP đã bật nhưng đã dừng lại.

Typedef

otSrpClientAutoStartCallback

void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)

Loại con trỏ xác định lệnh gọi lại mà ứng dụng SRP sử dụng để thông báo cho người dùng khi quá trình này tự động bắt đầu hoặc dừng.

Chế độ này chỉ được sử dụng khi bạn bật tính năng tự động bắt đầu OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE.

Lệnh gọi lại này được gọi khi chế độ tự động bắt đầu được bật và ứng dụng SRP tự động bắt đầu hoặc dừng.

Thông tin chi tiết
Thông số
[in] aServerSockAddr
Con trỏ không phải là NULL cho biết máy chủ SRP đã được khởi động và con trỏ sẽ cung cấp địa chỉ cổng máy chủ được chọn. Con trỏ NULL cho biết máy chủ SRP đã dừng.
[in] aContext
Con trỏ đến một ngữ cảnh tuỳ ý (được cung cấp khi đăng ký lệnh gọi lại).

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Đại diện cho một mục nhập trong nhóm dịch vụ ứng dụng SRP.

otSrpClientCallback

void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)

Loại con trỏ xác định lệnh gọi lại mà ứng dụng SRP sử dụng để thông báo cho người dùng về các thay đổi/sự kiện/lỗi.

Lệnh gọi lại này được gọi khi đăng ký cập nhật thành công (tức là thêm/xoá thông tin máy chủ và/hoặc một số dịch vụ) với máy chủ SRP hoặc nếu có lỗi hoặc lỗi (ví dụ: máy chủ từ chối yêu cầu cập nhật hoặc máy khách hết thời gian chờ phản hồi, v.v.).

Trong trường hợp đăng ký lại thành công một bản cập nhật, tham số aError sẽ là OT_ERROR_NONE và thông tin máy chủ lưu trữ cũng như danh sách đầy đủ các dịch vụ sẽ được cung cấp dưới dạng tham số đầu vào cho lệnh gọi lại. Xin lưu ý rằng mỗi thông tin và dịch vụ trên máy chủ lưu trữ đều theo dõi trạng thái riêng trong biến thành phần mState tương ứng của cấu trúc dữ liệu liên quan (trạng thái cho biết thông tin/dịch vụ lưu trữ đã được đăng ký hay bị xoá hay vẫn đang được thêm/xoá, v.v.).

Danh sách các dịch vụ đã xoá được chuyển dưới dạng danh sách liên kết riêng aRemovedServices trong lệnh gọi lại. Xin lưu ý rằng khi lệnh gọi lại được gọi, ứng dụng SRP (triển khai OpenThread) sẽ hoàn tất với các thực thể dịch vụ đã xoá được liệt kê trong aRemovedServices và không còn theo dõi/lưu trữ các thực thể đó nữa (tức là nếu trong lệnh gọi lại chúng ta gọi otSrpClientGetServices(), các dịch vụ đã xoá sẽ không xuất hiện trong danh sách được trả về). Việc cung cấp danh sách riêng các dịch vụ đã bị xoá trong lệnh gọi lại giúp cho người dùng biết những mục nào hiện đã bị xoá và cho phép người dùng xác nhận lại/sử dụng lại các thực thể đó.

Nếu máy chủ từ chối yêu cầu cập nhật SRP, thì mã phản hồi DNS (RFC 2136) sẽ được ánh xạ tới các lỗi sau:

  • (0) NOERROR Thành công (không có điều kiện lỗi) -> OT_ERROR_NONE
  • (1) Máy chủ FORMERR không thể diễn giải do lỗi định dạng -> OT_ERROR_PARSE
  • (2) Máy chủ SERVFAIL gặp lỗi nội bộ -> OT_ERROR_FAILED
  • (3) Tên NXDOMAIN lẽ ra phải tồn tại, không tồn tại -> OT_ERROR_NOT_FOUND
  • (4) Máy chủ NOTIMP không hỗ trợ loại truy vấn (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) REFUSED máy chủ bị từ chối vì lý do chính sách/bảo mật -> OT_ERROR_Security
  • (6) YXDOMAIN Một số tên không nên tồn tại, nhưng có tồn tại -> OT_ERROR_DUPLICATED
  • (7) YXRR Giả lập một số bộ bản đồ không nên tồn tại, nhưng có tồn tại -> OT_ERROR_DUPLICATED
  • (8) NXRR kín Một số tập dữ liệu lặp phải tồn tại, không tồn tại -> OT_ERROR_NOT_FOUND
  • (9) Dịch vụ NOTAUTH không có căn cứ cho vùng -> OT_ERROR_SECURE
  • (10) NOTZONE Một tên không nằm trong vùng -> OT_ERROR_PARSE
  • (20) BADNAME Tên không hợp lệ -> OT_ERROR_PARSE
  • (21) Thuật toán kém BADALG -> OT_ERROR_Security
  • (22) Rút ngắn BADTRUN không hợp lệ -> OT_ERROR_PARSE
  • Các mã phản hồi khác -> OT_ERROR_FAILED

Các lỗi sau đây cũng có thể xảy ra:

  • OT_ERROR_ pixel_TIMEOUT : Đã hết thời gian chờ phản hồi từ máy chủ (máy khách sẽ tiếp tục thử lại).
  • OT_ERROR_INVALID_ARGS : Cấu trúc dịch vụ đã cung cấp không hợp lệ (ví dụ: tên dịch vụ hoặc otDnsTxtEntry không hợp lệ).
  • OT_ERROR_NO_BUFS : Không đủ bộ đệm để chuẩn bị hoặc gửi thông báo cập nhật.

Lưu ý rằng trong trường hợp có bất kỳ lỗi nào, máy khách sẽ tiếp tục hoạt động, tức là máy khách sẽ chuẩn bị và (lại) truyền thông báo cập nhật SRP đến máy chủ, sau một khoảng thời gian chờ. Khoảng thời gian chờ thử lại bắt đầu từ giá trị tối thiểu và được tăng theo hệ số tăng trưởng mỗi khi không đạt đến giá trị tối đa (vui lòng xem thông số cấu hình OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL và các thông số liên quan để biết thêm chi tiết).

Thông tin chi tiết
Thông số
[in] aError
Lỗi (xem ở trên).
[in] aHostInfo
Con trỏ đến thông tin máy chủ.
[in] aServices
Phần đầu của danh sách được liên kết chứa tất cả các dịch vụ (ngoại trừ những dịch vụ đã bị xóa). NULL nếu danh sách trống.
[in] aRemovedServices
Đầu danh sách được liên kết chứa tất cả dịch vụ đã bị xoá. NULL nếu danh sách trống.
[in] aContext
Con trỏ đến một ngữ cảnh tuỳ ý (được cung cấp khi đăng ký lệnh gọi lại).

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Đại diện cho thông tin máy chủ lưu trữ ứng dụng SRP.

otSrpClientService

struct otSrpClientService otSrpClientService

Đại diện cho dịch vụ ứng dụng SRP.

Các giá trị trong cấu trúc này, bao gồm cả vùng đệm chuỗi cho tên và các mục nhập bản ghi TXT, PHẢI duy trì và không đổi sau khi một thực thể của cấu trúc này được chuyển đến OpenThread từ otSrpClientAddService() hoặc otSrpClientRemoveService().

Các trường mState, mData, mNext chỉ do lõi OT (OT) sử dụng/quản lý. Giá trị của chúng bị bỏ qua khi một thực thể của otSrpClientService được truyền vào otSrpClientAddService() hoặc otSrpClientRemoveService() hoặc các hàm khác. Phương thức gọi không cần phải đặt các trường này.

Các trường mLeasemKeyLease chỉ định khoảng thời gian thuê và khoảng thời gian thuê mong muốn cho dịch vụ này. Giá trị 0 cho biết khoảng thời gian này không được chỉ định, sau đó khoảng thời gian thuê hoặc thuê khoá mặc định từ otSrpClientGetLeaseInterval()otSrpClientGetKeyLeaseInterval() được dùng cho dịch vụ này. Nếu khoảng thời gian thuê chính (cho dù được thiết lập rõ ràng hay xác định theo mặc định) ngắn hơn khoảng thời gian thuê của một dịch vụ, thì máy khách SRP cũng sẽ sử dụng lại giá trị khoảng thời gian thuê cho khoảng thời gian thuê chính. Ví dụ: nếu trong dịch vụ mLease được đặt rõ ràng là 2 ngày và mKeyLease được đặt thành 0 và thời gian thuê khoá mặc định được đặt là 1 ngày, thì khi đăng ký dịch vụ này, thời gian thuê khoá được yêu cầu cho dịch vụ này cũng được đặt thành 2 ngày.

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Đại diện cho chế độ địa chỉ mà máy chủ SRP sử dụng.

Chế độ địa chỉ chỉ định cách máy chủ SRP xác định địa chỉ và số cổng và cách thông tin này được xuất bản trong Dữ liệu mạng luồng.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Loại không rõ ràng này đại diện cho một máy chủ dịch vụ SRP.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Bao gồm cấu hình LEASE và KEY-LEASE cho máy chủ SRP.

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

Bao gồm thông tin cho thuê máy chủ SRP của một máy chủ lưu trữ/dịch vụ.

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

Bao gồm số liệu thống kê về các phản hồi của máy chủ SRP.

otSrpServerService

struct otSrpServerService otSrpServerService

Loại không rõ ràng này đại diện cho dịch vụ SRP.

otSrpServerServiceUpdateHandler

void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)

Xử lý các bản cập nhật dịch vụ SRP.

Được máy chủ SRP gọi để thông báo rằng một máy chủ SRP và có thể là các dịch vụ SRP đang được cập nhật. Điều quan trọng là các bản cập nhật SRP không được cam kết cho đến khi trình xử lý trả về kết quả bằng cách gọi otSrpServerHandleServiceUpdateResult hoặc hết thời gian chờ sau aTimeout.

Trình quan sát dịch vụ SRP phải luôn gọi otSrpServerHandleServiceUpdateResult với mã lỗi OT_ERROR_NONE ngay sau khi nhận được sự kiện cập nhật.

Trình xử lý tổng quát hơn có thể thực hiện xác thực trên máy chủ/dịch vụ SRP và từ chối cập nhật SRP nếu có bất kỳ quá trình xác thực nào không thành công. Ví dụ: Proxy quảng cáo sẽ quảng cáo (hoặc xoá) máy chủ lưu trữ và các dịch vụ trên đường liên kết có khả năng phát đa hướng, đồng thời trả về mã lỗi cụ thể nếu có lỗi xảy ra.

Thông tin chi tiết
Thông số
[in] aId
Mã giao dịch cập nhật dịch vụ. Mã nhận dạng này phải được trả về bằng otSrpServerHandleServiceUpdateResult.
[in] aHost
Con trỏ đến đối tượng otSrpServerHost chứa các bản cập nhật SRP. Trình xử lý phải xuất bản/huỷ xuất bản máy chủ lưu trữ và mỗi dịch vụ trỏ tới máy chủ lưu trữ này với các quy tắc bên dưới:
  1. Nếu không bị xoá (biểu thị bằng otSrpServerHostIsDeleted), máy chủ lưu trữ phải được phát hành hoặc cập nhật bằng mDNS. Nếu không, máy chủ lưu trữ sẽ bị huỷ xuất bản (xoá RR AAAA).
  2. Đối với mỗi dịch vụ trỏ đến máy chủ lưu trữ này, máy chủ phải bị hủy xuất bản nếu muốn hủy xuất bản. Nếu không, trình xử lý phải phát hành hoặc cập nhật dịch vụ khi chưa bị xoá (biểu thị bằng otSrpServerServiceIsDeleted) và huỷ phát hành khi dịch vụ bị xoá.
[in] aTimeout
Thời gian tối đa tính bằng mili giây để trình xử lý xử lý sự kiện dịch vụ.
[in] aContext
Con trỏ đến ngữ cảnh dành riêng cho ứng dụng.
Xem thêm:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

Mã của giao dịch cập nhật dịch vụ SRP trên Máy chủ SRP.

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

Bao gồm cả cấu hình TTL của máy chủ SRP.

Hàm

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Thêm một dịch vụ để được đăng ký với máy chủ.

Sau khi bạn gọi hàm này thành công, otSrpClientCallback sẽ được gọi để báo cáo trạng thái thêm/đăng ký dịch vụ với máy chủ SRP.

Thực thể otSrpClientService được aService trỏ đến PHẢI duy trì và không thay đổi sau khi trở về từ hàm này (bằng OT_ERROR_NONE). OpenThread sẽ lưu con trỏ vào thực thể dịch vụ.

OpenThread không theo dõi phiên bản otSrpClientService này nữa và chỉ có thể được xác nhận lại khi

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aService
Con trỏ đến một thực thể otSrpClientService cần thêm.
Giá trị trả về
OT_ERROR_NONE
Quá trình thêm dịch vụ đã bắt đầu thành công. otSrpClientCallback sẽ được gọi để báo cáo trạng thái.
OT_ERROR_ALREADY
Một dịch vụ có cùng tên dịch vụ và thực thể đã có trong danh sách.
OT_ERROR_INVALID_ARGS
Cấu trúc dịch vụ không hợp lệ (ví dụ: tên dịch vụ hoặc otDnsTxtEntry không hợp lệ).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Phân bổ một mục nhập dịch vụ mới từ nhóm.

Thực thể mục nhập dịch vụ được trả về sẽ được khởi động như sau:

  • mService.mName sẽ trỏ đến một vùng đệm chuỗi được phân bổ. Bạn có thể truy xuất vùng đệm này bằng hàm otSrpClientBuffersGetServiceEntryServiceNameString().
  • mService.mInstanceName sẽ trỏ đến một vùng đệm chuỗi được phân bổ. Bạn có thể truy xuất vùng đệm này bằng hàm otSrpClientBuffersGetServiceEntryInstanceNameString().
  • mService.mSubTypeLabels trỏ đến một mảng được trả về từ otSrpClientBuffersGetSubTypeLabelsArray().
  • mService.mTxtEntries sẽ trỏ đến mTxtEntry.
  • mService.mNumTxtEntries sẽ được đặt ở mức 1.
  • Các trường mService khác (cổng, mức độ ưu tiên, trọng số) được đặt thành 0.
  • mTxtEntry.mKey được đặt thành NULL (giá trị được coi là đã được mã hoá).
  • mTxtEntry.mValue sẽ trỏ đến một vùng đệm được phân bổ mà bạn có thể truy xuất bằng hàm otSrpClientBuffersGetServiceEntryTxtBuffer().
  • mTxtEntry.mValueLength được đặt thành 0.
  • Tất cả vùng đệm và mảng dữ liệu/chuỗi có liên quan sẽ bị xoá về 0.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Con trỏ tới mục nhập dịch vụ mới được phân bổ hoặc giá trị NULL nếu không có thêm mục nhập nào khác trong nhóm.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Giải phóng tất cả các mục nhập dịch vụ đã phân bổ trước đó.

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

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Giải phóng một mục dịch vụ được phân bổ trước đó.

aService PHẢI được phân bổ trước đó bằng otSrpClientBuffersAllocateService() và chưa được giải phóng. Nếu không thì hành vi của hàm này là không xác định.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aService
Con trỏ đến mục dịch vụ cần giải phóng (PHẢI KHÔNG là NULL).

otSrpClientBuffersGetHostAddressesArray

otIp6Address * otSrpClientBuffersGetHostAddressesArray(
  otInstance *aInstance,
  uint8_t *aArrayLength
)

Lấy dãy mục nhập địa chỉ IPv6 để dùng làm danh sách địa chỉ máy chủ SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[out] aArrayLength
Con trỏ đến một biến để trả về độ dài mảng, tức là số mục nhập địa chỉ IPv6 trong mảng (PHẢI KHÔNG là NULL).
Trả về
Con trỏ đến một mảng các mục nhập otIp6Address (số mục nhập sẽ được trả về trong aArrayLength).

otSrpClientBuffersGetHostNameString

char * otSrpClientBuffersGetHostNameString(
  otInstance *aInstance,
  uint16_t *aSize
)

Lấy vùng đệm chuỗi để dùng cho tên máy chủ lưu trữ ứng dụng SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[out] aSize
Con trỏ đến một biến để trả về kích thước (số byte) của vùng đệm chuỗi (KHÔNG PHẢI là NULL).
Trả về
Con trỏ tới vùng đệm ký tự để dùng cho tên máy chủ lưu trữ ứng dụng SRP.

otSrpClientBuffersGetServiceEntryInstanceNameString

char * otSrpClientBuffersGetServiceEntryInstanceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Lấy vùng đệm chuỗi cho tên thực thể dịch vụ từ một mục nhập dịch vụ.

Thông tin chi tiết
Thông số
[in] aEntry
Con trỏ đến mục nhập dịch vụ được phân bổ trước đó (PHẢI KHÔNG là NULL).
[out] aSize
Con trỏ đến một biến để trả về kích thước (số byte) của vùng đệm chuỗi (KHÔNG ĐƯỢC là NULL).
Trả về
Con trỏ đến vùng đệm chuỗi.

otSrpClientBuffersGetServiceEntryServiceNameString

char * otSrpClientBuffersGetServiceEntryServiceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Lấy vùng đệm chuỗi cho tên dịch vụ từ một mục nhập dịch vụ.

Thông tin chi tiết
Thông số
[in] aEntry
Con trỏ đến mục nhập dịch vụ được phân bổ trước đó (PHẢI KHÔNG là NULL).
[out] aSize
Con trỏ đến một biến để trả về kích thước (số byte) của vùng đệm chuỗi (KHÔNG ĐƯỢC là NULL).
Trả về
Con trỏ đến vùng đệm chuỗi.

otSrpClientBuffersGetServiceEntryTxtBuffer

uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Lấy vùng đệm cho bản ghi TXT từ một mục nhập dịch vụ.

Thông tin chi tiết
Thông số
[in] aEntry
Con trỏ đến mục nhập dịch vụ được phân bổ trước đó (PHẢI KHÔNG là NULL).
[out] aSize
Con trỏ đến một biến để trả về kích thước (số byte) của vùng đệm (KHÔNG ĐƯỢC là NULL).
Trả về
Con trỏ đến vùng đệm.

otSrpClientBuffersGetSubTypeLabelsArray

const char ** otSrpClientBuffersGetSubTypeLabelsArray(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aArrayLength
)

Lấy mảng cho các nhãn loại dịch vụ phụ từ mục nhập dịch vụ.

Thông tin chi tiết
Thông số
[in] aEntry
Con trỏ đến mục nhập dịch vụ được phân bổ trước đó (PHẢI KHÔNG là NULL).
[out] aArrayLength
Con trỏ đến một biến để trả về độ dài mảng (PHẢI KHÔNG là NULL).
Trả về
Con trỏ đến mảng.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Xoá mọi thông tin về máy chủ và mọi dịch vụ.

Không giống như otSrpClientRemoveHostAndServices() gửi thông báo cập nhật đến máy chủ để xoá mọi thông tin, chức năng này sẽ xoá tất cả thông tin ngay lập tức mà không cần bất kỳ hoạt động tương tác nào với máy chủ.

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

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Xoá một dịch vụ, ngay lập tức xoá dịch vụ đó khỏi danh sách dịch vụ khách hàng.

Không giống như otSrpClientRemoveService(), sẽ gửi thông báo cập nhật đến máy chủ để xoá dịch vụ, chức năng này sẽ xoá dịch vụ khỏi danh sách dịch vụ của ứng dụng mà không cần tương tác với máy chủ. Khi bạn gọi hàm này thành công, otSrpClientCallback sẽ KHÔNG được gọi và phương thức gọi có thể thu hồi cũng như sử dụng lại mục nhập aService ngay lập tức.

Có thể sử dụng cùng với lệnh gọi tiếp theo đến otSrpClientAddService() (có thể sử dụng lại cùng một mục aService với cùng tên dịch vụ và thực thể) để cập nhật một số tham số trong dịch vụ hiện có.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aService
Con trỏ đến một thực thể otSrpClientService cần xoá.
Giá trị trả về
OT_ERROR_NONE
Đã xoá thành công aService. Có thể thu hồi và sử dụng lại ngay lập tức.
OT_ERROR_NOT_FOUND
Không tìm thấy dịch vụ trong danh sách.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Tắt chế độ tự động bắt đầu.

Chức năng này chỉ hoạt động khi bạn bật tính năng tự động bắt đầu OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE.

Việc tắt chế độ tự động bắt đầu sẽ không làm ứng dụng ngừng hoạt động nếu ứng dụng đang chạy nhưng sẽ ngừng theo dõi Dữ liệu mạng luồng để xác minh rằng máy chủ SRP đã chọn vẫn còn tồn tại trong ứng dụng.

Xin lưu ý rằng lệnh gọi đến otSrpClientStop() cũng sẽ tắt chế độ tự động bắt đầu.

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

otSrpClientEnableAutoHostAddress

otError otSrpClientEnableAutoHostAddress(
  otInstance *aInstance
)

Bật chế độ địa chỉ máy chủ tự động.

Khi được bật, địa chỉ IPv6 của máy chủ sẽ được máy khách SRP tự động thiết lập bằng cách sử dụng tất cả các địa chỉ unicast ưu tiên trên Thread netif, ngoại trừ tất cả địa chỉ liên kết cục bộ và địa chỉ lưới cục bộ. Nếu không có địa chỉ ưu tiên, thì địa chỉ EID cục bộ dạng lưới sẽ được thêm. Ứng dụng SRP sẽ tự động đăng ký lại khi/nếu địa chỉ trên Thread netif được cập nhật (các địa chỉ mới được thêm vào hoặc các địa chỉ hiện có bị xoá hoặc được đánh dấu là không được ưu tiên).

Bạn có thể bật chế độ địa chỉ máy chủ tự động trước khi bắt đầu hoặc trong khi vận hành ứng dụng SRP trừ phi thông tin máy chủ lưu trữ đang bị xoá (ứng dụng đang bận xử lý yêu cầu xoá từ một lệnh gọi đến otSrpClientRemoveHostAndServices() và thông tin máy chủ vẫn đang ở trạng thái STATE_TO_REMOVE hoặc STATE_REMOVING).

Sau khi bật chế độ địa chỉ máy chủ tự động, bạn có thể tắt chế độ này bằng lệnh gọi đến otSrpClientSetHostAddresses() và đặt rõ ràng địa chỉ máy chủ lưu trữ.

Thông tin chi tiết
Giá trị trả về
OT_ERROR_NONE
Đã bật thành công chế độ địa chỉ máy chủ lưu trữ tự động.
OT_ERROR_INVALID_STATE
Máy chủ đang bị xoá nên không thể bật chế độ địa chỉ tự động của máy chủ lưu trữ.

otSrpClientEnableAutoStartMode

void otSrpClientEnableAutoStartMode(
  otInstance *aInstance,
  otSrpClientAutoStartCallback aCallback,
  void *aContext
)

Bật chế độ tự động bắt đầu.

Chức năng này chỉ hoạt động khi bạn bật tính năng tự động bắt đầu OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE.

Tuỳ chọn cấu hình OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE chỉ định chế độ tự động bắt đầu mặc định (cho dù được bật hay tắt khi bắt đầu ngăn xếp OT).

Khi bật tính năng tự động bắt đầu, máy khách SRP sẽ giám sát Dữ liệu mạng luồng để khám phá các máy chủ SRP và chọn máy chủ ưu tiên, đồng thời tự động khởi động và dừng máy khách khi phát hiện thấy máy chủ SRP.

Có 3 loại mục Dữ liệu mạng cho biết sự hiện diện của máy chủ SRP. Các lớp này được ưu tiên theo thứ tự sau:

1) Các mục nhập unicast được ưu tiên, trong đó địa chỉ máy chủ được đưa vào dữ liệu dịch vụ. Nếu có nhiều lựa chọn, lựa chọn có địa chỉ IPv6 thấp nhất sẽ được ưu tiên.

2) Các mục Anycast có số thứ tự. Số thứ tự lớn hơn theo nghĩa được quy định trong logic Số sê-ri trong RFC-1982 được xem là gần đây hơn và do đó được ưu tiên hơn. Số sê-ri lớn nhất sử dụng số học số sê-ri sẽ được ưu tiên nếu số này được xác định rõ (nghĩa là số seq lớn hơn tất cả các số seq khác). Nếu số thứ tự không được xác định rõ, thì số thứ tự lớn nhất về mặt số sẽ được ưu tiên.

3) Các mục nhập Unicast, trong đó thông tin địa chỉ máy chủ được đưa vào dữ liệu máy chủ. Nếu có nhiều lựa chọn, lựa chọn có địa chỉ IPv6 thấp nhất sẽ được ưu tiên.

Khi có thay đổi trong các mục Dữ liệu mạng, khách hàng sẽ kiểm tra để đảm bảo rằng máy chủ hiện được chọn vẫn hiện diện trong Dữ liệu mạng và có phải là máy chủ được ưu tiên không. Nếu không, ứng dụng sẽ chuyển sang máy chủ ưu tiên mới hoặc dừng nếu không có máy chủ nào.

Khi ứng dụng SRP được khởi động rõ ràng thông qua một lệnh gọi thành công đến otSrpClientStart(), địa chỉ máy chủ SRP đã cho trong otSrpClientStart() sẽ tiếp tục được sử dụng bất kể trạng thái của chế độ tự động bắt đầu và việc địa chỉ máy chủ SRP đó có được phát hiện hay không trong Dữ liệu mạng luồng. Trong trường hợp này, ứng dụng chỉ cần gọi otSrpClientStop() rõ ràng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aCallback
Lệnh gọi lại để thông báo khi ứng dụng tự động bắt đầu/dừng. Có thể là NULL nếu không cần thiết.
[in] aContext
Ngữ cảnh sẽ được truyền khi gọi aCallback.

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Lấy tên miền mà ứng dụng SRP đang sử dụng.

Bạn cần bật OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE.

Nếu bạn chưa đặt tên miền, hệ thống sẽ sử dụng "default.service.arpa".

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Chuỗi tên miền.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Lấy thông tin về máy chủ.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Con trỏ tới cấu trúc thông tin máy chủ lưu trữ.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Lấy khoảng thời gian thuê khoá mặc định dùng trong các yêu cầu cập nhật SRP.

Khoảng thời gian mặc định chỉ được dùng cho các thực thể otSrpClientServicemKeyLease được đặt thành 0.

Lưu ý rằng đây là thời hạn thuê mà ứng dụng SRP yêu cầu. Máy chủ có thể chọn chấp nhận khoảng thời gian thuê khác.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Khoảng thời gian thuê chính (tính bằng giây).

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Lấy khoảng thời gian thuê mặc định dùng trong các yêu cầu cập nhật SRP.

Khoảng thời gian mặc định chỉ được dùng cho các thực thể otSrpClientServicemLease được đặt thành 0.

Lưu ý rằng đây là thời hạn thuê mà ứng dụng SRP yêu cầu. Máy chủ có thể chọn chấp nhận khoảng thời gian thuê khác.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Khoảng thời gian thuê (tính bằng giây).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Lấy địa chỉ ổ cắm (địa chỉ IPv6 và số cổng) của máy chủ SRP đang được ứng dụng SRP sử dụng.

Nếu ứng dụng khách không chạy, thì địa chỉ sẽ không được chỉ định (tất cả đều bằng 0) khi số cổng bằng 0.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Con trỏ đến địa chỉ ổ cắm của máy chủ SRP (luôn không phải là NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Lấy danh sách các dịch vụ đang được khách hàng quản lý.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Con trỏ tới đầu danh sách được liên kết của tất cả dịch vụ hoặc NULL nếu danh sách này trống.

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

Lấy giá trị TTL trong mọi bản ghi có trong yêu cầu cập nhật SRP.

Xin lưu ý rằng đây là TTL mà ứng dụng SRP yêu cầu. Máy chủ có thể chọn chấp nhận một TTL khác.

Theo mặc định, TTL sẽ bằng khoảng thời gian thuê. Việc truyền 0 hoặc một giá trị lớn hơn khoảng thời gian thuê qua otSrpClientSetTtl() cũng sẽ làm cho TTL bằng khoảng thời gian thuê.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
TTL (tính bằng giây).

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Cho biết trạng thái hiện tại của chế độ tự động bắt đầu (bật hoặc tắt).

Chức năng này chỉ hoạt động khi bạn bật tính năng tự động bắt đầu OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Giá trị là TRUE nếu chế độ tự động bắt đầu được bật, nếu không thì sẽ là FALSE.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Cho biết ứng dụng SRP có đang chạy hay không.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
TRUE nếu ứng dụng SRP đang chạy, nếu không sẽ là FALSE.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Cho biết chế độ "bao gồm bản ghi khoá dịch vụ" được bật hay tắt.

Có sẵn khi cấu hình OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE được bật.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
Trả về
Giá trị là TRUE nếu chế độ "bao gồm bản ghi khoá dịch vụ" đang bật, nếu không thì sẽ là FALSE.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Chuyển đổi otSrpClientItemState thành một chuỗi.

Thông tin chi tiết
Thông số
[in] aItemState
Trạng thái của mục.
Trả về
Chuỗi đại diện của aItemState.

otSrpClientRemoveHostAndServices

otError otSrpClientRemoveHostAndServices(
  otInstance *aInstance,
  bool aRemoveKeyLease,
  bool aSendUnregToServer
)

Bắt đầu quá trình xoá thông tin máy chủ lưu trữ và tất cả các dịch vụ.

Sau khi trả về từ hàm này, otSrpClientCallback sẽ được gọi để báo cáo trạng thái xoá yêu cầu qua máy chủ SRP.

Nếu thông tin máy chủ lưu trữ bị xoá vĩnh viễn khỏi máy chủ, bạn phải đặt aRemoveKeyLease thành true. Thao tác này sẽ xoá hợp đồng thuê khoá liên kết với máy chủ lưu trữ trên máy chủ. Nếu không, bản ghi thuê khoá sẽ được lưu giữ như trước đây để đảm bảo rằng máy chủ giữ tên máy chủ lưu trữ để dự trữ khi máy khách có thể cung cấp và đăng ký(các) dịch vụ một lần nữa.

aSendUnregToServer xác định hành vi khi thông tin máy chủ lưu trữ chưa được đăng ký với máy chủ. Nếu bạn đặt aSendUnregToServer thành false (là giá trị mặc định/dự kiến), thì ứng dụng SRP sẽ ngay lập tức xoá thông tin và dịch vụ của máy chủ lưu trữ mà không cần gửi thông báo cập nhật đến máy chủ (không cần cập nhật máy chủ nếu chưa có thông tin nào được đăng ký với máy chủ). Nếu bạn đặt aSendUnregToServer thành true, thì ứng dụng SRP sẽ gửi thông báo cập nhật đến máy chủ. Lưu ý rằng nếu thông tin máy chủ được đăng ký thì giá trị của aSendUnregToServer sẽ không quan trọng và máy khách SRP sẽ luôn gửi thông báo cập nhật đến máy chủ để yêu cầu xoá tất cả thông tin.

Một trường hợp aSendUnregToServer có thể hữu ích là khi đặt lại/khởi động lại thiết bị, phương thức gọi có thể muốn xoá mọi dịch vụ đã đăng ký trước đó với máy chủ. Trong trường hợp này, phương thức gọi có thể otSrpClientSetHostName() rồi yêu cầu otSrpClientRemoveHostAndServices() với aSendUnregToServer dưới dạng true.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aRemoveKeyLease
Một giá trị boolean cho biết liệu có cần xoá thời gian thuê khoá máy chủ lưu trữ hay không.
[in] aSendUnregToServer
Một giá trị boolean cho biết liệu có gửi bản cập nhật đến máy chủ hay không khi thông tin máy chủ lưu trữ chưa được đăng ký.
Giá trị trả về
OT_ERROR_NONE
Quá trình xoá thông tin và dịch vụ của máy chủ lưu trữ đã bắt đầu thành công. otSrpClientCallback sẽ được gọi để báo cáo trạng thái.
OT_ERROR_ALREADY
Thông tin máy chủ đã bị xoá.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Yêu cầu huỷ đăng ký một dịch vụ với máy chủ.

Sau khi gọi hàm này thành công, otSrpClientCallback sẽ được gọi để báo cáo trạng thái của yêu cầu xoá qua máy chủ SRP.

Thực thể otSrpClientService được aService trỏ đến PHẢI duy trì và không thay đổi sau khi trở về từ hàm này (bằng OT_ERROR_NONE). OpenThread sẽ giữ thực thể dịch vụ trong quá trình xoá. Chỉ sau khi otSrpClientCallback được gọi, qua đó chỉ ra thực thể dịch vụ bị xoá khỏi danh sách dịch vụ ứng dụng SRP và có thể được giải phóng/sử dụng lại.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aService
Con trỏ đến một thực thể otSrpClientService để xoá.
Giá trị trả về
OT_ERROR_NONE
Quá trình xoá dịch vụ đã bắt đầu thành công. otSrpClientCallback sẽ được gọi để báo cáo trạng thái.
OT_ERROR_NOT_FOUND
Không tìm thấy dịch vụ trong danh sách.

otSrpClientSetCallback

void otSrpClientSetCallback(
  otInstance *aInstance,
  otSrpClientCallback aCallback,
  void *aContext
)

Thiết lập lệnh gọi lại để thông báo cho phương thức gọi về các sự kiện/thay đổi từ ứng dụng SRP.

Ứng dụng SRP cho phép đăng ký một lệnh gọi lại. Vì vậy, các lệnh gọi liên tiếp đến hàm này sẽ ghi đè mọi hàm callback đã đặt trước đó.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aCallback
Lệnh gọi lại để thông báo về các sự kiện và thay đổi. Có thể là NULL nếu không cần thiết.
[in] aContext
Ngữ cảnh tuỳ ý được dùng với aCallback.

otSrpClientSetDomainName

otError otSrpClientSetDomainName(
  otInstance *aInstance,
  const char *aName
)

Đặt tên miền mà ứng dụng SRP sẽ sử dụng.

Bạn cần bật OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE.

Nếu bạn không đặt chính sách này, hệ thống sẽ sử dụng "default.service.arpa".

Vùng đệm chuỗi tên do aName trỏ đến PHẢI duy trì và không thay đổi sau khi trả về từ hàm này. OpenThread sẽ giữ con trỏ tới chuỗi.

Bạn có thể đặt tên miền trước hoặc sau khi khởi động ứng dụng, nhưng trước khi thông tin máy chủ lưu trữ được đăng ký với máy chủ (thông tin máy chủ phải ở dạng STATE_TO_ADD hoặc STATE_TO_REMOVE).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aName
Con trỏ đến chuỗi tên miền. Nếu giá trị NULL đặt thành mặc định là "default.service.arpa".
Giá trị trả về
OT_ERROR_NONE
Đã đặt thành công nhãn tên miền.
OT_ERROR_INVALID_STATE
Thông tin máy chủ lưu trữ đã được đăng ký với máy chủ.

otSrpClientSetHostAddresses

otError otSrpClientSetHostAddresses(
  otInstance *aInstance,
  const otIp6Address *aIp6Addresses,
  uint8_t aNumAddresses
)

Đặt/cập nhật danh sách địa chỉ IPv6 của máy chủ.

Bạn có thể đặt/thay đổi địa chỉ IPv6 máy chủ trước khi bắt đầu hoặc trong khi vận hành ứng dụng SRP (ví dụ: để thêm/xoá hoặc thay đổi địa chỉ máy chủ đã đăng ký trước đó), trừ phi thông tin máy chủ đang bị xoá (máy khách đang bận xử lý yêu cầu xoá từ lệnh gọi trước đó đến otSrpClientRemoveHostAndServices() và thông tin máy chủ vẫn đang ở trạng thái STATE_TO_REMOVE hoặc STATE_REMOVING).

Mảng địa chỉ IPv6 máy chủ do aIp6Addresses trỏ đến PHẢI duy trì và không thay đổi sau khi trở về từ hàm này (bằng OT_ERROR_NONE). OpenThread sẽ lưu con trỏ vào mảng.

Sau khi gọi hàm này thành công, otSrpClientCallback sẽ được gọi để báo cáo trạng thái đăng ký địa chỉ với máy chủ SRP.

Khi gọi hàm này, chế độ địa chỉ máy chủ lưu trữ tự động sẽ bị vô hiệu hoá nếu trước đó chế độ này đã được bật từ lệnh gọi thành công đến otSrpClientEnableAutoHostAddress().

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aIp6Addresses
Con trỏ đến một mảng chứa địa chỉ IPv6 của máy chủ.
[in] aNumAddresses
Số lượng địa chỉ trong mảng aIp6Addresses.
Giá trị trả về
OT_ERROR_NONE
Quá trình thay đổi danh sách địa chỉ IPv6 của máy chủ đã bắt đầu thành công. otSrpClientCallback sẽ được gọi để báo cáo trạng thái đăng ký địa chỉ với máy chủ.
OT_ERROR_INVALID_ARGS
Danh sách địa chỉ không hợp lệ (ví dụ: phải chứa ít nhất một địa chỉ).
OT_ERROR_INVALID_STATE
Máy chủ đang bị xoá nên không thể thay đổi địa chỉ máy chủ.

otSrpClientSetHostName

otError otSrpClientSetHostName(
  otInstance *aInstance,
  const char *aName
)

Đặt nhãn tên máy chủ lưu trữ.

Sau khi gọi hàm này thành công, otSrpClientCallback sẽ được gọi để báo cáo trạng thái đăng ký thông tin máy chủ lưu trữ với máy chủ SRP.

Vùng đệm chuỗi tên do aName trỏ đến PHẢI duy trì và không thay đổi sau khi trả về từ hàm này. OpenThread sẽ giữ con trỏ tới chuỗi.

Bạn có thể đặt tên máy chủ trước khi máy khách khởi động hoặc sau khi khởi động, nhưng trước khi thông tin máy chủ được đăng ký với máy chủ (thông tin máy chủ phải ở dạng STATE_TO_ADD hoặc STATE_REMOVED).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aName
Con trỏ đến chuỗi nhãn tên máy chủ lưu trữ (PHẢI KHÔNG là NULL). Con trỏ đến vùng đệm chuỗi PHẢI duy trì và không thay đổi sau khi hàm này trả về.
Giá trị trả về
OT_ERROR_NONE
Đã đặt nhãn tên máy chủ lưu trữ thành công.
OT_ERROR_INVALID_ARGS
aName là giá trị NULL.
OT_ERROR_INVALID_STATE
Tên máy chủ đã được thiết lập và đăng ký với máy chủ.

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Đặt khoảng thời gian thuê khoá mặc định dùng trong các yêu cầu cập nhật SRP.

Khoảng thời gian mặc định chỉ được dùng cho các thực thể otSrpClientServicemKeyLease được đặt thành 0.

Thay đổi khoảng thời gian thuê không ảnh hưởng đến khoảng thời gian thuê được chấp nhận của các dịch vụ/thông tin máy chủ đã đăng ký. Việc thay đổi chỉ ảnh hưởng đến mọi thông báo cập nhật SRP trong tương lai (tức là thêm dịch vụ mới và/hoặc làm mới dịch vụ hiện có).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aInterval
Khoảng thời gian thuê chính (tính bằng giây). Nếu 0, hệ thống sẽ sử dụng giá trị mặc định do OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE chỉ định.

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Đặt khoảng thời gian thuê mặc định dùng trong các yêu cầu cập nhật SRP.

Khoảng thời gian mặc định chỉ được dùng cho các thực thể otSrpClientServicemLease được đặt thành 0.

Thay đổi khoảng thời gian thuê không ảnh hưởng đến khoảng thời gian thuê được chấp nhận của các dịch vụ/thông tin máy chủ đã đăng ký. Việc thay đổi chỉ ảnh hưởng đến mọi thông báo cập nhật SRP trong tương lai (tức là thêm dịch vụ mới và/hoặc làm mới dịch vụ hiện có).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aInterval
Khoảng thời gian thuê (tính bằng giây). Nếu 0, hệ thống sẽ sử dụng giá trị mặc định do OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE chỉ định.

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Bật/tắt chế độ "bao gồm bản ghi khoá dịch vụ".

Khi được bật, ứng dụng SRP sẽ đưa bản ghi KEY vào Hướng dẫn mô tả dịch vụ trong thông báo cập nhật SRP mà ứng dụng gửi.

Có sẵn khi cấu hình OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE được bật.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aEnabled
TRUE để bật, FALSE để tắt chế độ "thêm bản ghi khoá dịch vụ".

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

Đặt giá trị TTL trong mọi bản ghi có trong yêu cầu cập nhật SRP.

Việc thay đổi TTL không ảnh hưởng đến TTL của các dịch vụ/thông tin máy chủ đã đăng ký, mà chỉ ảnh hưởng đến các thông báo cập nhật SRP sau này (tức là thêm dịch vụ mới và/hoặc làm mới dịch vụ hiện có).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aTtl
TTL (tính bằng giây). Nếu giá trị bằng 0 hoặc lớn hơn khoảng thời gian thuê, thì TTL sẽ được đặt thành khoảng thời gian thuê.

otSrpClientStart

otError otSrpClientStart(
  otInstance *aInstance,
  const otSockAddr *aServerSockAddr
)

Bắt đầu thao tác ứng dụng SRP.

Máy khách SRP sẽ chuẩn bị và gửi thông báo "Cập nhật SRP" đến máy chủ SRP sau khi tất cả các điều kiện sau được đáp ứng:

Không quan trọng thứ tự gọi các hàm này. Khi tất cả điều kiện được đáp ứng, máy khách SRP sẽ chờ một khoảng thời gian trễ ngắn trước khi chuẩn bị thông báo "Cập nhật SRP" và gửi đến máy chủ. Độ trễ này cho phép người dùng thêm nhiều dịch vụ và/hoặc địa chỉ IPv6 trước khi thông báo Cập nhật SRP đầu tiên được gửi (đảm bảo gửi một Bản cập nhật SRP chứa tất cả thông tin). Cấu hình OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY sẽ chỉ định khoảng thời gian trễ.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến thực thể OpenThread.
[in] aServerSockAddr
Địa chỉ ổ cắm (địa chỉ IPv6 và số cổng) của máy chủ SRP.
Giá trị trả về
OT_ERROR_NONE
Thao tác ứng dụng SRP đã bắt đầu thành công hoặc đang chạy với cùng một địa chỉ cổng máy chủ và lệnh gọi lại.
OT_ERROR_BUSY
Ứng dụng SRP đang bận chạy với một địa chỉ ổ cắm khác.
OT_ERROR_FAILED
Không mở/kết nối được ổ cắm UDP của ứng dụng.

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

Dừng hoạt động của ứng dụng SRP.

Dừng mọi hoạt động tương tác khác với máy chủ SRP. Xin lưu ý rằng thao tác này không xoá hoặc xoá thông tin về máy chủ và/hoặc danh sách dịch vụ. Trường này đánh dấu tất cả dịch vụ cần được thêm/xoá lại sau khi ứng dụng khởi động (lại).

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

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

Trả về chế độ địa chỉ mà máy chủ SRP đang sử dụng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
Chế độ địa chỉ của máy chủ SRP.

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

Trả về số thứ tự dùng với chế độ địa chỉ Anycast.

Số thứ tự được đưa vào mục "Địa chỉ Anycast của Dịch vụ DNS/SRP" được xuất bản trong mục Dữ liệu mạng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
Số thứ tự Anycast.

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

Trả về miền được uỷ quyền cho máy chủ SRP.

Nếu miền không được thiết lập bằng SetDomain, thì giá trị "default.service.arpa." sẽ được trả về. Dấu chấm ở cuối luôn được thêm vào ngay cả khi miền được đặt mà không có dấu chấm.

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 chuỗi miền đã kết hợp bằng dấu chấm.

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

Trả về cấu hình LEASE và KEY-LEASE của máy chủ SRP.

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

otSrpServerGetNextHost

const otSrpServerHost * otSrpServerGetNextHost(
  otInstance *aInstance,
  const otSrpServerHost *aHost
)

Trả về máy chủ đã đăng ký tiếp theo trên máy chủ SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aHost
Con trỏ tới máy chủ hiện tại; sử dụng NULL để lấy máy chủ đầu tiên.
Trả về
Con trỏ đến máy chủ đã đăng ký. NULL (Rỗng) nếu không tìm thấy thêm máy chủ nào.

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

Trả về cổng mà máy chủ SRP đang nghe.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
Cổng của máy chủ SRP. Giá trị này sẽ trả về 0 nếu máy chủ không chạy.

otSrpServerGetResponseCounters

const otSrpServerResponseCounters * otSrpServerGetResponseCounters(
  otInstance *aInstance
)

Trả về bộ đếm phản hồi của máy chủ SRP.

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 phản hồi của máy chủ SRP.

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

Trả về trạng thái của máy chủ SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
Trả về
Trạng thái hiện tại của máy chủ SRP.

otSrpServerGetTtlConfig

void otSrpServerGetTtlConfig(
  otInstance *aInstance,
  otSrpServerTtlConfig *aTtlConfig
)

Trả về cấu hình TTL của máy chủ SRP.

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

otSrpServerHandleServiceUpdateResult

void otSrpServerHandleServiceUpdateResult(
  otInstance *aInstance,
  otSrpServerServiceUpdateId aId,
  otError aError
)

Báo cáo kết quả xử lý bản cập nhật SRP cho máy chủ SRP.

Trình xử lý cập nhật dịch vụ sẽ gọi hàm này để trả về kết quả xử lý bản cập nhật SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aId
Mã giao dịch cập nhật dịch vụ. Mã này phải giống với mã được cung cấp qua otSrpServerServiceUpdateHandler.
[in] aError
Lỗi được trả về máy chủ SRP. Sử dụng OT_ERROR_DUPLICATED để biểu thị xung đột tên DNS.

otSrpServerHostGetAddresses

const otIp6Address * otSrpServerHostGetAddresses(
  const otSrpServerHost *aHost,
  uint8_t *aAddressesNum
)

Trả về địa chỉ của máy chủ đã cho.

Thông tin chi tiết
Thông số
[in] aHost
Con trỏ đến máy chủ dịch vụ SRP.
[out] aAddressesNum
Một con trỏ đến nơi chúng ta sẽ xuất số địa chỉ.
Trả về
Con trỏ đến mảng Địa chỉ IPv6.

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

Trả về tên đầy đủ của máy chủ lưu trữ.

Thông tin chi tiết
Thông số
[in] aHost
Con trỏ đến máy chủ dịch vụ SRP.
Trả về
Con trỏ đến chuỗi tên máy chủ đã kết thúc rỗng.

otSrpServerHostGetLeaseInfo

void otSrpServerHostGetLeaseInfo(
  const otSrpServerHost *aHost,
  otSrpServerLeaseInfo *aLeaseInfo
)

Trả về thông tin LEASE và KEY-LEASE của một máy chủ lưu trữ cụ thể.

Thông tin chi tiết
Thông số
[in] aHost
Con trỏ tới máy chủ SRP.
[out] aLeaseInfo
Con trỏ đến vị trí xuất thông tin LEASE và KEY-LEASE.

otSrpServerHostGetNextService

const otSrpServerService * otSrpServerHostGetNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aService
)

Trả về dịch vụ tiếp theo của máy chủ đã chọn.

Thông tin chi tiết
Thông số
[in] aHost
Con trỏ đến máy chủ dịch vụ SRP.
[in] aService
Con trỏ đến phiên bản dịch vụ SRP hiện tại; sử dụng NULL để nhận dịch vụ đầu tiên.
Trả về
Con trỏ đến dịch vụ tiếp theo hoặc giá trị NULL nếu không có dịch vụ nào khác.

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

Cho biết liệu máy chủ dịch vụ SRP đã bị xoá hay chưa.

Máy chủ lưu trữ dịch vụ SRP có thể bị xoá nhưng vẫn giữ tên để sử dụng trong tương lai. Trong trường hợp này, thực thể máy chủ lưu trữ sẽ không bị xoá khỏi máy chủ/hệ thống đăng ký SRP.

Thông tin chi tiết
Thông số
[in] aHost
Con trỏ đến máy chủ dịch vụ SRP.
Trả về
TRUE nếu máy chủ đã bị xoá, FALSE nếu chưa bị xoá.

otSrpServerHostMatchesFullName

bool otSrpServerHostMatchesFullName(
  const otSrpServerHost *aHost,
  const char *aFullName
)

Cho biết liệu máy chủ có khớp với một tên máy chủ được cung cấp hay không.

Việc so khớp tên DNS được thực hiện bằng cách sử dụng phép so sánh chuỗi không phân biệt chữ hoa chữ thường (ví dụ: "Abc" và "aBc" được coi là giống nhau).

Thông tin chi tiết
Thông số
[in] aHost
Con trỏ đến máy chủ dịch vụ SRP.
[in] aFullName
Tên đầy đủ của máy chủ.
Giá trị trả về
TRUE
Nếu máy chủ khớp với tên máy chủ.
FALSE
Nếu tên máy chủ không khớp với tên máy chủ.

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

Cho biết liệu chế độ tự động bật được bật hay tắt.

Cần có tính năng của OPENTHREAD_CONFIG_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ề
TRUE
Chế độ tự động bật đã bật.
FALSE
Chế độ tự động bật đã tắt.

otSrpServerParseSubTypeServiceName

otError otSrpServerParseSubTypeServiceName(
  const char *aSubTypeServiceName,
  char *aLabel,
  uint8_t aLabelSize
)

Phân tích cú pháp tên dịch vụ loại phụ (tên đầy đủ) và trích xuất nhãn loại phụ.

Tên dịch vụ đầy đủ của một dịch vụ loại phụ nằm ở phần sau "._sub...".

Thông tin chi tiết
Thông số
[in] aSubTypeServiceName
Tên dịch vụ loại phụ (tên đầy đủ).
[out] aLabel
Con trỏ đến một vùng đệm để sao chép nhãn loại phụ được trích xuất.
[in] aLabelSize
Kích thước tối đa của vùng đệm aLabel.
Giá trị trả về
OT_ERROR_NONE
Đã phân tích cú pháp tên thành công và cập nhật aLabel.
OT_ERROR_NO_BUFS
Nhãn loại phụ không vừa với vùng đệm aLabel (số ký tự từ nhãn có thể phù hợp được sao chép trong aLabel đảm bảo nhãn này bị kết thúc rỗng).
OT_ERROR_INVALID_ARGS
aSubTypeServiceName không phải là định dạng loại phụ hợp lệ.

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

Trả về máy chủ lưu trữ có thực thể dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Con trỏ đến thực thể máy chủ.

otSrpServerServiceGetInstanceLabel

const char * otSrpServerServiceGetInstanceLabel(
  const otSrpServerService *aService
)

Trả về nhãn thực thể dịch vụ (nhãn đầu tiên trong tên thực thể) của dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Con trỏ đến chuỗi nhãn của thực thể dịch vụ đã kết thúc rỗng.

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

Trả về tên phiên bản dịch vụ đầy đủ của dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Con trỏ đến chuỗi tên của thực thể dịch vụ đã kết thúc rỗng.

otSrpServerServiceGetLeaseInfo

void otSrpServerServiceGetLeaseInfo(
  const otSrpServerService *aService,
  otSrpServerLeaseInfo *aLeaseInfo
)

Trả về thông tin LEASE và KEY-LEASE của một dịch vụ cụ thể.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ máy chủ SRP.
[out] aLeaseInfo
Con trỏ đến vị trí xuất thông tin LEASE và KEY-LEASE.

otSrpServerServiceGetNumberOfSubTypes

uint16_t otSrpServerServiceGetNumberOfSubTypes(
  const otSrpServerService *aService
)

Lấy số lượng loại phụ của dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Số lượng loại phụ của aService.

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

Trả về cổng của thực thể dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Cổng dịch vụ.

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

Trả về mức độ ưu tiên của thực thể dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Mức độ ưu tiên của dịch vụ.

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

Trả về tên dịch vụ đầy đủ của dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Con trỏ đến chuỗi tên dịch vụ đã kết thúc rỗng.

otSrpServerServiceGetSubTypeServiceNameAt

const char * otSrpServerServiceGetSubTypeServiceNameAt(
  const otSrpServerService *aService,
  uint16_t aIndex
)

Lấy tên dịch vụ loại phụ (tên đầy đủ) của dịch vụ tại một chỉ mục nhất định.

Tên dịch vụ đầy đủ của một dịch vụ loại phụ nằm ở phần sau "._sub...".

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
[in] aIndex
Chỉ mục cần lấy.
Trả về
Con trỏ tới tên dịch vụ loại phụ tại aIndex hoặc NULL nếu không có loại phụ nào tại chỉ mục này.

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

Trả về TTL của thực thể dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
TTL của thực thể dịch vụ.

otSrpServerServiceGetTxtData

const uint8_t * otSrpServerServiceGetTxtData(
  const otSrpServerService *aService,
  uint16_t *aDataLength
)

Trả về dữ liệu bản ghi TXT của thực thể dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
[out] aDataLength
Con trỏ để trả về độ dài dữ liệu của bản ghi TXT. KHÔNG ĐƯỢC là RỖNG.
Trả về
Con trỏ đến vùng đệm chứa dữ liệu bản ghi TXT (độ dài dữ liệu TXT được trả về trong aDataLength).

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

Trả về trọng số của thực thể dịch vụ.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
Trọng lượng của dịch vụ.

otSrpServerServiceHasSubTypeServiceName

bool otSrpServerServiceHasSubTypeServiceName(
  const otSrpServerService *aService,
  const char *aSubTypeServiceName
)

Cho biết dịch vụ có một loại phụ cụ thể hay không.

Việc so khớp tên DNS được thực hiện bằng cách sử dụng phép so sánh chuỗi không phân biệt chữ hoa chữ thường (ví dụ: "Abc" và "aBc" được coi là giống nhau).

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
[in] aSubTypeServiceName
Tên dịch vụ loại phụ (tên đầy đủ) cần kiểm tra.
Giá trị trả về
TRUE
Dịch vụ chứa loại phụ aSubTypeServiceName.
FALSE
Dịch vụ không chứa loại phụ aSubTypeServiceName.

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

Cho biết dịch vụ SRP đã bị xoá hay chưa.

Dịch vụ SRP có thể bị xoá nhưng vẫn giữ tên dịch vụ để sử dụng trong tương lai. Trong trường hợp này, thực thể dịch vụ sẽ không bị xoá khỏi máy chủ/tên đăng ký SRP. Đảm bảo rằng tất cả các dịch vụ đều bị xoá nếu máy chủ bị xoá.

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
Trả về
TRUE nếu dịch vụ đã bị xóa, FALSE nếu không.

otSrpServerServiceMatchesInstanceName

bool otSrpServerServiceMatchesInstanceName(
  const otSrpServerService *aService,
  const char *aInstanceName
)

Cho biết liệu dịch vụ này có khớp với tên phiên bản dịch vụ đã cho hay không.

Việc so khớp tên DNS được thực hiện bằng cách sử dụng phép so sánh chuỗi không phân biệt chữ hoa chữ thường (ví dụ: "Abc" và "aBc" được coi là giống nhau).

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
[in] aInstanceName
Tên phiên bản dịch vụ.
Giá trị trả về
TRUE
Nếu dịch vụ khớp với tên bản sao dịch vụ.
FALSE
Nếu dịch vụ không khớp với tên phiên bản dịch vụ.

otSrpServerServiceMatchesServiceName

bool otSrpServerServiceMatchesServiceName(
  const otSrpServerService *aService,
  const char *aServiceName
)

Cho biết liệu dịch vụ này có khớp với một tên dịch vụ cụ thể hay không.

Việc so khớp tên DNS được thực hiện bằng cách sử dụng phép so sánh chuỗi không phân biệt chữ hoa chữ thường (ví dụ: "Abc" và "aBc" được coi là giống nhau).

Thông tin chi tiết
Thông số
[in] aService
Con trỏ đến dịch vụ SRP.
[in] aServiceName
Tên dịch vụ.
Giá trị trả về
TRUE
Nếu dịch vụ khớp với tên dịch vụ.
FALSE
Nếu dịch vụ không khớp với tên dịch vụ.

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

Đặt chế độ địa chỉ mà máy chủ SRP sẽ sử dụng.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aMode
Chế độ địa chỉ để sử dụng.
Giá trị trả về
OT_ERROR_NONE
Đã đặt thành công chế độ địa chỉ.
OT_ERROR_INVALID_STATE
Máy chủ SRP đã được bật và không thể thay đổi chế độ địa chỉ.

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

Đặt số thứ tự dùng với chế độ địa chỉ Anycast.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aSequenceNumber
Số thứ tự sẽ sử dụng.
Giá trị trả về
OT_ERROR_NONE
Đã đặt thành công chế độ địa chỉ.
OT_ERROR_INVALID_STATE
Máy chủ SRP đã được bật và không thể thay đổi số thứ tự.

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

Bật/tắt chế độ tự động bật trên máy chủ SRP.

Cần có tính năng của OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Khi chế độ này được bật, Trình quản lý định tuyến biên giới sẽ kiểm soát xem có nên bật hoặc tắt máy chủ SRP hay không. Máy chủ SRP được tự động bật nếu/khi Định tuyến đường biên bắt đầu và được thực hiện với tiền tố và cấu hình tuyến ban đầu (khi OMR và tiền tố trên liên kết được xác định, được quảng cáo trong thông báo Quảng cáo bộ định tuyến phát ra ở phía cơ sở hạ tầng và được xuất bản trong Dữ liệu mạng luồng). Máy chủ SRP tự động bị tắt nếu/khi BR bị ngừng (ví dụ: nếu giao diện mạng cơ sở hạ tầng bị gỡ xuống hoặc nếu BR bị tách).

Bạn có thể tắt chế độ này bằng lệnh gọi otSrpServerSetAutoEnableMode() với aEnabled được đặt thành false hoặc nếu máy chủ SRP được bật/tắt một cách rõ ràng bằng lệnh gọi đến hàm otSrpServerSetEnabled(). Việc tắt chế độ tự động bật bằng cách sử dụng otSrpServerSetAutoEnableMode(false) sẽ không thay đổi trạng thái hiện tại của máy chủ SRP (ví dụ: nếu được bật, máy chủ sẽ vẫn bật).

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aEnabled
Một giá trị boolean để bật/tắt chế độ tự động bật.

otSrpServerSetDomain

otError otSrpServerSetDomain(
  otInstance *aInstance,
  const char *aDomain
)

Thiết lập miền trên máy chủ SRP.

Dấu chấm ở cuối sẽ được nối vào aDomain nếu dấu chấm chưa có ở đó. Chỉ nên gọi trước khi bật máy chủ SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aDomain
Miền cần đặt. KHÔNG ĐƯỢC là RỖNG.
Giá trị trả về
OT_ERROR_NONE
Đã thiết lập thành công miền thành aDomain.
OT_ERROR_INVALID_STATE
Máy chủ SRP đã được bật và không thể thay đổi Miền.
OT_ERROR_INVALID_ARGS
Đối số aDomain không phải là một tên miền DNS hợp lệ.
OT_ERROR_NO_BUFS
Không có bộ nhớ để lưu trữ nội dung của aDomain.

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Bật/tắt máy chủ SRP.

Trên Bộ định tuyến biên (Biên giới), bạn nên sử dụng otSrpServerSetAutoEnableMode().

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aEnabled
Một giá trị boolean để bật/tắt máy chủ SRP.

otSrpServerSetLeaseConfig

otError otSrpServerSetLeaseConfig(
  otInstance *aInstance,
  const otSrpServerLeaseConfig *aLeaseConfig
)

Đặt cấu hình LEASE và KEY-LEASE cho máy chủ SRP.

Khi ứng dụng yêu cầu thời gian LEASE khác 0, giá trị đã cấp sẽ bị giới hạn trong phạm vi [aMinL chịu, aMaxL Android]; và giá trị KEY-LEASE khác 0 sẽ được cấp trong phạm vi [aMinKeyLcho, aMaxKeyL Android. Đối với thời gian LEASE hoặc KEY-LEASE bằng 0, sẽ không được cấp.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aLeaseConfig
Con trỏ đến một thực thể otSrpServerLeaseConfig.
Giá trị trả về
OT_ERROR_NONE
Đã đặt thành công phạm vi LEASE và KEY-LEASE.
OT_ERROR_INVALID_ARGS
Phạm vi LEASE hoặc KEY-LEASE không hợp lệ.

otSrpServerSetServiceUpdateHandler

void otSrpServerSetServiceUpdateHandler(
  otInstance *aInstance,
  otSrpServerServiceUpdateHandler aServiceHandler,
  void *aContext
)

Đặt trình xử lý cập nhật dịch vụ SRP trên máy chủ SRP.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aServiceHandler
Con trỏ đến trình xử lý dịch vụ. Hãy sử dụng giá trị NULL để xoá trình xử lý.
[in] aContext
Con trỏ đến thông tin ngữ cảnh tuỳ ý. Có thể là NULL nếu không được sử dụng.

otSrpServerSetTtlConfig

otError otSrpServerSetTtlConfig(
  otInstance *aInstance,
  const otSrpServerTtlConfig *aTtlConfig
)

Đặt cấu hình TTL của máy chủ SRP.

TTL được cấp sẽ luôn không lớn hơn khoảng thời gian thuê tối đa được định cấu hình qua otSrpServerSetLeaseConfig(), bất kể cấu hình TTL tối thiểu và tối đa.

Thông tin chi tiết
Thông số
[in] aInstance
Con trỏ đến một thực thể OpenThread.
[in] aTtlConfig
Con trỏ đến một thực thể otSrpServerTtlConfig.
Giá trị trả về
OT_ERROR_NONE
Đã đặt thành công cấu hình TTL.
OT_ERROR_INVALID_ARGS
Cấu hình TTL không hợp lệ.

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.