SRP

โมดูลนี้มีฟังก์ชันที่ควบคุมลักษณะการทำงานของไคลเอ็นต์ SRP

สรุป

โมดูลนี้ประกอบด้วยฟังก์ชันของโปรโตคอลการจดทะเบียนบริการ

โมดูลนี้มีฟังก์ชันสำหรับบัฟเฟอร์ไคลเอ็นต์ SRP และกลุ่มบริการ

ฟังก์ชันในโมดูลนี้จะใช้ได้เมื่อเปิดใช้งานคุณลักษณะ OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE เท่านั้น

การแจกแจง

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
ระบุสถานะรายการไคลเอ็นต์ SRP (ข้อมูลบริการหรือโฮสต์)
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
แสดงโหมดที่อยู่ที่เซิร์ฟเวอร์ SRP ใช้
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
enum
แสดงสถานะของเซิร์ฟเวอร์ SRP

Typedef

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
ประเภทตัวชี้จะกำหนดโค้ดเรียกกลับที่ไคลเอ็นต์ SRP ใช้เพื่อแจ้งผู้ใช้เมื่อมีการเริ่มต้นหรือหยุดการทำงานโดยอัตโนมัติ
otSrpClientBuffersServiceEntry typedef
แสดงรายการพูลบริการไคลเอ็นต์ SRP
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
ประเภทตัวชี้จะกำหนดโค้ดเรียกกลับที่ไคลเอ็นต์ SRP ใช้เพื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับการเปลี่ยนแปลง/เหตุการณ์/ข้อผิดพลาด
otSrpClientHostInfo typedef
แสดงข้อมูลโฮสต์ของไคลเอ็นต์ SRP
otSrpClientService typedef
แสดงถึงบริการไคลเอ็นต์ SRP
otSrpServerAddressMode typedef
แสดงโหมดที่อยู่ที่เซิร์ฟเวอร์ SRP ใช้
otSrpServerHost typedef
ประเภททึบนี้แสดงถึงโฮสต์บริการ SRP
otSrpServerLeaseConfig typedef
รวมการกำหนดค่า LEASE ของเซิร์ฟเวอร์ SRP และ KEY-LEASE
otSrpServerLeaseInfo typedef
รวมข้อมูลการเช่าเซิร์ฟเวอร์ SRP ของโฮสต์/บริการ
otSrpServerResponseCounters typedef
รวมสถิติการตอบสนองของเซิร์ฟเวอร์ SRP
otSrpServerService typedef
ประเภททึบนี้แสดงถึงบริการ SRP
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
จัดการการอัปเดตบริการ SRP
otSrpServerServiceUpdateId typedef
uint32_t
รหัสของธุรกรรมการอัปเดตบริการ SRP ในเซิร์ฟเวอร์ SRP
otSrpServerTtlConfig typedef
รวมการกำหนดค่า TTL ของเซิร์ฟเวอร์ SRP

ฟังก์ชัน

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
เพิ่มบริการที่จะลงทะเบียนกับเซิร์ฟเวอร์
otSrpClientBuffersAllocateService(otInstance *aInstance)
จัดสรรรายการบริการใหม่จากพูล
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
ปล่อยรายการบริการที่จัดสรรไว้ก่อนหน้านี้ทั้งหมด
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
ปล่อยรายการบริการที่จัดสรรไว้ก่อนหน้านี้
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
รับอาร์เรย์ของรายการที่อยู่ IPv6 เพื่อใช้เป็นรายการที่อยู่โฮสต์ของไคลเอ็นต์ SRP
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
รับบัฟเฟอร์สตริงที่จะใช้กับชื่อโฮสต์ของไคลเอ็นต์ SRP
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
รับบัฟเฟอร์สตริงสำหรับชื่ออินสแตนซ์บริการจากรายการบริการ
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
รับบัฟเฟอร์สตริงสำหรับชื่อบริการจากรายการบริการ
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
รับบัฟเฟอร์สำหรับระเบียน TXT จากรายการบริการ
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
รับอาร์เรย์สำหรับป้ายกำกับประเภทย่อยของบริการจากรายการบริการ
otSrpClientClearHostAndServices(otInstance *aInstance)
void
ล้างข้อมูลโฮสต์และบริการทั้งหมด
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
ล้างข้อมูลบริการ และนำออกจากรายการบริการลูกค้าทันที
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
ปิดใช้โหมดเริ่มต้นอัตโนมัติ
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
เปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติ
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
เปิดใช้โหมดเริ่มต้นอัตโนมัติ
otSrpClientGetDomainName(otInstance *aInstance)
const char *
รับชื่อโดเมนที่ไคลเอ็นต์ SRP ใช้
otSrpClientGetHostInfo(otInstance *aInstance)
รับข้อมูลของโฮสต์
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
รับช่วงเวลาเช่าคีย์เริ่มต้นที่ใช้ในคำขออัปเดต SRP
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
รับช่วงเวลาเช่าเริ่มต้นที่ใช้ในคำขออัปเดต SRP
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
รับที่อยู่ซ็อกเก็ต (ที่อยู่ IPv6 และหมายเลขพอร์ต) ของเซิร์ฟเวอร์ SRP ที่ไคลเอ็นต์ SRP ใช้อยู่
otSrpClientGetServices(otInstance *aInstance)
รับรายการบริการที่ลูกค้าเป็นผู้จัดการ
otSrpClientGetTtl(otInstance *aInstance)
uint32_t
รับค่า TTL ในทุกระเบียนที่รวมอยู่ในคำขออัปเดต SRP
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
ระบุสถานะปัจจุบันของโหมดเริ่มต้นอัตโนมัติ (เปิดใช้หรือปิดใช้)
otSrpClientIsRunning(otInstance *aInstance)
bool
ระบุว่าไคลเอ็นต์ SRP ทำงานอยู่หรือไม่
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
ระบุว่าโหมด "การรวมระเบียนคีย์บริการ" เปิดหรือปิดใช้อยู่
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
แปลง otSrpClientItemState เป็นสตริง
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
เริ่มกระบวนการนำข้อมูลโฮสต์และบริการทั้งหมดออก
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
ขอให้ยกเลิกการลงทะเบียนบริการกับเซิร์ฟเวอร์
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
ตั้งค่าโค้ดเรียกกลับเพื่อแจ้งผู้โทรเกี่ยวกับเหตุการณ์/การเปลี่ยนแปลงจากไคลเอ็นต์ SRP
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
ตั้งค่าชื่อโดเมนที่จะใช้โดยไคลเอ็นต์ SRP
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
ตั้งค่า/อัปเดตรายการที่อยู่ IPv6 ของโฮสต์
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
ตั้งค่าป้ายกำกับชื่อโฮสต์
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
ตั้งค่าช่วงเวลาเช่าคีย์เริ่มต้นที่ใช้ในคำขออัปเดต SRP
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
ตั้งค่าช่วงเวลาเช่าเริ่มต้นที่ใช้ในคำขออัปเดต SRP
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
เปิด/ปิดใช้โหมด "การรวมระเบียนคีย์บริการ"
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
void
ตั้งค่า TTL ในทุกระเบียนที่รวมอยู่ในคำขออัปเดต SRP
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
เริ่มการดำเนินการไคลเอ็นต์ SRP
otSrpClientStop(otInstance *aInstance)
void
หยุดการดำเนินการไคลเอ็นต์ SRP
otSrpServerGetAddressMode(otInstance *aInstance)
แสดงผลโหมดที่อยู่ที่เซิร์ฟเวอร์ SRP ใช้อยู่
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
แสดงผลหมายเลขลำดับที่ใช้กับโหมดที่อยู่ Anycast
otSrpServerGetDomain(otInstance *aInstance)
const char *
แสดงผลโดเมนที่ได้รับอนุญาตไปยังเซิร์ฟเวอร์ SRP
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
แสดงผลการกำหนดค่าเซิร์ฟเวอร์ SRP LEASE และ KEY-LEASE
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
แสดงผลโฮสต์ถัดไปที่ลงทะเบียนในเซิร์ฟเวอร์ SRP
otSrpServerGetPort(otInstance *aInstance)
uint16_t
แสดงผลพอร์ตที่เซิร์ฟเวอร์ SRP กำลังฟังอยู่
otSrpServerGetResponseCounters(otInstance *aInstance)
แสดงผลตัวนับการตอบสนองของเซิร์ฟเวอร์ SRP
otSrpServerGetState(otInstance *aInstance)
แสดงผลสถานะของเซิร์ฟเวอร์ SRP
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
void
แสดงผลการกำหนดค่า TTL ของเซิร์ฟเวอร์ SRP
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
รายงานผลของการประมวลผลการอัปเดต SRP ไปยังเซิร์ฟเวอร์ SRP
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
แสดงผลที่อยู่ของโฮสต์ที่ระบุ
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
แสดงชื่อเต็มของโฮสต์
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
void
แสดงผลข้อมูล LEASE และ KEY-LEASE ของโฮสต์ที่ระบุ
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
แสดงผลบริการถัดไปของโฮสต์ที่ระบุ
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
บ่งบอกว่าโฮสต์บริการ SRP ถูกลบไปแล้วหรือไม่
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
bool
ระบุว่าโฮสต์ตรงกับชื่อโฮสต์ที่ระบุหรือไม่
otSrpServerIsAutoEnableMode(otInstance *aInstance)
bool
ระบุว่าเปิดหรือปิดโหมดเปิดใช้งานอัตโนมัติ
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
แยกวิเคราะห์ชื่อบริการประเภทย่อย (ชื่อเต็ม) และแยกป้ายกำกับประเภทย่อย
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
แสดงผลโฮสต์ที่มีอินสแตนซ์บริการอยู่
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
const char *
แสดงผลป้ายกำกับอินสแตนซ์บริการ (ป้ายกำกับแรกในชื่ออินสแตนซ์) ของบริการ
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
แสดงผลชื่ออินสแตนซ์บริการแบบเต็มของบริการ
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
void
แสดงผลข้อมูล LEASE และ KEY-LEASE ของบริการที่ระบุ
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
uint16_t
รับจำนวนประเภทย่อยของบริการ
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
แสดงผลพอร์ตของอินสแตนซ์บริการ
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
แสดงผลลำดับความสำคัญของอินสแตนซ์บริการ
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
แสดงชื่อเต็มของบริการ
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
const char *
รับชื่อบริการประเภทย่อย (ชื่อเต็ม) ของบริการตามดัชนีที่ระบุ
otSrpServerServiceGetTtl(const otSrpServerService *aService)
uint32_t
แสดงผล TTL ของอินสแตนซ์บริการ
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
แสดงผลข้อมูลระเบียน TXT ของอินสแตนซ์บริการ
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
แสดงผลน้ำหนักของอินสแตนซ์บริการ
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
bool
ระบุว่าบริการมีประเภทย่อยที่ระบุหรือไม่
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
ระบุว่าบริการ SRP ถูกลบแล้วหรือไม่
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
bool
ระบุว่าบริการนี้ตรงกับชื่ออินสแตนซ์ของบริการที่ระบุหรือไม่
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
bool
ระบุว่าบริการนี้ตรงกับชื่อบริการที่ระบุหรือไม่
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
ตั้งค่าโหมดที่อยู่ที่จะใช้โดยเซิร์ฟเวอร์ SRP
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
กำหนดหมายเลขลำดับที่ใช้กับโหมดที่อยู่ Anycast
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
void
เปิด/ปิดใช้โหมดเปิดใช้อัตโนมัติในเซิร์ฟเวอร์ SRP
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
ตั้งค่าโดเมนในเซิร์ฟเวอร์ SRP
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
เปิด/ปิดใช้เซิร์ฟเวอร์ SRP
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
ตั้งการกำหนดค่า LEASE ของเซิร์ฟเวอร์ SRP และ KEY-LEASE
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
ตั้งค่าเครื่องจัดการการอัปเดตบริการ SRP ในเซิร์ฟเวอร์ SRP
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
กำหนดค่า TTL ของเซิร์ฟเวอร์ SRP

โครงสร้าง

otSrpClientBuffersServiceEntry

แสดงรายการพูลบริการไคลเอ็นต์ SRP

otSrpClientHostInfo

แสดงข้อมูลโฮสต์ของไคลเอ็นต์ SRP

otSrpClientService

แสดงถึงบริการไคลเอ็นต์ SRP

otSrpServerLeaseConfig

รวมการกำหนดค่า LEASE ของเซิร์ฟเวอร์ SRP และ KEY-LEASE

otSrpServerLeaseInfo

รวมข้อมูลการเช่าเซิร์ฟเวอร์ SRP ของโฮสต์/บริการ

otSrpServerResponseCounters

รวมสถิติการตอบสนองของเซิร์ฟเวอร์ SRP

otSrpServerTtlConfig

รวมการกำหนดค่า TTL ของเซิร์ฟเวอร์ SRP

การแจกแจง

otSrpClientItemState

 otSrpClientItemState

ระบุสถานะรายการไคลเอ็นต์ SRP (ข้อมูลบริการหรือโฮสต์)

พร็อพเพอร์ตี้
OT_SRP_CLIENT_ITEM_STATE_ADDING

กำลังเพิ่ม/ลงทะเบียนรายการ

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

กำลังรีเฟรชรายการ

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

มีการลงทะเบียนรายการกับเซิร์ฟเวอร์แล้ว

OT_SRP_CLIENT_ITEM_STATE_REMOVED

นำรายการออกแล้ว

OT_SRP_CLIENT_ITEM_STATE_REMOVING

กำลังนำรายการออก

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

สินค้าที่จะเพิ่ม/ลงทะเบียน

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

รายการที่จะรีเฟรช (ลงทะเบียนอีกครั้งเพื่อต่ออายุเวลาเช่า)

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

รายการที่จะนำออก

otSrpServerAddressMode

 otSrpServerAddressMode

แสดงโหมดที่อยู่ที่เซิร์ฟเวอร์ SRP ใช้

โหมดที่อยู่จะระบุวิธีที่เซิร์ฟเวอร์ SRP กำหนดที่อยู่และหมายเลขพอร์ต และวิธีเผยแพร่ข้อมูลนี้ในข้อมูลเครือข่ายเทรด

พร็อพเพอร์ตี้
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

โหมดที่อยู่ Anycast

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

โหมดที่อยู่ Unicast

otSrpServerState

 otSrpServerState

แสดงสถานะของเซิร์ฟเวอร์ SRP

พร็อพเพอร์ตี้
OT_SRP_SERVER_STATE_DISABLED

ปิดใช้เซิร์ฟเวอร์ SRP อยู่

OT_SRP_SERVER_STATE_RUNNING

เซิร์ฟเวอร์ SRP เปิดใช้อยู่และทำงานอยู่

OT_SRP_SERVER_STATE_STOPPED

เซิร์ฟเวอร์ SRP เปิดใช้อยู่แต่หยุดทำงาน

Typedef

otSrpClientAutoStartCallback

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

ประเภทตัวชี้จะกำหนดโค้ดเรียกกลับที่ไคลเอ็นต์ SRP ใช้เพื่อแจ้งผู้ใช้เมื่อมีการเริ่มต้นหรือหยุดการทำงานโดยอัตโนมัติ

ซึ่งจะใช้เมื่อเปิดใช้ฟีเจอร์เริ่มต้นอัตโนมัติ OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE เท่านั้น

ระบบจะเรียกใช้การติดต่อกลับนี้เมื่อเปิดใช้โหมดเริ่มต้นอัตโนมัติ และไคลเอ็นต์ SRP จะเริ่มต้นหรือหยุดโดยอัตโนมัติ

รายละเอียด
พารามิเตอร์
[in] aServerSockAddr
ตัวชี้ที่ไม่ใช่ NULL บ่งชี้ว่าเซิร์ฟเวอร์ SRP เริ่มทำงานแล้ว และตัวชี้จะให้ที่อยู่ซ็อกเก็ตเซิร์ฟเวอร์ที่เลือก ตัวชี้ NULL บ่งชี้ว่าเซิร์ฟเวอร์ SRP หยุดทำงาน
[in] aContext
ตัวชี้ไปยังบริบทที่กำหนดเอง (ระบุเมื่อลงทะเบียนโค้ดเรียกกลับ)

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

แสดงรายการพูลบริการไคลเอ็นต์ SRP

otSrpClientCallback

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

ประเภทตัวชี้จะกำหนดโค้ดเรียกกลับที่ไคลเอ็นต์ SRP ใช้เพื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับการเปลี่ยนแปลง/เหตุการณ์/ข้อผิดพลาด

ระบบจะเรียกใช้การติดต่อกลับนี้เมื่อการลงทะเบียนการอัปเดตสำเร็จ (เช่น เพิ่ม/นำข้อมูลโฮสต์ออก และ/หรือบริการบางอย่าง) กับเซิร์ฟเวอร์ SRP หรือหากมีความล้มเหลวหรือข้อผิดพลาด (เช่น เซิร์ฟเวอร์ปฏิเสธคำขออัปเดต หรือไคลเอ็นต์หมดเวลาขณะรอการตอบกลับ ฯลฯ)

ในกรณีที่ลงทะเบียนการอัปเดตอีกครั้งสำเร็จ พารามิเตอร์ aError จะเป็น OT_ERROR_NONE และมีข้อมูลโฮสต์และรายการบริการทั้งหมดเป็นพารามิเตอร์อินพุตสำหรับโค้ดเรียกกลับ โปรดทราบว่าข้อมูลโฮสต์และบริการของแต่ละโฮสต์จะติดตามสถานะของตัวเองในตัวแปรสมาชิก mState ที่เกี่ยวข้องของโครงสร้างข้อมูลที่เกี่ยวข้อง (สถานะที่ระบุว่ามีการลงทะเบียนข้อมูล/บริการโฮสต์หรือนำออก หรือยังคงเพิ่ม/นำออกอยู่ เป็นต้น)

ระบบจะส่งรายการบริการที่ถูกนำออกเป็นรายการ aRemovedServices ที่ลิงก์ของตัวเองในโค้ดเรียกกลับ โปรดทราบว่าเมื่อมีการเรียกใช้โค้ดเรียกกลับ ไคลเอ็นต์ SRP (การใช้งาน OpenThread) จะทำงานกับอินสแตนซ์บริการที่ถูกนำออกซึ่งแสดงใน aRemovedServices และจะไม่ติดตาม/จัดเก็บอินสแตนซ์บริการเหล่านั้นอีกต่อไป (เช่น หากจากโค้ดเรียกกลับที่เราเรียกว่า otSrpClientGetServices() บริการที่นำออกจะไม่ปรากฏในรายการที่แสดงผล) การระบุรายการแยกต่างหากของบริการที่นำออกไปแล้วในโค้ดเรียกกลับจะช่วยบอกให้ผู้ใช้ทราบว่ารายการใดถูกนำออกแล้ว และอนุญาตให้ผู้ใช้อ้างสิทธิ์ซ้ำ/ใช้อินสแตนซ์ซ้ำได้

หากเซิร์ฟเวอร์ปฏิเสธคำขออัปเดต SRP ระบบจะจับคู่รหัสการตอบกลับ DNS (RFC 2136) กับข้อผิดพลาดต่อไปนี้

  • (0) NOERROR สำเร็จ (ไม่มีเงื่อนไขข้อผิดพลาด) -> OT_ERROR_NONE
  • (1) เซิร์ฟเวอร์ FORMERR ไม่สามารถแปลผล เนื่องจากรูปแบบผิดพลาด -> OT_ERROR_PARSE
  • (2) เซิร์ฟเวอร์ SERVFAIL พบความล้มเหลวภายใน -> OT_ERROR_FAILED
  • (3) ชื่อ NXDOMAIN ที่ควรมีอยู่ ไม่มีอยู่ -> OT_ERROR_NOT_FOUND
  • (4) เซิร์ฟเวอร์ NOTIMP ไม่สนับสนุนประเภทข้อความค้นหา (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) เซิร์ฟเวอร์ REFUSED ถูกปฏิเสธเนื่องจากเหตุผลด้านนโยบาย/ความปลอดภัย -> OT_ERROR_SECURITY
  • (6) YXDOMAIN บางชื่อที่ไม่ควรมีอยู่ -> OT_ERROR_DUPLICATED
  • (7) YXRRSET บาง RRset ที่ไม่ควรมีอยู่ -> OT_ERROR_DUPLICATED
  • (8) NXRRSET ชุด RRset บางส่วนที่ควรมีอยู่ไม่มีอยู่ -> OT_ERROR_NOT_FOUND
  • (9) บริการ NOTAUTH ไม่ได้รับอนุญาตสำหรับโซน -> OT_ERROR_SECURITY
  • (10) NOTZONE A ไม่ได้อยู่ในโซน -> OT_ERROR_PARSE
  • (20) BADNAME ชื่อไม่ถูกต้อง -> OT_ERROR_PARSE
  • (21) BADALG อัลกอริทึมไม่ดี -> OT_ERROR_SECURITY
  • (22) BADTRUN การตัดข้อความไม่ดี -> OT_ERROR_PARSE
  • รหัสการตอบกลับอื่นๆ -> OT_ERROR_FAILED

นอกจากนี้ อาจมีข้อผิดพลาดต่อไปนี้เกิดขึ้นด้วย

  • OT_ERROR_RESPONSE_TIMEOUT : หมดเวลาขณะรอการตอบกลับจากเซิร์ฟเวอร์ (ไคลเอ็นต์จะลองใหม่ต่อไป)
  • OT_ERROR_INVALID_ARGS : โครงสร้างบริการที่ระบุไม่ถูกต้อง (เช่น ชื่อบริการไม่ถูกต้อง หรือ otDnsTxtEntry)
  • OT_ERROR_NO_BUFS : บัฟเฟอร์ไม่เพียงพอที่จะเตรียมหรือส่งข้อความอัปเดต

โปรดทราบว่าหากเกิดความล้มเหลวใดๆ ไคลเอ็นต์จะดำเนินการต่อไป กล่าวคือ จะจัดเตรียมและส่งข้อความการอัปเดต SRP (อีกครั้ง) ไปยังเซิร์ฟเวอร์หลังจากรอระยะหนึ่ง ช่วงเวลารอลองใหม่จะเริ่มจากค่าต่ำสุดและเพิ่มขึ้นตามปัจจัยการเพิ่มของทุกข้อผิดพลาดจนถึงค่าสูงสุด (โปรดดูรายละเอียดเพิ่มเติมที่พารามิเตอร์การกำหนดค่า OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL และพารามิเตอร์ที่เกี่ยวข้อง)

รายละเอียด
พารามิเตอร์
[in] aError
ข้อผิดพลาดดังกล่าว (ดูด้านบน)
[in] aHostInfo
ตัวชี้ไปยังข้อมูลโฮสต์
[in] aServices
ส่วนหัวของรายการที่ลิงก์ซึ่งมีบริการทั้งหมด (ยกเว้นบริการที่ถูกนำออก) ค่าว่างหากรายการว่างเปล่า
[in] aRemovedServices
ส่วนหัวของรายการที่ลิงก์ซึ่งมีบริการที่ถูกนำออกทั้งหมด ค่าว่างหากรายการว่างเปล่า
[in] aContext
ตัวชี้ไปยังบริบทที่กำหนดเอง (ระบุเมื่อลงทะเบียนโค้ดเรียกกลับ)

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

แสดงข้อมูลโฮสต์ของไคลเอ็นต์ SRP

otSrpClientService

struct otSrpClientService otSrpClientService

แสดงถึงบริการไคลเอ็นต์ SRP

ค่าในโครงสร้างนี้ รวมถึงบัฟเฟอร์สตริงสำหรับชื่อและรายการระเบียน TXT ต้องคงอยู่และคงเดิมหลังจากมีการส่งอินสแตนซ์ของโครงสร้างนี้ไปยัง OpenThread จาก otSrpClientAddService() หรือ otSrpClientRemoveService()

ช่อง mState, mData และ mNext ต้องใช้/จัดการโดยบริการหลัก OT เท่านั้น ระบบจะไม่สนใจค่าเมื่อมีการส่งอินสแตนซ์ของ otSrpClientService ใน otSrpClientAddService() หรือ otSrpClientRemoveService() หรือฟังก์ชันอื่นๆ ผู้โทรไม่จําเป็นต้องตั้งค่าช่องเหล่านี้

ช่อง mLease และ mKeyLease จะระบุระยะเวลาเช่าและช่วงเวลาเช่าที่ต้องการสำหรับบริการนี้ ค่า 0 บ่งบอกว่าไม่ได้ระบุช่วงเวลา และระบบจะใช้ช่วงเวลาเช่าหรือช่วงเวลาเช่าเริ่มต้นจาก otSrpClientGetLeaseInterval() และ otSrpClientGetKeyLeaseInterval() สําหรับบริการนี้ หากช่วงเวลาเช่าคีย์ (ไม่ว่าจะกำหนดโดยชัดแจ้งหรือกำหนดจากค่าเริ่มต้น) สั้นกว่าระยะเวลาเช่าสำหรับบริการ ไคลเอ็นต์ SRP จะนำค่าช่วงการเช่าซ้ำสำหรับช่วงการเช่าคีย์ด้วย ตัวอย่างเช่น หากในบริการ mLease ตั้งค่าไว้เป็น 2 วันอย่างชัดเจน และตั้งค่า mKeyLease เป็น 0 และตั้งค่าการเช่าคีย์เริ่มต้นเป็น 1 วัน จากนั้นเมื่อลงทะเบียนบริการนี้ การเช่าคีย์ที่ขอสำหรับบริการนี้ก็จะตั้งค่าเป็น 2 วันด้วย

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

แสดงโหมดที่อยู่ที่เซิร์ฟเวอร์ SRP ใช้

โหมดที่อยู่จะระบุวิธีที่เซิร์ฟเวอร์ SRP กำหนดที่อยู่และหมายเลขพอร์ต และวิธีเผยแพร่ข้อมูลนี้ในข้อมูลเครือข่ายเทรด

otSrpServerHost

struct otSrpServerHost otSrpServerHost

ประเภททึบนี้แสดงถึงโฮสต์บริการ SRP

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

รวมการกำหนดค่า LEASE ของเซิร์ฟเวอร์ SRP และ KEY-LEASE

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

รวมข้อมูลการเช่าเซิร์ฟเวอร์ SRP ของโฮสต์/บริการ

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

รวมสถิติการตอบสนองของเซิร์ฟเวอร์ SRP

otSrpServerService

struct otSrpServerService otSrpServerService

ประเภททึบนี้แสดงถึงบริการ SRP

otSrpServerServiceUpdateHandler

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

จัดการการอัปเดตบริการ SRP

ถูกเรียกโดยเซิร์ฟเวอร์ SRP เพื่อแจ้งว่าโฮสต์ SRP และอาจมีการอัปเดตบริการ SRP สิ่งสำคัญคือต้องไม่คอมมิตการอัปเดต SRP จนกว่าเครื่องจัดการจะแสดงผลลัพธ์โดยการเรียกใช้ otSrpServerHandleServiceUpdate Results หรือหมดเวลาหลังจากวันที่ aTimeout

ผู้สังเกตการณ์บริการ SRP ควรเรียก otSrpServerHandleServiceUpdate Results พร้อมรหัสข้อผิดพลาด OT_ERROR_NONE ทุกครั้งทันทีที่ได้รับเหตุการณ์การอัปเดต

เครื่องจัดการทั่วไปอาจทำการตรวจสอบโฮสต์/บริการ SRP และปฏิเสธการอัปเดต SRP หากการตรวจสอบล้มเหลว ตัวอย่างเช่น พร็อกซีการโฆษณาควรโฆษณา (หรือลบ) โฮสต์และบริการในลิงก์ที่รองรับมัลติแคสต์ และแสดงรหัสข้อผิดพลาดที่เฉพาะเจาะจงหากมีความล้มเหลวเกิดขึ้น

รายละเอียด
พารามิเตอร์
[in] aId
รหัสธุรกรรมการอัปเดตบริการ คุณต้องส่งคืนรหัสนี้ด้วย otSrpServerHandleServiceUpdateResult
[in] aHost
ตัวชี้ไปยังออบเจ็กต์ otSrpServerHost ซึ่งมีการอัปเดต SRP เครื่องจัดการควรเผยแพร่/ยกเลิกการเผยแพร่โฮสต์และแต่ละบริการชี้ไปยังโฮสต์นี้ด้วยกฎต่อไปนี้
  1. หากโฮสต์ไม่ได้ถูกลบ (ระบุด้วย otSrpServerHostIsDeleted) โฮสต์ควรจะมีการเผยแพร่หรืออัปเดตด้วย mDNS มิเช่นนั้นควรยกเลิกการเผยแพร่โฮสต์ (นำ AAAA RR ออก)
  2. สำหรับจุดบริการแต่ละรายการที่ชี้ไปยังโฮสต์นี้ จะต้องมีการยกเลิกการเผยแพร่โฮสต์ถ้าจะยกเลิกการเผยแพร่โฮสต์ ไม่เช่นนั้น เครื่องจัดการควรเผยแพร่หรืออัปเดตบริการเมื่อไม่ได้ถูกลบ (ระบุด้วย otSrpServerServiceIsDeleted) และเลิกเผยแพร่เมื่อลบแล้ว
[in] aTimeout
เวลาสูงสุดเป็นมิลลิวินาทีสำหรับเครื่องจัดการในการประมวลผลเหตุการณ์ของบริการ
[in] aContext
ตัวชี้ไปยังบริบทเฉพาะแอปพลิเคชัน
โปรดดูข้อมูลเพิ่มเติมที่
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

รหัสของธุรกรรมการอัปเดตบริการ SRP ในเซิร์ฟเวอร์ SRP

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

รวมการกำหนดค่า TTL ของเซิร์ฟเวอร์ SRP

ฟังก์ชัน

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

เพิ่มบริการที่จะลงทะเบียนกับเซิร์ฟเวอร์

หลังจากเรียกฟังก์ชันนี้สำเร็จ ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะการเพิ่ม/ลงทะเบียนบริการกับเซิร์ฟเวอร์ SRP

อินสแตนซ์ otSrpClientService ที่ aService ชี้ไปต้องคงอยู่และไม่มีการเปลี่ยนแปลงหลังจากส่งคืนจากฟังก์ชันนี้ (โดยมี OT_ERROR_NONE) OpenThread จะบันทึกตัวชี้ไปยังอินสแตนซ์บริการ

OpenThread จะไม่ติดตามอินสแตนซ์ otSrpClientService อีกต่อไปและจะอ้างสิทธิ์คืนได้ก็ต่อเมื่อ

  • หมายเลขดังกล่าวจะถูกนำออกอย่างชัดเจนโดยการเรียกไปยัง otSrpClientRemoveService() หรือนำออกพร้อมกับบริการอื่นๆ โดยการเรียก otSrpClientRemoveHostAndServices() and only after theotSrpClientCallback" เพื่อระบุว่ามีการนำบริการออกแล้ว หรือ
  • การเรียกไปยัง otSrpClientClearHostAndServices() ซึ่งนำโฮสต์และบริการที่เกี่ยวข้องทั้งหมดออกทันที

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aService
ตัวชี้ไปยังอินสแตนซ์ otSrpClientService ที่จะเพิ่ม
แสดงผลค่า
OT_ERROR_NONE
เริ่มเพิ่มบริการเรียบร้อยแล้ว ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะ
OT_ERROR_ALREADY
บริการที่มีบริการและชื่ออินสแตนซ์เดียวกันมีอยู่ในรายการแล้ว
OT_ERROR_INVALID_ARGS
โครงสร้างบริการไม่ถูกต้อง (เช่น ชื่อบริการหรือ otDnsTxtEntry ไม่ถูกต้อง)

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

จัดสรรรายการบริการใหม่จากพูล

อินสแตนซ์รายการบริการที่ส่งคืนจะเริ่มต้นดังนี้

  • mService.mName จะชี้ไปยังบัฟเฟอร์สตริงที่จัดสรรไว้ซึ่งดึงมาได้โดยใช้ฟังก์ชัน otSrpClientBuffersGetServiceEntryServiceNameString()
  • mService.mInstanceName จะชี้ไปยังบัฟเฟอร์สตริงที่จัดสรรไว้ซึ่งดึงมาได้โดยใช้ฟังก์ชัน otSrpClientBuffersGetServiceEntryInstanceNameString()
  • mService.mSubTypeLabels ชี้ไปยังอาร์เรย์ที่แสดงผลจาก otSrpClientBuffersGetSubTypeLabelsArray()
  • mService.mTxtEntries จะชี้ไปที่ mTxtEntry
  • mService.mNumTxtEntries จะตั้งเป็น 1
  • ช่อง mService อื่นๆ (พอร์ต ลำดับความสำคัญ น้ำหนัก) จะตั้งค่าเป็น 0
  • mTxtEntry.mKey ได้รับการตั้งค่าเป็น NULL (จะถือว่าค่ามีการเข้ารหัสแล้ว)
  • mTxtEntry.mValue จะชี้ไปยังบัฟเฟอร์ที่จัดสรรซึ่งดึงได้โดยใช้ฟังก์ชัน otSrpClientBuffersGetServiceEntryTxtBuffer()
  • mTxtEntry.mValueLength ได้รับการตั้งค่าเป็น 0
  • บัฟเฟอร์ข้อมูล/สตริงที่เกี่ยวข้องและอาร์เรย์ทั้งหมดจะถูกล้างออกจากค่า 0

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังรายการบริการที่จัดสรรใหม่ หรือ NULL ถ้าไม่มีรายการเพิ่มเติมที่ใช้ได้ในพูล

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

ปล่อยรายการบริการที่จัดสรรไว้ก่อนหน้านี้ทั้งหมด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

ปล่อยรายการบริการที่จัดสรรไว้ก่อนหน้านี้

aService ต้องจัดสรรไว้ก่อนหน้านี้โดยใช้ otSrpClientBuffersAllocateService() และยังไม่ได้เพิ่มพื้นที่ว่าง มิเช่นนั้นจะไม่สามารถระบุลักษณะการทำงานของฟังก์ชันนี้ได้

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aService
ตัวชี้ไปยังรายการบริการฟรี (ต้องไม่ใช่ NULL)

otSrpClientBuffersGetHostAddressesArray

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

รับอาร์เรย์ของรายการที่อยู่ IPv6 เพื่อใช้เป็นรายการที่อยู่โฮสต์ของไคลเอ็นต์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aArrayLength
ชี้ไปที่ตัวแปรเพื่อแสดงผลความยาวของอาร์เรย์ ซึ่งก็คือจำนวนรายการที่อยู่ IPv6 ในอาร์เรย์ (ต้องไม่ใช่ NULL)
การส่งคืน
ตัวชี้ไปยังอาร์เรย์ของรายการ otIp6Address (จำนวนรายการจะแสดงใน aArrayLength)

otSrpClientBuffersGetHostNameString

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

รับบัฟเฟอร์สตริงที่จะใช้กับชื่อโฮสต์ของไคลเอ็นต์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aSize
ชี้ไปที่ตัวแปรเพื่อส่งคืนค่าขนาด (จำนวนไบต์) ของบัฟเฟอร์สตริง (ต้องไม่ใช่ NULL)
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์ของอักขระที่จะใช้เป็นชื่อโฮสต์ของไคลเอ็นต์ SRP

otSrpClientBuffersGetServiceEntryInstanceNameString

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

รับบัฟเฟอร์สตริงสำหรับชื่ออินสแตนซ์บริการจากรายการบริการ

รายละเอียด
พารามิเตอร์
[in] aEntry
ตัวชี้ไปยังรายการบริการที่จัดสรรไว้ก่อนหน้านี้ (ต้องไม่ใช่ NULL)
[out] aSize
ตัวชี้ไปยังตัวแปรเพื่อแสดงขนาด (จำนวนไบต์) ของบัฟเฟอร์สตริง (ต้องไม่ใช่ NULL)
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์ของสตริง

otSrpClientBuffersGetServiceEntryServiceNameString

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

รับบัฟเฟอร์สตริงสำหรับชื่อบริการจากรายการบริการ

รายละเอียด
พารามิเตอร์
[in] aEntry
ตัวชี้ไปยังรายการบริการที่จัดสรรไว้ก่อนหน้านี้ (ต้องไม่ใช่ NULL)
[out] aSize
ตัวชี้ไปยังตัวแปรเพื่อแสดงขนาด (จำนวนไบต์) ของบัฟเฟอร์สตริง (ต้องไม่ใช่ NULL)
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์ของสตริง

otSrpClientBuffersGetServiceEntryTxtBuffer

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

รับบัฟเฟอร์สำหรับระเบียน TXT จากรายการบริการ

รายละเอียด
พารามิเตอร์
[in] aEntry
ตัวชี้ไปยังรายการบริการที่จัดสรรไว้ก่อนหน้านี้ (ต้องไม่ใช่ NULL)
[out] aSize
ตัวชี้ไปยังตัวแปรเพื่อแสดงขนาด (จำนวนไบต์) ของบัฟเฟอร์ (ต้องไม่ใช่ NULL)
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์

otSrpClientBuffersGetSubTypeLabelsArray

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

รับอาร์เรย์สำหรับป้ายกำกับประเภทย่อยของบริการจากรายการบริการ

รายละเอียด
พารามิเตอร์
[in] aEntry
ตัวชี้ไปยังรายการบริการที่จัดสรรไว้ก่อนหน้านี้ (ต้องไม่ใช่ NULL)
[out] aArrayLength
ตัวชี้ไปยังตัวแปรเพื่อแสดงความยาวของอาร์เรย์ (ต้องไม่ใช่ NULL)
การส่งคืน
ตัวชี้ไปยังอาร์เรย์

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

ล้างข้อมูลโฮสต์และบริการทั้งหมด

ฟังก์ชันนี้จะล้างข้อมูลทั้งหมดทันทีโดยไม่มีการโต้ตอบกับเซิร์ฟเวอร์ ซึ่งต่างจาก otSrpClientRemoveHostAndServices() ที่ส่งข้อความอัปเดตไปยังเซิร์ฟเวอร์เพื่อนำข้อมูลทั้งหมดออก

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

ล้างข้อมูลบริการ และนำออกจากรายการบริการลูกค้าทันที

ฟังก์ชันนี้ต่างจาก otSrpClientRemoveService() ที่ส่งข้อความอัปเดตไปยังเซิร์ฟเวอร์เพื่อนำบริการออก แต่ฟังก์ชันนี้จะล้างบริการจากรายการบริการของไคลเอ็นต์โดยไม่มีการโต้ตอบกับเซิร์ฟเวอร์ หากเรียกฟังก์ชันนี้ได้สำเร็จ ระบบจะไม่เรียก otSrpClientCallback และผู้โทรจะสามารถอ้างสิทธิ์รายการ aService ซ้ำและนำมาใช้ซ้ำได้ทันที

ใช้ร่วมกับการเรียกไปยัง otSrpClientAddService() ได้ในภายหลัง (อาจใช้รายการ aService เดียวกันซ้ำด้วยชื่อบริการและอินสแตนซ์เดียวกัน) เพื่ออัปเดตพารามิเตอร์บางรายการในบริการที่มีอยู่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aService
ตัวชี้ไปยังอินสแตนซ์ otSrpClientService เพื่อลบ
แสดงผลค่า
OT_ERROR_NONE
ลบ aService เรียบร้อยแล้ว วิดีโอสามารถอ้างสิทธิ์และนำกลับมาใช้ได้ทันที
OT_ERROR_NOT_FOUND
ไม่พบบริการในรายการ

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

ปิดใช้โหมดเริ่มต้นอัตโนมัติ

ซึ่งจะใช้ได้เมื่อเปิดใช้ฟีเจอร์เริ่มต้นอัตโนมัติ OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE เท่านั้น

การปิดใช้โหมดเริ่มต้นอัตโนมัติจะไม่หยุดไคลเอ็นต์หากโหมดทำงานอยู่แล้ว แต่ไคลเอ็นต์จะหยุดตรวจสอบข้อมูลเครือข่ายเทรดเพื่อยืนยันว่ายังมีเซิร์ฟเวอร์ SRP ที่เลือกไว้ยังคงอยู่

โปรดทราบว่าการโทรหา otSrpClientStop() จะปิดโหมดเริ่มต้นอัตโนมัติด้วย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otSrpClientEnableAutoHostAddress

otError otSrpClientEnableAutoHostAddress(
  otInstance *aInstance
)

เปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติ

เมื่อไคลเอ็นต์ SRP เปิดใช้การตั้งค่าที่อยู่ IPv6 ของโฮสต์ให้โดยอัตโนมัติโดยใช้ที่อยู่ Unicast ที่ต้องการทั้งหมดในเทรด ยกเว้นที่อยู่ที่ลิงก์ภายในและที่ทำงานร่วมกันทั้งหมด หากไม่มีที่อยู่ที่ต้องการ ระบบจะเพิ่มที่อยู่ EID ในท้องถิ่นของ Mesh ไคลเอ็นต์ SRP จะลงทะเบียนอีกครั้งโดยอัตโนมัติเมื่อ/หากมีการอัปเดตที่อยู่ในเทรด (มีการเพิ่มที่อยู่ใหม่ หรือนำที่อยู่ที่มีอยู่ออกหรือทำเครื่องหมายเป็นไม่ต้องการ)

คุณเปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติได้ก่อนเริ่มต้นหรือระหว่างการทำงานของไคลเอ็นต์ SRP ยกเว้นเมื่อมีการนำข้อมูลโฮสต์ออก (ไคลเอ็นต์กำลังจัดการคำขอนำออกจากการโทรไปยัง otSrpClientRemoveHostAndServices() และข้อมูลโฮสต์ยังอยู่ในสถานะ STATE_TO_REMOVE หรือ STATE_REMOVING)

หลังจากเปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติแล้ว คุณสามารถปิดใช้โหมดได้ด้วยการโทรไปยัง otSrpClientSetHostAddresses() ซึ่งจะตั้งค่าที่อยู่โฮสต์ให้ชัดเจนในภายหลัง

รายละเอียด
แสดงผลค่า
OT_ERROR_NONE
เปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติสำเร็จแล้ว
OT_ERROR_INVALID_STATE
ระบบกำลังนำโฮสต์ออก จึงไม่สามารถเปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติได้

otSrpClientEnableAutoStartMode

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

เปิดใช้โหมดเริ่มต้นอัตโนมัติ

ซึ่งจะใช้ได้เมื่อเปิดใช้ฟีเจอร์เริ่มต้นอัตโนมัติ OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE เท่านั้น

ตัวเลือกการกำหนดค่า OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE จะระบุโหมดเริ่มต้นอัตโนมัติที่เป็นค่าเริ่มต้น (ไม่ว่าจะเปิดใช้หรือปิดใช้ที่ส่วนเริ่มต้นของสแต็ก OT)

เมื่อเปิดใช้การเริ่มต้นอัตโนมัติ ไคลเอ็นต์ SRP จะตรวจสอบข้อมูลเครือข่ายเทรดเพื่อค้นหาเซิร์ฟเวอร์ SRP และเลือกเซิร์ฟเวอร์ที่ต้องการ จากนั้นจึงเริ่มและหยุดไคลเอ็นต์โดยอัตโนมัติเมื่อตรวจพบเซิร์ฟเวอร์ SRP

รายการข้อมูลเครือข่ายที่แสดงว่ามีเซิร์ฟเวอร์ SRP อยู่ด้วยกัน 3 หมวดหมู่ โดยจะแนะนำให้เรียงตามลำดับต่อไปนี้

1) รายการ Unicast ที่ต้องการซึ่งมีที่อยู่เซิร์ฟเวอร์รวมอยู่ในข้อมูลบริการ หากมีหลายตัวเลือก ขอแนะนำให้เลือกที่อยู่ IPv6 ที่มีตัวเลขต่ำสุด

2) รายการ Anycast แต่ละรายการมีหมายเลข seq หมายเลขลำดับที่มากกว่าตามความหมายที่ระบุโดยตรรกะเลขคณิตหมายเลขซีเรียลใน RFC-1982 จะถือว่าเป็นตัวเลขล่าสุดมากกว่า ดังนั้นจึงควรเลือกใช้ ขอแนะนำให้ใช้เลขลำดับสูงสุดซึ่งใช้เลขลำดับหากมีการระบุไว้เป็นอย่างดี (กล่าวคือ ตัวเลขลำดับจะต้องมากกว่าเลขลำดับอื่นๆ ทั้งหมด) หากไม่ได้กำหนดไว้อย่างเหมาะสม เราขอแนะนำให้ใช้เลขลำดับสูงสุดที่เป็นตัวเลข

3) รายการ Unicast ที่มีข้อมูลที่อยู่เซิร์ฟเวอร์รวมอยู่ในข้อมูลเซิร์ฟเวอร์ หากมีหลายตัวเลือก ขอแนะนำให้เลือกที่อยู่ IPv6 ที่มีตัวเลขต่ำสุด

เมื่อมีการเปลี่ยนแปลงในรายการข้อมูลเครือข่าย ไคลเอ็นต์จะตรวจสอบว่าเซิร์ฟเวอร์ที่เลือกไว้ปัจจุบันยังคงอยู่ในข้อมูลเครือข่ายหรือไม่ และยังคงเป็นเซิร์ฟเวอร์ที่ต้องการ มิฉะนั้นไคลเอ็นต์จะเปลี่ยนไปใช้เซิร์ฟเวอร์ที่ต้องการตัวใหม่ หรือหยุดการทำงานหากไม่มีเซิร์ฟเวอร์เลย

เมื่อไคลเอ็นต์ SRP เริ่มต้นอย่างชัดเจนผ่านการเรียก otSrpClientStart() ที่สำเร็จ ระบบจะยังใช้ที่อยู่เซิร์ฟเวอร์ SRP ดังกล่าวใน otSrpClientStart() ต่อไปโดยไม่คำนึงถึงสถานะของโหมดเริ่มต้นอัตโนมัติ และจะพบที่อยู่เซิร์ฟเวอร์ SRP เดียวกันในข้อมูลเครือข่ายเทรดหรือไม่ ในกรณีนี้ มีเพียงการเรียกใช้ otSrpClientStop() ที่ชัดแจ้งเท่านั้นที่จะหยุดไคลเอ็นต์

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCallback
การติดต่อกลับเพื่อแจ้งเมื่อไคลเอ็นต์เริ่มต้น/หยุดอัตโนมัติ ค่าอาจเป็น NULL ก็ได้หากไม่จำเป็น
[in] aContext
บริบทที่จะส่งผ่านเมื่อเรียกใช้ aCallback

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

รับชื่อโดเมนที่ไคลเอ็นต์ SRP ใช้

ต้องเปิดใช้ OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE

หากไม่ได้ตั้งค่าชื่อโดเมน ระบบจะใช้ "default.service.arpa"

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
สตริงชื่อโดเมน

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

รับข้อมูลของโฮสต์

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังโครงสร้างข้อมูลของโฮสต์

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

รับช่วงเวลาเช่าคีย์เริ่มต้นที่ใช้ในคำขออัปเดต SRP

ช่วงเวลาเริ่มต้นจะใช้กับอินสแตนซ์ otSrpClientService ที่ตั้งค่า mKeyLease เป็น 0 เท่านั้น

โปรดทราบว่านี่คือระยะเวลาเช่าที่ขอโดยไคลเอ็นต์ SRP เซิร์ฟเวอร์อาจเลือกที่จะยอมรับช่วงเวลาเช่าอื่น

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ช่วงเวลาเช่าสำคัญ (เป็นวินาที)

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

รับช่วงเวลาเช่าเริ่มต้นที่ใช้ในคำขออัปเดต SRP

ช่วงเวลาเริ่มต้นจะใช้กับอินสแตนซ์ otSrpClientService ที่ตั้งค่า mLease เป็น 0 เท่านั้น

โปรดทราบว่านี่คือระยะเวลาเช่าที่ขอโดยไคลเอ็นต์ SRP เซิร์ฟเวอร์อาจเลือกที่จะยอมรับช่วงเวลาเช่าอื่น

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ช่วงเวลาเช่า (เป็นวินาที)

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

รับที่อยู่ซ็อกเก็ต (ที่อยู่ IPv6 และหมายเลขพอร์ต) ของเซิร์ฟเวอร์ SRP ที่ไคลเอ็นต์ SRP ใช้อยู่

หากไคลเอ็นต์ไม่ได้ทำงานอยู่ จะไม่มีการระบุที่อยู่ (เลขศูนย์ทั้งหมด) ที่มีหมายเลขพอร์ตเป็น 0

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังที่อยู่ซ็อกเก็ตของเซิร์ฟเวอร์ SRP (ไม่ใช่ NULL เสมอ)

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

รับรายการบริการที่ลูกค้าเป็นผู้จัดการ

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังส่วนหัวของรายการที่เชื่อมโยงของบริการทั้งหมดหรือเป็นค่าว่างหากรายการว่างเปล่า

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

รับค่า TTL ในทุกระเบียนที่รวมอยู่ในคำขออัปเดต SRP

โปรดทราบว่านี่เป็น TTL ที่ไคลเอ็นต์ SRP ขอ เซิร์ฟเวอร์อาจเลือกที่จะยอมรับ TTL อื่น

โดยค่าเริ่มต้น TTL เท่ากับช่วงเวลาเช่า การส่งผ่าน 0 หรือค่าที่มากกว่าช่วงเวลาเช่าผ่าน otSrpClientSetTtl() จะทำให้ TTL เท่ากับช่วงเวลาเช่าเท่ากันด้วย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
TTL (เป็นวินาที)

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

ระบุสถานะปัจจุบันของโหมดเริ่มต้นอัตโนมัติ (เปิดใช้หรือปิดใช้)

ซึ่งจะใช้ได้เมื่อเปิดใช้ฟีเจอร์เริ่มต้นอัตโนมัติ OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE เท่านั้น

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
TRUE ถ้าเปิดใช้โหมดเริ่มต้นอัตโนมัติ มิฉะนั้นจะเป็น FALSE

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

ระบุว่าไคลเอ็นต์ SRP ทำงานอยู่หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
TRUE หากไคลเอ็นต์ SRP ทำงานอยู่ หากไม่เป็นเช่นนั้น ให้ FALSE

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

ระบุว่าโหมด "การรวมระเบียนคีย์บริการ" เปิดหรือปิดใช้อยู่

ใช้งานได้เมื่อเปิดใช้การกำหนดค่า OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
TRUE หากเปิดใช้โหมด "การรวมระเบียนคีย์บริการ" หากไม่เปิดใช้ FALSE

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

แปลง otSrpClientItemState เป็นสตริง

รายละเอียด
พารามิเตอร์
[in] aItemState
สถานะรายการ
การส่งคืน
ตัวแทนสตริงของ aItemState

otSrpClientRemoveHostAndServices

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

เริ่มกระบวนการนำข้อมูลโฮสต์และบริการทั้งหมดออก

หลังจากกลับมาจากฟังก์ชันนี้ ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะของคำขอนำออกด้วยเซิร์ฟเวอร์ SRP

หากจะนำข้อมูลโฮสต์ออกจากเซิร์ฟเวอร์อย่างถาวร ควรตั้งค่า aRemoveKeyLease เป็น true ซึ่งจะนำการเช่าคีย์ที่เกี่ยวข้องกับโฮสต์บนเซิร์ฟเวอร์ออก ไม่เช่นนั้น ระบบจะเก็บบันทึกการเช่าคีย์ไว้เหมือนเดิม ซึ่งช่วยให้มั่นใจว่าเซิร์ฟเวอร์จะมีชื่อโฮสต์ที่สงวนไว้สำหรับเวลาที่ไคลเอ็นต์สามารถให้และลงทะเบียนบริการได้อีกครั้ง

aSendUnregToServer จะกำหนดลักษณะการทำงานเมื่อข้อมูลโฮสต์ยังไม่ได้ลงทะเบียนกับเซิร์ฟเวอร์ หากตั้งค่า aSendUnregToServer เป็น false (ซึ่งเป็นค่าเริ่มต้น/ค่าที่คาดไว้) ไคลเอ็นต์ SRP จะนำข้อมูลโฮสต์และบริการของโฮสต์ออกทันทีโดยไม่ส่งข้อความอัปเดตไปยังเซิร์ฟเวอร์ (ไม่ต้องอัปเดตเซิร์ฟเวอร์หากยังไม่ได้ลงทะเบียนไว้) หากตั้งค่า aSendUnregToServer เป็น true ไคลเอ็นต์ SRP จะส่งข้อความอัปเดตไปยังเซิร์ฟเวอร์ โปรดทราบว่าหากลงทะเบียนข้อมูลโฮสต์แล้ว ค่าของ aSendUnregToServer จะเป็นค่าเดิม และไคลเอ็นต์ SRP จะส่งข้อความอัปเดตไปยังเซิร์ฟเวอร์เพื่อขอให้นำข้อมูลทั้งหมดออกเสมอ

สถานการณ์หนึ่งที่ aSendUnregToServer จะมีประโยชน์คือเมื่อรีเซ็ต/รีบูตอุปกรณ์ ผู้โทรอาจต้องการนำบริการที่ลงทะเบียนไว้ก่อนหน้านี้ออกจากเซิร์ฟเวอร์ ในกรณีนี้ ผู้โทรสามารถ otSrpClientSetHostName() จากนั้นส่งคำขอ otSrpClientRemoveHostAndServices() กับ aSendUnregToServer เป็น true

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aRemoveKeyLease
บูลีนที่ระบุว่าควรนำการเช่าคีย์โฮสต์ออกด้วยหรือไม่
[in] aSendUnregToServer
บูลีนที่ระบุว่าจะส่งการอัปเดตไปยังเซิร์ฟเวอร์หรือไม่เมื่อไม่ได้ลงทะเบียนข้อมูลโฮสต์
แสดงผลค่า
OT_ERROR_NONE
เริ่มนำข้อมูลโฮสต์และบริการออกเรียบร้อยแล้ว ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะ
OT_ERROR_ALREADY
ข้อมูลโฮสต์ถูกนำออกไปแล้ว

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

ขอให้ยกเลิกการลงทะเบียนบริการกับเซิร์ฟเวอร์

หลังจากเรียกฟังก์ชันนี้สำเร็จ ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะของคำขอนำออกด้วยเซิร์ฟเวอร์ SRP

อินสแตนซ์ otSrpClientService ที่ aService ชี้ไปต้องคงอยู่และไม่มีการเปลี่ยนแปลงหลังจากส่งคืนจากฟังก์ชันนี้ (โดยมี OT_ERROR_NONE) OpenThread จะเก็บอินสแตนซ์บริการไว้ระหว่างกระบวนการนำออก หลังจากที่เรียกใช้ otSrpClientCallback แล้วเท่านั้น ซึ่งระบุว่ามีการนำอินสแตนซ์บริการออกจากรายการบริการไคลเอ็นต์ SRP แล้ว คุณจะนำไปทำให้เป็นอิสระ/ใช้ซ้ำได้

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aService
ตัวชี้ไปยังอินสแตนซ์ otSrpClientService เพื่อนำออก
แสดงผลค่า
OT_ERROR_NONE
เริ่มการนำบริการออกเรียบร้อยแล้ว ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะ
OT_ERROR_NOT_FOUND
ไม่พบบริการในรายการ

otSrpClientSetCallback

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

ตั้งค่าโค้ดเรียกกลับเพื่อแจ้งผู้โทรเกี่ยวกับเหตุการณ์/การเปลี่ยนแปลงจากไคลเอ็นต์ SRP

ไคลเอ็นต์ SRP ช่วยให้ลงทะเบียนการเรียกกลับครั้งเดียวได้ ดังนั้น การเรียกฟังก์ชันนี้ติดต่อกันจะเขียนทับฟังก์ชันเรียกกลับที่ตั้งค่าไว้ก่อนหน้านี้

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCallback
การเรียกกลับเพื่อแจ้งเหตุการณ์และการเปลี่ยนแปลง ค่าอาจเป็น NULL ก็ได้หากไม่จำเป็น
[in] aContext
บริบทที่กำหนดเองที่ใช้กับ aCallback

otSrpClientSetDomainName

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

ตั้งค่าชื่อโดเมนที่จะใช้โดยไคลเอ็นต์ SRP

ต้องเปิดใช้ OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE

หากไม่ได้ตั้งค่า ระบบจะใช้ "default.service.arpa"

บัฟเฟอร์สตริงชื่อที่ aName ชี้ไปจะต้องมีอยู่และไม่เปลี่ยนแปลงหลังจากแสดงผลจากฟังก์ชันนี้ OpenThread จะเก็บตัวชี้ไปยังสตริง

ชื่อโดเมนสามารถตั้งค่าก่อนที่ไคลเอ็นต์จะเริ่มต้นหรือหลังจากเริ่มต้น แต่ก่อนที่จะลงทะเบียนข้อมูลโฮสต์กับเซิร์ฟเวอร์ (ข้อมูลโฮสต์ควรอยู่ในรูปแบบ STATE_TO_ADD หรือ STATE_TO_REMOVE)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aName
ตัวชี้ไปยังสตริงชื่อโดเมน หาก NULL ตั้งค่าเป็นค่าเริ่มต้น "default.service.arpa"
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าป้ายกำกับชื่อโดเมนสำเร็จแล้ว
OT_ERROR_INVALID_STATE
ข้อมูลโฮสต์มีการลงทะเบียนกับเซิร์ฟเวอร์แล้ว

otSrpClientSetHostAddresses

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

ตั้งค่า/อัปเดตรายการที่อยู่ IPv6 ของโฮสต์

คุณสามารถตั้งค่า/เปลี่ยนที่อยู่ IPv6 ของโฮสต์ก่อนเริ่มต้นหรือระหว่างการทำงานของไคลเอ็นต์ SRP (เช่น เพิ่ม/นำออกหรือเปลี่ยนที่อยู่โฮสต์ที่ลงทะเบียนก่อนหน้า) ยกเว้นเมื่อมีการนำข้อมูลโฮสต์ออก (ไคลเอ็นต์กำลังจัดการคำขอนำออกจากการโทรไปยัง otSrpClientRemoveHostAndServices() ก่อนหน้านี้และข้อมูลโฮสต์ยังอยู่ในสถานะ STATE_TO_REMOVE หรือ STATE_REMOVING)

อาร์เรย์ที่อยู่ IPv6 ของโฮสต์ที่ aIp6Addresses ชี้ไปต้องคงอยู่และไม่มีการเปลี่ยนแปลงหลังจากส่งคืนจากฟังก์ชันนี้ (โดยใช้ OT_ERROR_NONE) OpenThread จะบันทึกตัวชี้ไปยังอาร์เรย์

หลังจากเรียกฟังก์ชันนี้สำเร็จ ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะการลงทะเบียนที่อยู่กับเซิร์ฟเวอร์ SRP

การเรียกใช้ฟังก์ชันนี้จะปิดใช้โหมดที่อยู่โฮสต์อัตโนมัติ หากเคยเปิดใช้จากการเรียกใช้ที่ประสบความสำเร็จไปยัง otSrpClientEnableAutoHostAddress()

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aIp6Addresses
ตัวชี้ไปยังอาร์เรย์ที่มีที่อยู่ IPv6 ของโฮสต์
[in] aNumAddresses
จำนวนที่อยู่ในอาร์เรย์ aIp6Addresses
แสดงผลค่า
OT_ERROR_NONE
เริ่มการเปลี่ยนแปลงรายการที่อยู่ IPv6 ของโฮสต์เรียบร้อยแล้ว ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะการลงทะเบียนที่อยู่กับเซิร์ฟเวอร์
OT_ERROR_INVALID_ARGS
รายการที่อยู่ไม่ถูกต้อง (เช่น ต้องมีที่อยู่อย่างน้อย 1 รายการ)
OT_ERROR_INVALID_STATE
ระบบกำลังนำโฮสต์ออก จึงไม่สามารถเปลี่ยนที่อยู่ของโฮสต์ได้

otSrpClientSetHostName

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

ตั้งค่าป้ายกำกับชื่อโฮสต์

หลังจากเรียกฟังก์ชันนี้สำเร็จ ระบบจะเรียกใช้ otSrpClientCallback เพื่อรายงานสถานะการลงทะเบียนข้อมูลโฮสต์กับเซิร์ฟเวอร์ SRP

บัฟเฟอร์สตริงชื่อที่ aName ชี้ไปจะต้องมีอยู่และไม่เปลี่ยนแปลงหลังจากแสดงผลจากฟังก์ชันนี้ OpenThread จะเก็บตัวชี้ไปยังสตริง

สามารถตั้งค่าชื่อโฮสต์ก่อนที่ไคลเอ็นต์จะเริ่มต้นหรือหลังจากเริ่มต้น แต่ก่อนที่จะลงทะเบียนข้อมูลโฮสต์กับเซิร์ฟเวอร์ (ข้อมูลโฮสต์ควรอยู่ในรูปแบบ STATE_TO_ADD หรือ STATE_REMOVED)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aName
ตัวชี้ไปยังสตริงป้ายกำกับชื่อโฮสต์ (ต้องไม่ใช่ NULL) ตัวชี้ไปยังบัฟเฟอร์ของสตริงจะต้องยังคงอยู่ คงที่และคงที่หลังจากแสดงผลจากฟังก์ชันนี้
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าป้ายกำกับชื่อโฮสต์เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
aName เป็นค่าว่าง
OT_ERROR_INVALID_STATE
ชื่อโฮสต์ได้รับการตั้งค่าและลงทะเบียนกับเซิร์ฟเวอร์แล้ว

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

ตั้งค่าช่วงเวลาเช่าคีย์เริ่มต้นที่ใช้ในคำขออัปเดต SRP

ช่วงเวลาเริ่มต้นจะใช้กับอินสแตนซ์ otSrpClientService ที่ตั้งค่า mKeyLease เป็น 0 เท่านั้น

การเปลี่ยนช่วงการเช่าจะไม่ส่งผลต่อช่วงระยะเวลาเช่าที่ยอมรับของบริการ/ข้อมูลโฮสต์ที่ลงทะเบียนแล้ว แต่จะมีผลกับข้อความอัปเดต SRP ในอนาคตเท่านั้น (เช่น การเพิ่มบริการใหม่และ/หรือการรีเฟรชบริการที่มีอยู่)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aInterval
ช่วงเวลาเช่าสำคัญ (เป็นวินาที) หากเป็น 0 ระบบจะใช้ค่าเริ่มต้นที่ระบุโดย OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

ตั้งค่าช่วงเวลาเช่าเริ่มต้นที่ใช้ในคำขออัปเดต SRP

ช่วงเวลาเริ่มต้นจะใช้กับอินสแตนซ์ otSrpClientService ที่ตั้งค่า mLease เป็น 0 เท่านั้น

การเปลี่ยนช่วงระยะเวลาเช่าจะไม่ส่งผลต่อช่วงระยะเวลาเช่าที่ยอมรับของบริการ/ข้อมูลโฮสต์ที่ลงทะเบียนแล้ว แต่จะมีผลกับข้อความอัปเดต SRP ในอนาคตเท่านั้น (เช่น การเพิ่มบริการใหม่และ/หรือการรีเฟรชบริการที่มีอยู่)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aInterval
ช่วงเวลาเช่า (เป็นวินาที) หากเป็น 0 ระบบจะใช้ค่าเริ่มต้นที่ระบุโดย OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

เปิด/ปิดใช้โหมด "การรวมระเบียนคีย์บริการ"

เมื่อเปิดใช้ ไคลเอ็นต์ SRP จะรวมระเบียน KEY ไว้ในคำสั่งคำอธิบายบริการในข้อความอัปเดต SRP ที่ส่ง

ใช้งานได้เมื่อเปิดใช้การกำหนดค่า OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
TRUE เพื่อเปิดใช้ FALSE เพื่อปิดใช้โหมด "การรวมระเบียนคีย์บริการ"

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

ตั้งค่า TTL ในทุกระเบียนที่รวมอยู่ในคำขออัปเดต SRP

การเปลี่ยน TTL จะไม่มีผลกับ TTL ของบริการที่ลงทะเบียนแล้ว/ข้อมูลโฮสต์ แต่จะมีผลกับข้อความการอัปเดต SRP ในอนาคตเท่านั้น (เช่น การเพิ่มบริการใหม่และ/หรือการรีเฟรชบริการที่มีอยู่)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aTtl
TTL (เป็นวินาที) หากค่าเป็น 0 หรือมากกว่าช่วงเวลาเช่า ระบบจะตั้งค่า TTL เป็นช่วงระยะเวลาเช่า

otSrpClientStart

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

เริ่มการดำเนินการไคลเอ็นต์ SRP

ไคลเอ็นต์ SRP จะเตรียมและส่งข้อความ "อัปเดต SRP" ไปยังเซิร์ฟเวอร์ SRP เมื่อเป็นไปตามเงื่อนไขทั้งหมดต่อไปนี้

  • ไคลเอ็นต์ SRP เริ่มขึ้นแล้ว โดยจะมีการเรียก otSrpClientStart()
  • ตั้งชื่อโฮสต์แล้ว - จะเรียก otSrpClientSetHostName()
  • มีการตั้งค่าที่อยู่ IPv6 ของโฮสต์อย่างน้อย 1 รายการ - ระบบจะเรียก otSrpClientSetHostName()
  • มีการเพิ่มบริการอย่างน้อย 1 รายการ - จะเรียก otSrpClientAddService()

ไม่สำคัญว่าฟังก์ชันเหล่านี้จะเรียกใช้ตามลำดับใด เมื่อเป็นไปตามเงื่อนไขทั้งหมด ไคลเอ็นต์ SRP จะรอความล่าช้าสั้นๆ ก่อนเตรียมข้อความ "การอัปเดต SRP" และส่งไปยังเซิร์ฟเวอร์ ความล่าช้านี้ช่วยให้ผู้ใช้เพิ่มบริการและ/หรือที่อยู่ IPv6 ได้หลายรายการก่อนจะส่งข้อความการอัปเดต SRP แรก (ทำให้มั่นใจได้ว่ามีการส่งอัปเดต SRP รายการเดียวที่มีข้อมูลทั้งหมด) การกำหนดค่า OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY จะระบุช่วงการหน่วงเวลา

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aServerSockAddr
ที่อยู่ซ็อกเก็ต (ที่อยู่ IPv6 และหมายเลขพอร์ต) ของเซิร์ฟเวอร์ SRP
แสดงผลค่า
OT_ERROR_NONE
การดำเนินการไคลเอ็นต์ SRP เริ่มต้นสำเร็จแล้วหรือทำงานด้วยที่อยู่ซ็อกเก็ตเซิร์ฟเวอร์และโค้ดเรียกกลับเดียวกันแล้ว
OT_ERROR_BUSY
ไคลเอ็นต์ SRP ไม่ว่างเนื่องจากทำงานด้วยที่อยู่ซ็อกเก็ตอื่น
OT_ERROR_FAILED
เปิด/เชื่อมต่อซ็อกเก็ต UDP ของไคลเอ็นต์ไม่สำเร็จ

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

หยุดการดำเนินการไคลเอ็นต์ SRP

หยุดการโต้ตอบเพิ่มเติมกับเซิร์ฟเวอร์ SRP โปรดทราบว่าการดำเนินการนี้จะไม่ลบหรือล้างข้อมูลโฮสต์และ/หรือรายการบริการ ซึ่งเป็นการทำเครื่องหมายบริการทั้งหมดที่จะเพิ่ม/นำออกอีกครั้งเมื่อไคลเอ็นต์เริ่มต้น (อีกครั้ง)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

แสดงผลโหมดที่อยู่ที่เซิร์ฟเวอร์ SRP ใช้อยู่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
โหมดที่อยู่ของเซิร์ฟเวอร์ SRP

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

แสดงผลหมายเลขลำดับที่ใช้กับโหมดที่อยู่ Anycast

หมายเลขลำดับจะรวมอยู่ในรายการ "DNS/SRP Service Anycast Address" ที่เผยแพร่ในข้อมูลเครือข่าย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
หมายเลขลำดับ Anycast

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

แสดงผลโดเมนที่ได้รับอนุญาตไปยังเซิร์ฟเวอร์ SRP

หากไม่ได้ตั้งค่าโดเมนโดย SetDomain ระบบจะแสดงผล "default.service.arpa." จะมีการใส่จุดต่อท้ายเสมอ แม้ว่าโดเมนจะตั้งค่าไว้โดยไม่มีจุดดังกล่าว

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังสตริงโดเมนที่มีจุดร่วม

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

แสดงผลการกำหนดค่าเซิร์ฟเวอร์ SRP LEASE และ KEY-LEASE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aLeaseConfig
ตัวชี้ไปยังอินสแตนซ์ otSrpServerLeaseConfig

otSrpServerGetNextHost

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

แสดงผลโฮสต์ถัดไปที่ลงทะเบียนในเซิร์ฟเวอร์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aHost
ตัวชี้ไปยังโฮสต์ปัจจุบัน ใช้ NULL เพื่อรับโฮสต์แรก
การส่งคืน
ตัวชี้ไปยังโฮสต์ที่จดทะเบียน ว่างเปล่าหากไม่พบโฮสต์เพิ่มอีก

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

แสดงผลพอร์ตที่เซิร์ฟเวอร์ SRP กำลังฟังอยู่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
พอร์ตของเซิร์ฟเวอร์ SRP โดยจะแสดงผลเป็น 0 หากเซิร์ฟเวอร์ไม่ทำงาน

otSrpServerGetResponseCounters

const otSrpServerResponseCounters * otSrpServerGetResponseCounters(
  otInstance *aInstance
)

แสดงผลตัวนับการตอบสนองของเซิร์ฟเวอร์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังตัวนับการตอบสนองของเซิร์ฟเวอร์ SRP

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

แสดงผลสถานะของเซิร์ฟเวอร์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
สถานะปัจจุบันของเซิร์ฟเวอร์ SRP

otSrpServerGetTtlConfig

void otSrpServerGetTtlConfig(
  otInstance *aInstance,
  otSrpServerTtlConfig *aTtlConfig
)

แสดงผลการกำหนดค่า TTL ของเซิร์ฟเวอร์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aTtlConfig
ตัวชี้ไปยังอินสแตนซ์ otSrpServerTtlConfig

otSrpServerHandleServiceUpdateResult

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

รายงานผลของการประมวลผลการอัปเดต SRP ไปยังเซิร์ฟเวอร์ SRP

เครื่องจัดการการอัปเดตบริการควรเรียกใช้ฟังก์ชันนี้เพื่อส่งคืนผลของการประมวลผลการอัปเดต SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aId
รหัสธุรกรรมการอัปเดตบริการ ซึ่งควรเป็นรหัสเดียวกับที่ระบุผ่าน otSrpServerServiceUpdateHandler
[in] aError
ข้อผิดพลาดที่จะส่งกลับไปที่เซิร์ฟเวอร์ SRP ใช้ OT_ERROR_DUPLICATED เพื่อแสดงความขัดแย้งของชื่อ DNS

otSrpServerHostGetAddresses

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

แสดงผลที่อยู่ของโฮสต์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aHost
ตัวชี้ไปยังโฮสต์บริการ SRP
[out] aAddressesNum
ตัวชี้ไปยังตำแหน่งที่เราจะแสดงจำนวนที่อยู่
การส่งคืน
ตัวชี้ไปยังอาร์เรย์ของที่อยู่ IPv6

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

แสดงชื่อเต็มของโฮสต์

รายละเอียด
พารามิเตอร์
[in] aHost
ตัวชี้ไปยังโฮสต์บริการ SRP
การส่งคืน
ตัวชี้ไปยังสตริงชื่อโฮสต์ที่ลงท้ายด้วยค่า Null

otSrpServerHostGetLeaseInfo

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

แสดงผลข้อมูล LEASE และ KEY-LEASE ของโฮสต์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aHost
ตัวชี้ไปยังโฮสต์ของเซิร์ฟเวอร์ SRP
[out] aLeaseInfo
ตัวชี้ไปยังตำแหน่งที่แสดงข้อมูล LEASE และ KEY-LEASE

otSrpServerHostGetNextService

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

แสดงผลบริการถัดไปของโฮสต์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aHost
ตัวชี้ไปยังโฮสต์บริการ SRP
[in] aService
ตัวชี้ไปยังอินสแตนซ์บริการ SRP ปัจจุบัน ใช้ NULL เพื่อรับบริการแรก
การส่งคืน
ตัวชี้ไปยังบริการถัดไปหรือ NULL หากไม่มีบริการอื่น

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

บ่งบอกว่าโฮสต์บริการ SRP ถูกลบไปแล้วหรือไม่

คุณลบโฮสต์บริการ SRP ได้ แต่คงชื่อโฮสต์ไว้ใช้ในอนาคต ในกรณีนี้ อินสแตนซ์โฮสต์จะไม่ถูกนำออกจากเซิร์ฟเวอร์/รีจิสทรี SRP

รายละเอียด
พารามิเตอร์
[in] aHost
ตัวชี้ไปยังโฮสต์บริการ SRP
การส่งคืน
TRUE ถ้าโฮสต์ถูกลบ FALSE ถ้าไม่เป็น FALSE

otSrpServerHostMatchesFullName

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

ระบุว่าโฮสต์ตรงกับชื่อโฮสต์ที่ระบุหรือไม่

การจับคู่ชื่อ DNS จะดำเนินการโดยใช้การเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (เช่น "Abc" และ "aBc" ถือว่าเป็นข้อมูลเดียวกัน)

รายละเอียด
พารามิเตอร์
[in] aHost
ตัวชี้ไปยังโฮสต์บริการ SRP
[in] aFullName
ชื่อโฮสต์แบบเต็ม
แสดงผลค่า
TRUE
หากโฮสต์ตรงกับชื่อโฮสต์
FALSE
หากโฮสต์ไม่ตรงกับชื่อโฮสต์

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

ระบุว่าเปิดหรือปิดโหมดเปิดใช้งานอัตโนมัติ

ต้องใช้ฟีเจอร์ OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
TRUE
โหมดเปิดใช้งานอัตโนมัติเปิดใช้งานอยู่
FALSE
โหมดเปิดใช้งานอัตโนมัติถูกปิดใช้งาน

otSrpServerParseSubTypeServiceName

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

แยกวิเคราะห์ชื่อบริการประเภทย่อย (ชื่อเต็ม) และแยกป้ายกำกับประเภทย่อย

ชื่อบริการแบบเต็มสำหรับบริการประเภทย่อยอยู่หลัง "._sub..."

รายละเอียด
พารามิเตอร์
[in] aSubTypeServiceName
ชื่อบริการประเภทย่อย (ชื่อเต็ม)
[out] aLabel
ตัวชี้ไปยังบัฟเฟอร์เพื่อคัดลอกป้ายกำกับประเภทย่อยที่แยกออกมา
[in] aLabelSize
ขนาดสูงสุดของบัฟเฟอร์ aLabel
แสดงผลค่า
OT_ERROR_NONE
แยกวิเคราะห์ชื่อสำเร็จและอัปเดต aLabel แล้ว
OT_ERROR_NO_BUFS
ป้ายกำกับประเภทย่อยไม่สามารถใส่ใน aLabel บัฟเฟอร์ได้ (จำนวนอักขระจากป้ายกำกับที่สามารถพอดีจะคัดลอกมาใน aLabel การตรวจสอบว่าป้ายกำกับเป็นค่าว่าง)
OT_ERROR_INVALID_ARGS
aSubTypeServiceName ไม่ใช่รูปแบบประเภทย่อยที่ถูกต้อง

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

แสดงผลโฮสต์ที่มีอินสแตนซ์บริการอยู่

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
ตัวชี้ไปยังอินสแตนซ์โฮสต์

otSrpServerServiceGetInstanceLabel

const char * otSrpServerServiceGetInstanceLabel(
  const otSrpServerService *aService
)

แสดงผลป้ายกำกับอินสแตนซ์บริการ (ป้ายกำกับแรกในชื่ออินสแตนซ์) ของบริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
ตัวชี้ไปยังสตริงป้ายกำกับอินสแตนซ์บริการที่มีการยุติค่า Null

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

แสดงผลชื่ออินสแตนซ์บริการแบบเต็มของบริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
ตัวชี้ไปยังสตริงชื่ออินสแตนซ์บริการที่สิ้นสุดค่า Null

otSrpServerServiceGetLeaseInfo

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

แสดงผลข้อมูล LEASE และ KEY-LEASE ของบริการที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการเซิร์ฟเวอร์ SRP
[out] aLeaseInfo
ตัวชี้ไปยังตำแหน่งที่แสดงข้อมูล LEASE และ KEY-LEASE

otSrpServerServiceGetNumberOfSubTypes

uint16_t otSrpServerServiceGetNumberOfSubTypes(
  const otSrpServerService *aService
)

รับจำนวนประเภทย่อยของบริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
จำนวนประเภทย่อยของ aService

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

แสดงผลพอร์ตของอินสแตนซ์บริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
พอร์ตของบริการ

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

แสดงผลลำดับความสำคัญของอินสแตนซ์บริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
ลำดับความสำคัญของบริการ

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

แสดงชื่อเต็มของบริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
ตัวชี้ไปยังสตริงชื่อบริการที่สิ้นสุดค่า Null

otSrpServerServiceGetSubTypeServiceNameAt

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

รับชื่อบริการประเภทย่อย (ชื่อเต็ม) ของบริการตามดัชนีที่ระบุ

ชื่อบริการแบบเต็มสำหรับบริการประเภทย่อยอยู่หลัง "._sub..."

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
[in] aIndex
ดัชนีที่จะรับ
การส่งคืน
ตัวชี้ไปยังชื่อบริการประเภทย่อยที่ aIndex หรือ NULL หากไม่มีประเภทย่อยที่ดัชนีนี้

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

แสดงผล TTL ของอินสแตนซ์บริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
TTL ของอินสแตนซ์บริการ..

otSrpServerServiceGetTxtData

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

แสดงผลข้อมูลระเบียน TXT ของอินสแตนซ์บริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
[out] aDataLength
ตัวชี้สำหรับแสดงผลความยาวของข้อมูลระเบียน TXT ต้องไม่ใช่ NULL
การส่งคืน
ตัวชี้ไปยังบัฟเฟอร์ที่มีข้อมูลระเบียน TXT (ความยาวของข้อมูล TXT จะแสดงผลใน aDataLength)

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

แสดงผลน้ำหนักของอินสแตนซ์บริการ

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
น้ำหนักของบริการ

otSrpServerServiceHasSubTypeServiceName

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

ระบุว่าบริการมีประเภทย่อยที่ระบุหรือไม่

การจับคู่ชื่อ DNS จะดำเนินการโดยใช้การเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (เช่น "Abc" และ "aBc" ถือว่าเป็นข้อมูลเดียวกัน)

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
[in] aSubTypeServiceName
ชื่อบริการประเภทย่อย (ชื่อเต็ม) ที่จะตรวจสอบ
แสดงผลค่า
TRUE
บริการมีประเภทย่อย aSubTypeServiceName
FALSE
บริการไม่มีประเภทย่อย aSubTypeServiceName

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

ระบุว่าบริการ SRP ถูกลบแล้วหรือไม่

คุณลบบริการ SRP ได้ แต่จะเก็บชื่อไว้ใช้ในอนาคต ในกรณีนี้ อินสแตนซ์ของบริการจะไม่ถูกนำออกจากเซิร์ฟเวอร์/รีจิสทรี SRP และจะมีการรับประกันว่าบริการทั้งหมดจะถูกลบหากมีการลบโฮสต์

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
การส่งคืน
TRUE ถ้าบริการถูกลบ จะ FALSE หากไม่

otSrpServerServiceMatchesInstanceName

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

ระบุว่าบริการนี้ตรงกับชื่ออินสแตนซ์ของบริการที่ระบุหรือไม่

การจับคู่ชื่อ DNS จะดำเนินการโดยใช้การเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (เช่น "Abc" และ "aBc" ถือว่าเป็นข้อมูลเดียวกัน)

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
[in] aInstanceName
ชื่ออินสแตนซ์บริการ
แสดงผลค่า
TRUE
หากบริการตรงกับชื่ออินสแตนซ์บริการ
FALSE
หากบริการไม่ตรงกับชื่ออินสแตนซ์บริการ

otSrpServerServiceMatchesServiceName

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

ระบุว่าบริการนี้ตรงกับชื่อบริการที่ระบุหรือไม่

การจับคู่ชื่อ DNS จะดำเนินการโดยใช้การเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (เช่น "Abc" และ "aBc" ถือว่าเป็นข้อมูลเดียวกัน)

รายละเอียด
พารามิเตอร์
[in] aService
ตัวชี้ไปยังบริการ SRP
[in] aServiceName
ชื่อบริการ
แสดงผลค่า
TRUE
หากบริการตรงกับชื่อบริการ
FALSE
หากบริการไม่ตรงกับชื่อบริการ

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

ตั้งค่าโหมดที่อยู่ที่จะใช้โดยเซิร์ฟเวอร์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMode
โหมดที่อยู่ที่จะใช้
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าโหมดที่อยู่เรียบร้อยแล้ว
OT_ERROR_INVALID_STATE
เซิร์ฟเวอร์ SRP เปิดใช้อยู่และเปลี่ยนแปลงโหมดที่อยู่ไม่ได้

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

กำหนดหมายเลขลำดับที่ใช้กับโหมดที่อยู่ Anycast

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aSequenceNumber
หมายเลขลำดับที่จะใช้
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าโหมดที่อยู่เรียบร้อยแล้ว
OT_ERROR_INVALID_STATE
เซิร์ฟเวอร์ SRP เปิดใช้อยู่และเปลี่ยนแปลงหมายเลขลำดับไม่ได้

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

เปิด/ปิดใช้โหมดเปิดใช้อัตโนมัติในเซิร์ฟเวอร์ SRP

ต้องใช้ฟีเจอร์ OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE

เมื่อเปิดใช้โหมดนี้ Border Routing Manager จะควบคุมว่าจะเปิดหรือปิดใช้เซิร์ฟเวอร์ SRP เมื่อใด/เมื่อใด เซิร์ฟเวอร์ SRP จะเปิดใช้โดยอัตโนมัติหาก/เมื่อมีการเริ่มต้น Border Routing และทำกับคำนำหน้าเริ่มต้นและการกำหนดค่าเส้นทาง (เมื่อมีการกำหนด OMR และคำนำหน้าลิงก์ มีการโฆษณาในข้อความการโฆษณาเราเตอร์ที่ปล่อยออกมาในฝั่งโครงสร้างพื้นฐาน และเผยแพร่ในข้อมูลเครือข่ายเทรด) ระบบจะปิดใช้เซิร์ฟเวอร์ SRP โดยอัตโนมัติหาก/เมื่อ BR หยุดทำงาน (เช่น ในกรณีที่มีการนำอินเทอร์เฟซเครือข่ายโครงสร้างพื้นฐานออก หรือหากถอด BR ออก)

คุณสามารถปิดใช้โหมดนี้ได้ด้วยการเรียก otSrpServerSetAutoEnableMode() โดยตั้งค่า aEnabled เป็น false หรือหากมีการเปิดหรือปิดเซิร์ฟเวอร์ SRP อย่างชัดเจนด้วยการเรียกฟังก์ชัน otSrpServerSetEnabled() การปิดใช้โหมดเปิดใช้อัตโนมัติโดยใช้ otSrpServerSetAutoEnableMode(false) จะไม่เปลี่ยนสถานะปัจจุบันของเซิร์ฟเวอร์ SRP (เช่น หากเปิดใช้ ก็จะยังคงเปิดใช้ต่อไป)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
บูลีนสำหรับเปิด/ปิดใช้โหมดเปิดใช้อัตโนมัติ

otSrpServerSetDomain

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

ตั้งค่าโดเมนในเซิร์ฟเวอร์ SRP

จุดต่อท้ายจะต่อท้าย aDomain หากยังไม่มี ควรเรียกใช้ก่อนเปิดใช้เซิร์ฟเวอร์ SRP เท่านั้น

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aDomain
โดเมนที่จะตั้งค่า ต้องไม่ใช่ NULL
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าโดเมนเป็น aDomain สำเร็จแล้ว
OT_ERROR_INVALID_STATE
เปิดใช้เซิร์ฟเวอร์ SRP อยู่แล้วและเปลี่ยนโดเมนไม่ได้
OT_ERROR_INVALID_ARGS
อาร์กิวเมนต์ aDomain ไม่ใช่ชื่อโดเมน DNS ที่ถูกต้อง
OT_ERROR_NO_BUFS
ไม่มีหน่วยความจำสำหรับจัดเก็บเนื้อหาของ aDomain

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

เปิด/ปิดใช้เซิร์ฟเวอร์ SRP

ใน Border Router ขอแนะนำให้ใช้ otSrpServerSetAutoEnableMode() แทน

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aEnabled
บูลีนสำหรับเปิดใช้/ปิดใช้เซิร์ฟเวอร์ SRP

otSrpServerSetLeaseConfig

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

ตั้งการกำหนดค่า LEASE ของเซิร์ฟเวอร์ SRP และ KEY-LEASE

เมื่อมีการขอเวลา LEASE ที่ไม่ใช่ 0 จากไคลเอ็นต์ ค่าที่ระบุจะถูกจำกัดอยู่ในช่วง [aMinLease, aMaxLease] และ KEY-LEASE ที่ไม่ใช่ 0 จะได้รับอนุญาตในช่วง [aMinKeyLease, aMaxKeyLease] สำหรับเวลา LEASE หรือ KEY-LEASE จะเป็นศูนย์

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aLeaseConfig
ตัวชี้ไปยังอินสแตนซ์ otSrpServerLeaseConfig
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าช่วง LEASE และ KEY-LEASE สำเร็จแล้ว
OT_ERROR_INVALID_ARGS
ช่วง LEASE หรือ KEY-LEASE ไม่ถูกต้อง

otSrpServerSetServiceUpdateHandler

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

ตั้งค่าเครื่องจัดการการอัปเดตบริการ SRP ในเซิร์ฟเวอร์ SRP

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aServiceHandler
ตัวชี้ไปยังเครื่องจัดการบริการ ใช้ NULL เพื่อนำเครื่องจัดการออก
[in] aContext
ตัวชี้ไปยังข้อมูลบริบทที่กำหนดเอง ค่าอาจเป็น NULL หากไม่ได้ใช้

otSrpServerSetTtlConfig

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

กำหนดค่า TTL ของเซิร์ฟเวอร์ SRP

TTL ที่ได้รับจะไม่เกินช่วงระยะเวลาเช่าสูงสุดที่กำหนดค่าไว้ผ่าน otSrpServerSetLeaseConfig() เสมอ โดยไม่คำนึงถึงการกำหนดค่า TTL ต่ำสุดและสูงสุด

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aTtlConfig
ตัวชี้ไปยังอินสแตนซ์ otSrpServerTtlConfig
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าการกำหนดค่า TTL สำเร็จแล้ว
OT_ERROR_INVALID_ARGS
การกำหนดค่า TTL ไม่ถูกต้อง

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล