SRP [if necessary for clarity, see 'search results page']
Modul ini mencakup fungsi yang mengontrol perilaku klien SRP.
Ringkasan
Modul ini mencakup fungsi Protokol Pendaftaran Layanan.
Modul ini mencakup fungsi untuk buffering klien SRP dan kumpulan layanan.
Fungsi dalam modul ini hanya tersedia jika fitur OPENANCHOR_CONFIG_SRP_CLIENT_BUFFERS_ENABLE diaktifkan.
Enumerasi |
|
---|---|
otSrpClientItemState{
|
enum Menentukan status item klien SRP (info layanan atau host). |
otSrpServerAddressMode{
|
enum Menyatakan mode alamat yang digunakan oleh server SRP. |
otSrpServerState{
|
enum Menyatakan status server SRP. |
Typedef |
|
---|---|
otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
|
typedefvoid(*
Jenis pointer mendefinisikan callback yang digunakan oleh klien SRP untuk memberi tahu pengguna ketika dimulai atau dihentikan secara otomatis. |
otSrpClientBuffersServiceEntry
|
typedef Mewakili entri kumpulan layanan klien SRP. |
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
|
typedefvoid(*
Jenis pointer menetapkan callback yang digunakan oleh klien SRP untuk memberi tahu pengguna tentang perubahan/peristiwa/error. |
otSrpClientHostInfo
|
typedefstruct otSrpClientHostInfo
Mewakili info host klien SRP. |
otSrpClientService
|
typedefstruct otSrpClientService
Mewakili layanan klien SRP. |
otSrpServerAddressMode
|
typedef Menyatakan mode alamat yang digunakan oleh server SRP. |
otSrpServerHost
|
typedefstruct otSrpServerHost
Jenis buram ini mewakili host layanan SRP. |
otSrpServerLeaseConfig
|
typedefstruct otSrpServerLeaseConfig
Mencakup konfigurasi LEASE dan KEY-LEASE server SRP. |
otSrpServerLeaseInfo
|
typedefstruct otSrpServerLeaseInfo
Menyertakan informasi sewa server SRP dari host/layanan. |
otSrpServerResponseCounters
|
typedefstruct otSrpServerResponseCounters
Menyertakan statistik respons server SRP. |
otSrpServerService
|
typedefstruct otSrpServerService
Jenis buram ini mewakili layanan SRP. |
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
|
typedefvoid(*
Menangani update layanan SRP. |
otSrpServerServiceUpdateId
|
typedefuint32_t
ID transaksi pembaruan layanan SRP di Server SRP. |
otSrpServerTtlConfig
|
typedefstruct otSrpServerTtlConfig
Termasuk konfigurasi TTL server SRP. |
Fungsi |
|
---|---|
otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
|
Menambahkan layanan yang akan didaftarkan ke server.
|
otSrpClientBuffersAllocateService(otInstance *aInstance)
|
Mengalokasikan entri layanan baru dari kumpulan.
|
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
|
void
Membebaskan semua entri layanan yang dialokasikan sebelumnya.
|
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
|
void
Membebaskan entri layanan yang dialokasikan sebelumnya.
|
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
|
Mendapatkan array entri alamat IPv6 untuk digunakan sebagai daftar alamat host klien SRP.
|
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
|
char *
Mendapatkan buffer string yang akan digunakan untuk nama host klien SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
Mendapatkan buffering string untuk nama instance layanan dari entri layanan.
|
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
char *
Mendapatkan buffering string untuk nama layanan dari entri layanan.
|
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
|
uint8_t *
Mendapatkan buffer untuk data TXT dari entri layanan.
|
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
|
const char **
Mendapatkan array untuk label subjenis layanan dari entri layanan.
|
otSrpClientClearHostAndServices(otInstance *aInstance)
|
void
Menghapus semua info host dan semua layanan.
|
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
|
Menghapus layanan dan langsung menghapusnya dari daftar layanan klien.
|
otSrpClientDisableAutoStartMode(otInstance *aInstance)
|
void
Menonaktifkan mode mulai otomatis.
|
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
|
Mengaktifkan mode alamat host otomatis.
|
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
|
void
Mengaktifkan mode mulai otomatis.
|
otSrpClientGetDomainName(otInstance *aInstance)
|
const char *
Mendapatkan nama domain yang sedang digunakan oleh klien SRP.
|
otSrpClientGetHostInfo(otInstance *aInstance)
|
const otSrpClientHostInfo *
Mendapatkan info host.
|
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
|
uint32_t
Mendapatkan interval lease kunci default yang digunakan dalam permintaan update SRP.
|
otSrpClientGetLeaseInterval(otInstance *aInstance)
|
uint32_t
Mendapatkan interval lease default yang digunakan dalam permintaan update SRP.
|
otSrpClientGetServerAddress(otInstance *aInstance)
|
const otSockAddr *
Mendapatkan alamat soket (alamat IPv6 dan nomor port) dari server SRP yang digunakan oleh klien SRP.
|
otSrpClientGetServices(otInstance *aInstance)
|
const otSrpClientService *
Mendapatkan daftar layanan yang dikelola oleh klien.
|
otSrpClientGetTtl(otInstance *aInstance)
|
uint32_t
Mendapatkan nilai TTL di setiap data yang disertakan dalam permintaan update SRP.
|
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
|
bool
Menunjukkan status mode mulai otomatis saat ini (diaktifkan atau dinonaktifkan).
|
otSrpClientIsRunning(otInstance *aInstance)
|
bool
Menunjukkan apakah klien SRP sedang berjalan atau tidak.
|
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
|
bool
Menunjukkan apakah mode "penyertaan data kunci layanan" diaktifkan atau dinonaktifkan.
|
otSrpClientItemStateToString(otSrpClientItemState aItemState)
|
const char *
Mengonversi
otSrpClientItemState menjadi string. |
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
|
Memulai proses penghapusan info host dan semua layanan.
|
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
|
Meminta pendaftaran layanan untuk dibatalkan dengan server.
|
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
|
void
Menetapkan callback untuk memberi tahu pemanggil tentang peristiwa/perubahan dari klien SRP.
|
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
|
Menetapkan nama domain yang akan digunakan oleh klien SRP.
|
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
|
Menetapkan/memperbarui daftar alamat IPv6 host.
|
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
|
Menetapkan label nama host.
|
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
Menetapkan interval lease kunci default yang digunakan dalam permintaan update SRP.
|
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
|
void
Menetapkan interval lease default yang digunakan dalam permintaan update SRP.
|
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
|
void
Mengaktifkan/menonaktifkan mode "penyertaan catatan kunci layanan".
|
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
|
void
Menetapkan nilai TTL di setiap data yang disertakan dalam permintaan update SRP.
|
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
|
Memulai operasi klien SRP.
|
otSrpClientStop(otInstance *aInstance)
|
void
Menghentikan operasi klien SRP.
|
otSrpServerGetAddressMode(otInstance *aInstance)
|
Menampilkan mode alamat yang digunakan oleh server SRP.
|
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
|
uint8_t
Menampilkan nomor urut yang digunakan dengan mode alamat anycast.
|
otSrpServerGetDomain(otInstance *aInstance)
|
const char *
Menampilkan domain yang diotorisasi ke server SRP.
|
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
|
void
Menampilkan konfigurasi LEASE dan KEY-LEASE server SRP.
|
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
|
const otSrpServerHost *
Menampilkan host terdaftar berikutnya di server SRP.
|
otSrpServerGetPort(otInstance *aInstance)
|
uint16_t
Menampilkan port yang didengarkan server SRP.
|
otSrpServerGetResponseCounters(otInstance *aInstance)
|
const otSrpServerResponseCounters *
Menampilkan penghitung respons server SRP.
|
otSrpServerGetState(otInstance *aInstance)
|
Menampilkan status server SRP.
|
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
|
void
Menampilkan konfigurasi TTL server SRP.
|
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
|
void
Melaporkan hasil pemrosesan pembaruan SRP ke server SRP.
|
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
|
const otIp6Address *
Menampilkan alamat host yang diberikan.
|
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
|
const char *
Menampilkan nama lengkap host.
|
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
|
void
Menampilkan informasi LEASE dan LEASE-LEASE dari host tertentu.
|
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
|
const otSrpServerService *
Menampilkan layanan berikutnya dari host yang diberikan.
|
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
|
bool
Memberi tahu apakah host layanan SRP telah dihapus.
|
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
|
bool
Menunjukkan apakah host cocok dengan nama host tertentu.
|
otSrpServerIsAutoEnableMode(otInstance *aInstance)
|
bool
Menunjukkan apakah mode aktifkan otomatis diaktifkan atau dinonaktifkan.
|
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
|
Mengurai nama layanan subjenis (nama lengkap) dan mengekstrak label subjenis.
|
otSrpServerServiceGetHost(const otSrpServerService *aService)
|
const otSrpServerHost *
Menampilkan host tempat instance layanan berada.
|
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
|
const char *
Menampilkan label instance layanan (label pertama di nama instance) layanan.
|
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
|
const char *
Menampilkan nama instance layanan lengkap dari layanan.
|
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
|
void
Menampilkan informasi LEASE dan LEASE-LEASE dari layanan tertentu.
|
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
|
uint16_t
Mendapatkan jumlah sub-jenis layanan.
|
otSrpServerServiceGetPort(const otSrpServerService *aService)
|
uint16_t
Menampilkan port instance layanan.
|
otSrpServerServiceGetPriority(const otSrpServerService *aService)
|
uint16_t
Menampilkan prioritas instance layanan.
|
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
|
const char *
Menampilkan nama layanan lengkap dari layanan.
|
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
|
const char *
Mendapatkan nama layanan subjenis (nama lengkap) layanan pada indeks tertentu.
|
otSrpServerServiceGetTtl(const otSrpServerService *aService)
|
uint32_t
Menampilkan TTL instance layanan.
|
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
|
const uint8_t *
Menampilkan data data TXT instance layanan.
|
otSrpServerServiceGetWeight(const otSrpServerService *aService)
|
uint16_t
Menampilkan bobot instance layanan.
|
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
|
bool
Menunjukkan apakah layanan memiliki sub-jenis tertentu atau tidak.
|
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
|
bool
Menunjukkan apakah layanan SRP telah dihapus atau belum.
|
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
|
bool
Menunjukkan apakah layanan ini cocok dengan nama instance layanan tertentu.
|
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
|
bool
Menunjukkan apakah layanan ini cocok dengan nama layanan tertentu.
|
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
|
Menetapkan mode alamat yang akan digunakan oleh server SRP.
|
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
|
Menetapkan nomor urut yang digunakan dengan mode alamat anycast.
|
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
|
void
Mengaktifkan/menonaktifkan mode aktifkan otomatis di server SRP.
|
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
|
Menetapkan domain di server SRP.
|
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Mengaktifkan/menonaktifkan server SRP.
|
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
|
Menetapkan konfigurasi LEASE dan KEY-LEASE server SRP.
|
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
|
void
Menetapkan pengendali update layanan SRP di server SRP.
|
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
|
Menetapkan konfigurasi TTL server SRP.
|
Struct |
|
---|---|
otSrpClientBuffersServiceEntry |
Mewakili entri kumpulan layanan klien SRP. |
otSrpClientHostInfo |
Mewakili info host klien SRP. |
otSrpClientService |
Mewakili layanan klien SRP. |
otSrpServerLeaseConfig |
Mencakup konfigurasi LEASE dan KEY-LEASE server SRP. |
otSrpServerLeaseInfo |
Menyertakan informasi sewa server SRP dari host/layanan. |
otSrpServerResponseCounters |
Menyertakan statistik respons server SRP. |
otSrpServerTtlConfig |
Termasuk konfigurasi TTL server SRP. |
Enumerasi
otSrpClientItemState
otSrpClientItemState
Menentukan status item klien SRP (info layanan atau host).
Properti | |
---|---|
OT_SRP_CLIENT_ITEM_STATE_ADDING
|
Item sedang ditambahkan/didaftarkan. |
OT_SRP_CLIENT_ITEM_STATE_REFRESHING
|
Item sedang dimuat ulang. |
OT_SRP_CLIENT_ITEM_STATE_REGISTERED
|
Item terdaftar di server. |
OT_SRP_CLIENT_ITEM_STATE_REMOVED
|
Item dihapus. |
OT_SRP_CLIENT_ITEM_STATE_REMOVING
|
Item sedang dihapus. |
OT_SRP_CLIENT_ITEM_STATE_TO_ADD
|
Item yang akan ditambahkan/didaftarkan. |
OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH
|
Item akan diperbarui (daftar ulang untuk memperpanjang sewa). |
OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE
|
Item yang akan dihapus. |
otSrpServerAddressMode
otSrpServerAddressMode
Menyatakan mode alamat yang digunakan oleh server SRP.
Mode alamat menentukan cara alamat dan nomor port ditentukan oleh server SRP dan cara info ini dipublikasikan di Data Jaringan Thread.
Properti | |
---|---|
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST
|
Mode alamat anycast. |
OT_SRP_SERVER_ADDRESS_MODE_UNICAST
|
Mode alamat unicast. |
otSrpServerState
otSrpServerState
Menyatakan status server SRP.
Properti | |
---|---|
OT_SRP_SERVER_STATE_DISABLED
|
Server SRP dinonaktifkan. |
OT_SRP_SERVER_STATE_RUNNING
|
Server SRP diaktifkan dan berjalan. |
OT_SRP_SERVER_STATE_STOPPED
|
Server SRP diaktifkan tetapi dihentikan. |
Typedef
otSrpClientAutoStartCallback
void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
Jenis pointer mendefinisikan callback yang digunakan oleh klien SRP untuk memberi tahu pengguna ketika dimulai atau dihentikan secara otomatis.
Ini hanya digunakan saat fitur mulai otomatis OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
diaktifkan.
Callback ini dipanggil saat mode mulai otomatis diaktifkan dan klien SRP dimulai atau dihentikan secara otomatis.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpClientBuffersServiceEntry
struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry
Mewakili entri kumpulan layanan klien SRP.
otSrpClientCallback
void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
Jenis pointer menetapkan callback yang digunakan oleh klien SRP untuk memberi tahu pengguna tentang perubahan/peristiwa/error.
Callback ini dipanggil saat pendaftaran pembaruan berhasil (yaitu menambahkan/menghapus info host dan/atau beberapa layanan) dengan server SRP, atau jika terjadi kegagalan atau kesalahan (misalnya, server menolak permintaan pembaruan atau waktu klien habis saat menunggu respons, dll.).
Jika pendaftaran ulang update berhasil, parameter aError
akan menjadi OT_ERROR_NONE
dan info host serta daftar lengkap layanan diberikan sebagai parameter input ke callback. Perhatikan bahwa info dan layanan host masing-masing melacak statusnya sendiri dalam variabel anggota mState
yang sesuai dari struktur data terkait (status yang menunjukkan apakah info/layanan host terdaftar atau dihapus atau masih ditambahkan/dihapus, dll.).
Daftar layanan yang dihapus diteruskan sebagai daftar tertaut aRemovedServices
sendiri dalam callback. Perhatikan bahwa saat callback dipanggil, klien SRP (implementasi OpenThread) selesai dengan instance layanan yang telah dihapus yang tercantum dalam aRemovedServices
dan tidak lagi melacak/menyimpannya (yaitu, jika dari callback kita memanggil otSrpClientGetServices()
, layanan yang dihapus tidak akan ada dalam daftar yang ditampilkan). Memberikan daftar terpisah untuk layanan yang dihapus dalam callback akan membantu menunjukkan kepada pengguna item mana yang sekarang telah dihapus dan memungkinkan pengguna mengklaim kembali/menggunakan kembali instance tersebut.
Jika server menolak permintaan update SRP, kode respons DNS (RFC 2136) akan dipetakan ke error berikut:
- (0) NOERROR Berhasil (kondisi tanpa error) -> OT_ERROR_NONE
- (1) Server FORMERR tidak dapat ditafsirkan karena kesalahan format -> OT_ERROR_PARSE
- (2) Server SERVFAIL mengalami kegagalan internal -> OT_ERROR_FAILED
- (3) Nama NXDOMAIN yang seharusnya ada, tidak ada -> OT_ERROR_NOT_FOUND
- (4) Server NOTIMP tidak mendukung jenis kueri (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSE Server ditolak karena alasan kebijakan/keamanan -> OT_ERROR_ERROR
- (6) YXDOMAIN Beberapa nama yang seharusnya tidak ada, memang ada -> OT_ERROR_DUPLICATED
- (7) YXRRSET Beberapa RRset yang seharusnya tidak ada, memang ada -> OT_ERROR_DUPLICATED
- (8) NXRRSET Beberapa RRset yang seharusnya ada, tidak ada -> OT_ERROR_NOT_FOUND
- (9) Layanan NOTAUTH tidak bersifat otoritatif untuk zona -> OT_ERROR_ERROR
- (10) NOTZONE Nama tidak ada di zona -> OT_ERROR_PARSE
- (20) BADNAME Nama buruk -> OT_ERROR_PARSE
- (21) BADALG Bad algoritme -> OT_ERROR_ERROR
- (22) BADTRUN Pemotongan buruk -> OT_ERROR_PARSE
- Kode respons lainnya -> OT_ERROR_FAILED
Error berikut juga mungkin terjadi:
- OT_ERROR_RESPONSE_TIMEOUT : Waktu habis saat menunggu respons dari server (klien akan terus mencoba lagi).
- OT_ERROR_INVALID_ARGS : Struktur layanan yang disediakan tidak valid (mis., nama layanan buruk atau
otDnsTxtEntry
). - OT_ERROR_NO_BUFS : Buffering tidak memadai untuk menyiapkan atau mengirim pesan pembaruan.
Perhatikan bahwa jika terjadi kegagalan, klien melanjutkan operasi, yaitu mempersiapkan dan (ulang) mengirimkan pesan pembaruan SRP ke server, setelah beberapa interval tunggu. Interval tunggu percobaan ulang dimulai dari nilai minimum dan ditingkatkan dengan faktor pertumbuhan setiap kegagalan hingga nilai maksimum (lihat parameter konfigurasi OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL
dan parameter terkait untuk detail selengkapnya).
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
otSrpClientService
struct otSrpClientService otSrpClientService
Mewakili layanan klien SRP.
Nilai dalam struktur ini, termasuk buffering string untuk nama dan entri data TXT, HARUS dipertahankan dan tetap konstan setelah instance struktur ini diteruskan ke OpenThread dari otSrpClientAddService()
atau otSrpClientRemoveService()
.
Kolom mState
, mData
, mNext
hanya digunakan/dikelola oleh inti OT. Nilainya akan diabaikan jika instance otSrpClientService
diteruskan di otSrpClientAddService()
atau otSrpClientRemoveService()
atau fungsi lainnya. Pemanggil tidak perlu menetapkan kolom ini.
Kolom mLease
dan mKeyLease
menentukan interval lease dan lease kunci yang diinginkan untuk layanan ini. Nilai nol menunjukkan bahwa interval tidak ditentukan, lalu lease default atau interval lease kunci dari otSrpClientGetLeaseInterval()
dan otSrpClientGetKeyLeaseInterval()
digunakan untuk layanan ini. Jika interval sewa kunci (baik ditetapkan secara eksplisit atau ditentukan dari bawaan) lebih pendek dari interval sewa untuk suatu layanan, klien SRP juga akan menggunakan kembali nilai interval sewa untuk interval sewa kunci. Misalnya, jika dalam layanan, mLease
secara eksplisit ditetapkan ke 2 hari dan mKeyLease
ditetapkan ke nol dan lease kunci default ditetapkan ke 1 hari, maka saat mendaftarkan layanan ini, lease kunci yang diminta untuk layanan ini juga ditetapkan ke 2 hari.
otSrpServerAddressMode
enum otSrpServerAddressMode otSrpServerAddressMode
Menyatakan mode alamat yang digunakan oleh server SRP.
Mode alamat menentukan cara alamat dan nomor port ditentukan oleh server SRP dan cara info ini dipublikasikan di Data Jaringan Thread.
otSrpServerLeaseConfig
struct otSrpServerLeaseConfig otSrpServerLeaseConfig
Mencakup konfigurasi LEASE dan KEY-LEASE server SRP.
otSrpServerLeaseInfo
struct otSrpServerLeaseInfo otSrpServerLeaseInfo
Menyertakan informasi sewa server SRP dari host/layanan.
otSrpServerResponseCounters
struct otSrpServerResponseCounters otSrpServerResponseCounters
Menyertakan statistik respons server SRP.
otSrpServerService
struct otSrpServerService otSrpServerService
Jenis buram ini mewakili layanan SRP.
otSrpServerServiceUpdateHandler
void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
Menangani update layanan SRP.
Dipanggil oleh server SRP untuk memberi tahu bahwa {i>host<i} SRP dan mungkin layanan SRP sedang diperbarui. Update SRP tidak boleh dilakukan hingga pengendali menampilkan hasil dengan memanggil otSrpServerHandleServiceUpdateResult atau waktu habis setelah aTimeout
.
Observer layanan SRP harus selalu memanggil otSrpServerHandleServiceUpdateResult dengan kode error OT_ERROR_NONE segera setelah menerima peristiwa update.
Pengendali yang lebih umum dapat melakukan validasi pada host/layanan SRP dan menolak pembaruan SRP jika validasi gagal. Misalnya, Proxy Iklan harus mengiklankan (atau menghapus) host dan layanan pada link yang mendukung multicast dan menampilkan kode error tertentu jika terjadi kegagalan.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult
otSrpServerServiceUpdateId
uint32_t otSrpServerServiceUpdateId
ID transaksi pembaruan layanan SRP di Server SRP.
otSrpServerTtlConfig
struct otSrpServerTtlConfig otSrpServerTtlConfig
Termasuk konfigurasi TTL server SRP.
Fungsi
otSrpClientAddService
otError otSrpClientAddService( otInstance *aInstance, otSrpClientService *aService )
Menambahkan layanan yang akan didaftarkan ke server.
Setelah panggilan ke fungsi ini berhasil, otSrpClientCallback
akan dipanggil untuk melaporkan status penambahan/pendaftaran layanan dengan server SRP.
Instance otSrpClientService
yang ditunjuk oleh aService
HARUS tetap ada dan tetap tidak berubah setelah kembali dari fungsi ini (dengan OT_ERROR_NONE
). OpenThread akan menyimpan pointer ke instance layanan.
Instance otSrpClientService
tidak lagi dilacak oleh OpenThread dan hanya dapat diklaim kembali jika
- Metode ini dihapus secara eksplisit dengan panggilan ke
otSrpClientRemoveService()
atau dihapus bersama layanan lainnya melalui panggilan keotSrpClientRemoveHostAndServices() and only after the
otSrpClientCallback` dipanggil yang menunjukkan bahwa layanan telah dihapus. Atau, - Panggilan ke
otSrpClientClearHostAndServices()
yang akan segera menghapus host dan semua layanan terkait.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otSrpClientBuffersAllocateService
otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService( otInstance *aInstance )
Mengalokasikan entri layanan baru dari kumpulan.
Instance entri layanan yang ditampilkan akan diinisialisasi sebagai berikut:
mService.mName
akan mengarah ke buffering string yang dialokasikan yang dapat diambil menggunakan fungsiotSrpClientBuffersGetServiceEntryServiceNameString()
.mService.mInstanceName
akan mengarah ke buffering string yang dialokasikan yang dapat diambil menggunakan fungsiotSrpClientBuffersGetServiceEntryInstanceNameString()
.mService.mSubTypeLabels
mengarah ke array yang ditampilkan dariotSrpClientBuffersGetSubTypeLabelsArray()
.mService.mTxtEntries
akan mengarah kemTxtEntry
.mService.mNumTxtEntries
akan disetel ke satu.- Kolom
mService
lainnya (port, prioritas, bobot) ditetapkan ke nol. mTxtEntry.mKey
disetel ke NULL (nilai diperlakukan sebagai sudah dienkode).mTxtEntry.mValue
akan mengarah ke buffer yang dialokasikan yang dapat diambil menggunakan fungsiotSrpClientBuffersGetServiceEntryTxtBuffer()
.mTxtEntry.mValueLength
disetel ke nol.- Semua buffering dan array data/string terkait dihapus dari nol.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke entri layanan yang baru dialokasikan atau NULL jika tidak ada lebih banyak entri yang tersedia dalam kumpulan.
|
otSrpClientBuffersFreeAllServices
void otSrpClientBuffersFreeAllServices( otInstance *aInstance )
Membebaskan semua entri layanan yang dialokasikan sebelumnya.
Detail | |||
---|---|---|---|
Parameter |
|
otSrpClientBuffersFreeService
void otSrpClientBuffersFreeService( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService )
Membebaskan entri layanan yang dialokasikan sebelumnya.
aService
HARUS dialokasikan sebelumnya menggunakan otSrpClientBuffersAllocateService()
dan belum dibebaskan. Jika tidak, perilaku fungsi ini tidak ditentukan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpClientBuffersGetHostAddressesArray
otIp6Address * otSrpClientBuffersGetHostAddressesArray( otInstance *aInstance, uint8_t *aArrayLength )
Mendapatkan array entri alamat IPv6 untuk digunakan sebagai daftar alamat host klien SRP.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke array entri
otIp6Address (jumlah entri ditampilkan dalam aArrayLength ). |
otSrpClientBuffersGetHostNameString
char * otSrpClientBuffersGetHostNameString( otInstance *aInstance, uint16_t *aSize )
Mendapatkan buffer string yang akan digunakan untuk nama host klien SRP.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke buffer karakter yang akan digunakan untuk nama host klien SRP.
|
otSrpClientBuffersGetServiceEntryInstanceNameString
char * otSrpClientBuffersGetServiceEntryInstanceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Mendapatkan buffering string untuk nama instance layanan dari entri layanan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke buffering string.
|
otSrpClientBuffersGetServiceEntryServiceNameString
char * otSrpClientBuffersGetServiceEntryServiceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Mendapatkan buffering string untuk nama layanan dari entri layanan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke buffering string.
|
otSrpClientBuffersGetServiceEntryTxtBuffer
uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
Mendapatkan buffer untuk data TXT dari entri layanan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke buffer.
|
otSrpClientBuffersGetSubTypeLabelsArray
const char ** otSrpClientBuffersGetSubTypeLabelsArray( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength )
Mendapatkan array untuk label subjenis layanan dari entri layanan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke array.
|
otSrpClientClearHostAndServices
void otSrpClientClearHostAndServices( otInstance *aInstance )
Menghapus semua info host dan semua layanan.
Tidak seperti otSrpClientRemoveHostAndServices()
yang mengirim pesan update ke server untuk menghapus semua info, fungsi ini akan langsung menghapus semua info tanpa interaksi dengan server.
Detail | |||
---|---|---|---|
Parameter |
|
otSrpClientClearService
otError otSrpClientClearService( otInstance *aInstance, otSrpClientService *aService )
Menghapus layanan dan langsung menghapusnya dari daftar layanan klien.
Tidak seperti otSrpClientRemoveService()
yang mengirim pesan update ke server untuk menghapus layanan, fungsi ini akan menghapus layanan dari daftar layanan klien tanpa interaksi apa pun dengan server. Jika berhasil melakukan panggilan ke fungsi ini, otSrpClientCallback
TIDAK akan dipanggil dan entri aService
dapat diklaim kembali dan digunakan kembali oleh pemanggil dengan segera.
Dapat digunakan bersama dengan panggilan berikutnya ke otSrpClientAddService()
(berpotensi menggunakan kembali entri aService
yang sama dengan layanan dan nama instance yang sama) untuk memperbarui beberapa parameter dalam layanan yang ada.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpClientDisableAutoStartMode
void otSrpClientDisableAutoStartMode( otInstance *aInstance )
Menonaktifkan mode mulai otomatis.
Ini hanya tersedia jika fitur mulai otomatis OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
diaktifkan.
Menonaktifkan mode mulai otomatis tidak akan menghentikan klien jika sudah berjalan tetapi klien berhenti memantau Data Jaringan Thread untuk memverifikasi bahwa server SRP yang dipilih masih ada di dalamnya.
Perhatikan bahwa panggilan ke otSrpClientStop()
juga akan menonaktifkan mode mulai otomatis.
Detail | |||
---|---|---|---|
Parameter |
|
otSrpClientEnableAutoHostAddress
otError otSrpClientEnableAutoHostAddress( otInstance *aInstance )
Mengaktifkan mode alamat host otomatis.
Ketika diaktifkan, alamat IPv6 host akan secara otomatis ditetapkan oleh klien SRP menggunakan semua alamat unicast yang diinginkan di Thread netif, tidak termasuk semua alamat link-local dan mesh-local. Jika tidak ada alamat yang diinginkan, alamat EID Lokal Mesh akan ditambahkan. Klien SRP akan otomatis mendaftar ulang saat/jika alamat di Thread netif diperbarui (alamat baru ditambahkan atau alamat yang ada dihapus atau ditandai sebagai tidak diinginkan).
Mode alamat host otomatis dapat diaktifkan sebelum memulai atau selama operasi klien SRP kecuali saat info host dihapus (klien sedang sibuk menangani permintaan penghapusan dari panggilan ke otSrpClientRemoveHostAndServices()
dan info host masih dalam status STATE_TO_REMOVE
atau STATE_REMOVING
).
Setelah diaktifkan, mode alamat host otomatis dapat dinonaktifkan dengan panggilan ke otSrpClientSetHostAddresses()
yang kemudian secara eksplisit menetapkan alamat host.
Detail | |||||
---|---|---|---|---|---|
Nilai Pengembalian |
|
otSrpClientEnableAutoStartMode
void otSrpClientEnableAutoStartMode( otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext )
Mengaktifkan mode mulai otomatis.
Ini hanya tersedia jika fitur mulai otomatis OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
diaktifkan.
Opsi konfigurasi OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE
menentukan mode mulai otomatis default (baik diaktifkan atau dinonaktifkan pada awal stack OT).
Ketika mulai-otomatis diaktifkan, klien SRP akan memantau Data Jaringan Thread untuk menemukan server SRP dan memilih server yang disukai dan secara otomatis memulai dan menghentikan klien ketika server SRP terdeteksi.
Ada tiga kategori entri Data Jaringan yang menunjukkan adanya server SRP. Opsi tersebut disarankan dalam urutan berikut:
1) Lebih disukai entri unicast dengan alamat server disertakan dalam data layanan. Jika ada beberapa opsi, opsi dengan alamat IPv6 dengan angka terendah secara numerik akan lebih diutamakan.
2) Setiap entri {i>anycast<i} memiliki nomor urut. Nomor urut yang lebih besar dalam arti yang ditentukan oleh logika Aritmetika Nomor Seri dalam RFC-1982 dianggap lebih baru dan karenanya lebih direkomendasikan. Nomor urut terbesar yang menggunakan aritmetika nomor seri lebih disukai jika terdefinisi dengan baik (yaitu, nomor urut lebih besar dari semua nomor urut lainnya). Jika tidak didefinisikan dengan baik, maka lebih baik angka urutan terbesar secara numerik.
3) Entri unicast di mana info alamat server disertakan dalam data server. Jika ada beberapa opsi, opsi dengan alamat IPv6 dengan numerik terendah akan lebih disukai.
Ketika ada perubahan dalam entri Data Jaringan, klien akan memeriksa apakah server yang saat ini dipilih masih ada dalam Data Jaringan dan masih menjadi server pilihan. Jika tidak, klien akan beralih ke server pilihan baru atau berhenti jika tidak ada.
Jika klien SRP secara eksplisit dimulai melalui panggilan yang berhasil ke otSrpClientStart()
, alamat server SRP yang diberikan di otSrpClientStart()
akan terus digunakan, terlepas dari status mode mulai otomatis dan apakah alamat server SRP yang sama ditemukan atau tidak dalam Data Jaringan Thread. Dalam hal ini, hanya panggilan otSrpClientStop()
eksplisit yang akan menghentikan klien.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otSrpClientGetDomainName
const char * otSrpClientGetDomainName( otInstance *aInstance )
Mendapatkan nama domain yang sedang digunakan oleh klien SRP.
OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
harus diaktifkan.
Jika nama domain tidak ditetapkan, "default.service.arpa" akan digunakan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
String nama domain.
|
otSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
Mendapatkan info host.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke struktur info host.
|
otSrpClientGetKeyLeaseInterval
uint32_t otSrpClientGetKeyLeaseInterval( otInstance *aInstance )
Mendapatkan interval lease kunci default yang digunakan dalam permintaan update SRP.
Interval default hanya digunakan untuk instance otSrpClientService
dengan mKeyLease
ditetapkan ke nol.
Perhatikan bahwa ini adalah durasi lease yang diminta oleh klien SRP. Server dapat memilih untuk menerima interval sewa yang berbeda.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Interval sewa kunci (dalam detik).
|
otSrpClientGetLeaseInterval
uint32_t otSrpClientGetLeaseInterval( otInstance *aInstance )
Mendapatkan interval lease default yang digunakan dalam permintaan update SRP.
Interval default hanya digunakan untuk instance otSrpClientService
dengan mLease
ditetapkan ke nol.
Perhatikan bahwa ini adalah durasi lease yang diminta oleh klien SRP. Server dapat memilih untuk menerima interval sewa yang berbeda.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Interval sewa (dalam detik).
|
otSrpClientGetServerAddress
const otSockAddr * otSrpClientGetServerAddress( otInstance *aInstance )
Mendapatkan alamat soket (alamat IPv6 dan nomor port) dari server SRP yang digunakan oleh klien SRP.
Jika klien tidak berjalan, alamat tidak akan ditentukan (semuanya nol) dengan nol nomor port.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Sebuah pointer ke alamat soket server SRP (selalu non-NULL).
|
otSrpClientGetServices
const otSrpClientService * otSrpClientGetServices( otInstance *aInstance )
Mendapatkan daftar layanan yang dikelola oleh klien.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke bagian atas daftar tertaut semua layanan atau NULL jika daftar tersebut kosong.
|
otSrpClientGetTtl
uint32_t otSrpClientGetTtl( otInstance *aInstance )
Mendapatkan nilai TTL di setiap data yang disertakan dalam permintaan update SRP.
Perhatikan bahwa ini adalah TTL yang diminta oleh klien SRP. Server dapat memilih untuk menerima TTL yang berbeda.
Secara {i>default<i}, TTL adalah
sama dengan interval lease. Meneruskan 0 atau nilai yang lebih besar dari interval lease melalui otSrpClientSetTtl()
juga akan menyebabkan TTL sama dengan interval lease.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TTL (dalam detik).
|
otSrpClientIsAutoStartModeEnabled
bool otSrpClientIsAutoStartModeEnabled( otInstance *aInstance )
Menunjukkan status mode mulai otomatis saat ini (diaktifkan atau dinonaktifkan).
Ini hanya tersedia jika fitur mulai otomatis OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
diaktifkan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TRUE jika mode mulai otomatis diaktifkan, FALSE jika tidak.
|
otSrpClientIsRunning
bool otSrpClientIsRunning( otInstance *aInstance )
Menunjukkan apakah klien SRP sedang berjalan atau tidak.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TRUE jika klien SRP berjalan, FALSE jika sebaliknya.
|
otSrpClientIsServiceKeyRecordEnabled
bool otSrpClientIsServiceKeyRecordEnabled( otInstance *aInstance )
Menunjukkan apakah mode "penyertaan data kunci layanan" diaktifkan atau dinonaktifkan.
Tersedia saat konfigurasi OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
diaktifkan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TRUE jika mode "penyertaan catatan kunci layanan" diaktifkan, FALSE jika tidak.
|
otSrpClientItemStateToString
const char * otSrpClientItemStateToString( otSrpClientItemState aItemState )
Mengonversi otSrpClientItemState
menjadi string.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Representasi string dari
aItemState . |
otSrpClientRemoveHostAndServices
otError otSrpClientRemoveHostAndServices( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer )
Memulai proses penghapusan info host dan semua layanan.
Setelah kembali dari fungsi ini, otSrpClientCallback
akan dipanggil untuk melaporkan status permintaan penghapusan dengan server SRP.
Jika info host akan dihapus secara permanen dari server, aRemoveKeyLease
harus ditetapkan ke true
yang menghapus lease kunci yang terkait dengan host di server. Jika tidak, data lease kunci disimpan seperti sebelumnya, yang memastikan bahwa server menyimpan nama host sebagai cadangan saat klien sekali lagi dapat menyediakan dan mendaftarkan layanannya.
aSendUnregToServer
menentukan perilaku jika info host belum terdaftar dengan server. Jika aSendUnregToServer
disetel ke false
(yang merupakan nilai default/yang diharapkan) maka klien SRP akan segera menghapus info dan layanan host tanpa mengirim pesan pembaruan ke server (tidak perlu memperbarui server jika belum ada yang terdaftar). Jika aSendUnregToServer
disetel ke true
, klien SRP akan mengirim pesan update ke server. Perhatikan bahwa jika info host terdaftar, nilai aSendUnregToServer
tidak akan berpengaruh dan klien SRP akan selalu mengirimkan pesan update ke server yang meminta penghapusan semua info.
Salah satu situasi saat aSendUnregToServer
dapat berguna adalah saat perangkat direset/mulai ulang, pemanggil mungkin ingin menghapus layanan apa pun yang sebelumnya terdaftar dengan server. Dalam hal ini, pemanggil dapat otSrpClientSetHostName()
lalu meminta otSrpClientRemoveHostAndServices()
dengan aSendUnregToServer
sebagai true
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otSrpClientRemoveService
otError otSrpClientRemoveService( otInstance *aInstance, otSrpClientService *aService )
Meminta pendaftaran layanan untuk dibatalkan dengan server.
Setelah panggilan ke fungsi ini berhasil, otSrpClientCallback
akan dipanggil untuk melaporkan status permintaan penghapusan dengan server SRP.
Instance otSrpClientService
yang ditunjuk oleh aService
HARUS bertahan dan tetap tidak berubah setelah kembali dari fungsi ini (dengan OT_ERROR_NONE
). OpenThread akan mempertahankan instance layanan selama proses penghapusan. Hanya setelah otSrpClientCallback
dipanggil, yang menunjukkan bahwa instance layanan dihapus dari daftar layanan klien SRP dan dapat dibebaskan/digunakan kembali.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpClientSetCallback
void otSrpClientSetCallback( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext )
Menetapkan callback untuk memberi tahu pemanggil tentang peristiwa/perubahan dari klien SRP.
Klien SRP mengizinkan callback tunggal didaftarkan. Jadi, panggilan berturut-turut ke fungsi ini akan menimpa fungsi callback yang ditetapkan sebelumnya.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otSrpClientSetDomainName
otError otSrpClientSetDomainName( otInstance *aInstance, const char *aName )
Menetapkan nama domain yang akan digunakan oleh klien SRP.
OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
harus diaktifkan.
Jika tidak disetel, "default.service.arpa" akan digunakan.
Buffer string nama yang ditunjuk oleh aName
HARUS tetap ada dan tidak berubah setelah kembali dari fungsi ini. OpenThread akan menyimpan pointer ke string.
Nama domain dapat ditetapkan sebelum klien dimulai atau setelah dimulai, tetapi sebelum info host didaftarkan dengan server (info host harus dalam STATE_TO_ADD
atau STATE_TO_REMOVE
).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpClientSetHostAddresses
otError otSrpClientSetHostAddresses( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses )
Menetapkan/memperbarui daftar alamat IPv6 host.
Alamat IPv6 host dapat ditetapkan/diubah sebelum memulai atau selama pengoperasian klien SRP (misalnya untuk menambahkan/menghapus atau mengubah alamat host yang telah terdaftar sebelumnya), kecuali saat info host sedang dihapus (klien sibuk menangani permintaan penghapusan dari panggilan sebelumnya ke otSrpClientRemoveHostAndServices()
dan info host masih dalam status STATE_TO_REMOVE
atau STATE_REMOVING
).
Array alamat IPv6 host yang ditunjuk oleh aIp6Addresses
HARUS tetap ada dan tidak berubah setelah kembali dari fungsi ini (dengan OT_ERROR_NONE
). OpenThread akan menyimpan pointer ke array.
Setelah panggilan ke fungsi ini berhasil, otSrpClientCallback
akan dipanggil untuk melaporkan status pendaftaran alamat dengan server SRP.
Pemanggilan fungsi ini akan menonaktifkan mode alamat host otomatis jika sebelumnya diaktifkan dari panggilan yang berhasil ke otSrpClientEnableAutoHostAddress()
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otSrpClientSetHostName
otError otSrpClientSetHostName( otInstance *aInstance, const char *aName )
Menetapkan label nama host.
Setelah panggilan ke fungsi ini berhasil, otSrpClientCallback
akan dipanggil untuk melaporkan status pendaftaran info host dengan server SRP.
Buffer string nama yang ditunjuk oleh aName
HARUS tetap ada dan tidak berubah setelah kembali dari fungsi ini. OpenThread akan menyimpan pointer ke string.
Nama host dapat ditetapkan sebelum klien dimulai atau setelah dimulai, tetapi sebelum info host didaftarkan dengan server (info host harus dalam STATE_TO_ADD
atau STATE_REMOVED
).
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otSrpClientSetKeyLeaseInterval
void otSrpClientSetKeyLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Menetapkan interval lease kunci default yang digunakan dalam permintaan update SRP.
Interval default hanya digunakan untuk instance otSrpClientService
dengan mKeyLease
ditetapkan ke nol.
Mengubah interval lease tidak memengaruhi interval lease yang diterima dari layanan/info host yang sudah terdaftar. Hal ini hanya memengaruhi pesan update SRP di masa mendatang (yaitu menambahkan layanan baru dan/atau memuat ulang layanan yang ada).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpClientSetLeaseInterval
void otSrpClientSetLeaseInterval( otInstance *aInstance, uint32_t aInterval )
Menetapkan interval lease default yang digunakan dalam permintaan update SRP.
Interval default hanya digunakan untuk instance otSrpClientService
dengan mLease
ditetapkan ke nol.
Mengubah interval lease tidak memengaruhi interval lease yang diterima dari layanan/info host yang sudah terdaftar. Hal ini hanya memengaruhi pesan update SRP di masa mendatang (yaitu menambahkan layanan baru dan/atau memuat ulang layanan yang ada).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpClientSetServiceKeyRecordEnabled
void otSrpClientSetServiceKeyRecordEnabled( otInstance *aInstance, bool aEnabled )
Mengaktifkan/menonaktifkan mode "penyertaan catatan kunci layanan".
Saat diaktifkan, klien SRP akan menyertakan data KEY dalam Petunjuk Deskripsi Layanan dalam pesan update SRP yang dikirimkan.
Tersedia saat konfigurasi OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpClientSetTtl
void otSrpClientSetTtl( otInstance *aInstance, uint32_t aTtl )
Menetapkan nilai TTL di setiap data yang disertakan dalam permintaan update SRP.
Mengubah TTL tidak memengaruhi TTL layanan/info host yang sudah terdaftar. Perubahan ini hanya memengaruhi pesan update SRP di masa mendatang (yaitu menambahkan layanan baru dan/atau memuat ulang layanan yang ada).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpClientStart
otError otSrpClientStart( otInstance *aInstance, const otSockAddr *aServerSockAddr )
Memulai operasi klien SRP.
Klien SRP akan mempersiapkan dan mengirim pesan "SRP Update" ke server SRP setelah semua kondisi berikut terpenuhi:
- Klien SRP dimulai -
otSrpClientStart()
dipanggil. - Nama host telah ditetapkan -
otSrpClientSetHostName()
dipanggil. - Minimal satu alamat IPv6 host ditetapkan -
otSrpClientSetHostName()
dipanggil. - Setidaknya satu layanan ditambahkan -
otSrpClientAddService()
dipanggil.
Tidak masalah dalam urutan mana fungsi ini dipanggil. Ketika semua kondisi terpenuhi, klien SRP akan menunggu penundaan singkat sebelum menyiapkan pesan "SRP Update" dan mengirimkannya ke server. Penundaan ini memungkinkan pengguna untuk menambahkan beberapa layanan dan/atau alamat IPv6 sebelum pesan Pembaruan SRP pertama dikirim (memastikan satu Pembaruan SRP dikirimkan yang berisi semua info). Konfigurasi OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY
menentukan interval penundaan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otSrpClientStop
void otSrpClientStop( otInstance *aInstance )
Menghentikan operasi klien SRP.
Menghentikan interaksi lebih lanjut dengan server SRP. Perhatikan bahwa tindakan ini tidak menghapus atau menghapus info host dan/atau daftar layanan. Menandai semua layanan untuk ditambahkan/dihapus lagi setelah klien dimulai (kembali).
Detail | |||
---|---|---|---|
Parameter |
|
otSrpServerGetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
Menampilkan mode alamat yang digunakan oleh server SRP.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Mode alamat server SRP.
|
otSrpServerGetAnycastModeSequenceNumber
uint8_t otSrpServerGetAnycastModeSequenceNumber( otInstance *aInstance )
Menampilkan nomor urut yang digunakan dengan mode alamat anycast.
Nomor urut disertakan dalam entri "Alamat Anycast Layanan DNS/SRP" yang diterbitkan di Data Jaringan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Nomor urut anycast.
|
otSrpServerGetDomain
const char * otSrpServerGetDomain( otInstance *aInstance )
Menampilkan domain yang diotorisasi ke server SRP.
Jika domain tidak disetel oleh SetDomain, "default.service.arpa." akan ditampilkan. Titik akhir selalu ditambahkan meskipun domain disetel tanpa tanda titik.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke string domain yang bergabung dengan titik.
|
otSrpServerGetLeaseConfig
void otSrpServerGetLeaseConfig( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig )
Menampilkan konfigurasi LEASE dan KEY-LEASE server SRP.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpServerGetNextHost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
Menampilkan host terdaftar berikutnya di server SRP.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke host terdaftar. NULL, jika tidak ada lagi {i>host<i} yang dapat ditemukan.
|
otSrpServerGetPort
uint16_t otSrpServerGetPort( otInstance *aInstance )
Menampilkan port yang didengarkan server SRP.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Porta server SRP. Ia mengembalikan 0 jika server tidak berjalan.
|
otSrpServerGetResponseCounters
const otSrpServerResponseCounters * otSrpServerGetResponseCounters( otInstance *aInstance )
Menampilkan penghitung respons server SRP.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke penghitung respons server SRP.
|
otSrpServerGetState
otSrpServerState otSrpServerGetState( otInstance *aInstance )
Menampilkan status server SRP.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Status server SRP saat ini.
|
otSrpServerGetTtlConfig
void otSrpServerGetTtlConfig( otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig )
Menampilkan konfigurasi TTL server SRP.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpServerHandleServiceUpdateResult
void otSrpServerHandleServiceUpdateResult( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError )
Melaporkan hasil pemrosesan pembaruan SRP ke server SRP.
Pengendali Pembaruan Layanan harus memanggil fungsi ini untuk menampilkan hasil pemrosesan pembaruan SRP.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otSrpServerHostGetAddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
Menampilkan alamat host yang diberikan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Sebuah pointer ke {i>array<i} Alamat IPv6.
|
otSrpServerHostGetFullName
const char * otSrpServerHostGetFullName( const otSrpServerHost *aHost )
Menampilkan nama lengkap host.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke string nama host yang dihentikan null.
|
otSrpServerHostGetLeaseInfo
void otSrpServerHostGetLeaseInfo( const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo )
Menampilkan informasi LEASE dan LEASE-LEASE dari host tertentu.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpServerHostGetNextService
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
Menampilkan layanan berikutnya dari host yang diberikan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke layanan berikutnya atau NULL jika tidak ada layanan lagi.
|
otSrpServerHostIsDeleted
bool otSrpServerHostIsDeleted( const otSrpServerHost *aHost )
Memberi tahu apakah host layanan SRP telah dihapus.
Host layanan SRP dapat dihapus tetapi tetap mempertahankan namanya untuk penggunaan berikutnya. Dalam hal ini, instance host tidak dihapus dari server/registry SRP.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TRUE jika {i>host<i} telah dihapus, FALSE jika belum.
|
otSrpServerHostMatchesFullName
bool otSrpServerHostMatchesFullName( const otSrpServerHost *aHost, const char *aFullName )
Menunjukkan apakah host cocok dengan nama host tertentu.
Kecocokan nama DNS dilakukan menggunakan perbandingan string yang tidak peka huruf besar/kecil (yaitu, "Abc" dan "aBc" dianggap sama).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerIsAutoEnableMode
bool otSrpServerIsAutoEnableMode( otInstance *aInstance )
Menunjukkan apakah mode aktifkan otomatis diaktifkan atau dinonaktifkan.
Memerlukan fitur OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerParseSubTypeServiceName
otError otSrpServerParseSubTypeServiceName( const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize )
Mengurai nama layanan subjenis (nama lengkap) dan mengekstrak label subjenis.
Nama layanan lengkap untuk layanan subjenis setelah "
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otSrpServerServiceGetHost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
Menampilkan host tempat instance layanan berada.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke instance host.
|
otSrpServerServiceGetInstanceLabel
const char * otSrpServerServiceGetInstanceLabel( const otSrpServerService *aService )
Menampilkan label instance layanan (label pertama di nama instance) layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke string label instance layanan yang dihentikan null.
|
otSrpServerServiceGetInstanceName
const char * otSrpServerServiceGetInstanceName( const otSrpServerService *aService )
Menampilkan nama instance layanan lengkap dari layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke string nama instance layanan yang dihentikan null.
|
otSrpServerServiceGetLeaseInfo
void otSrpServerServiceGetLeaseInfo( const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo )
Menampilkan informasi LEASE dan LEASE-LEASE dari layanan tertentu.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpServerServiceGetNumberOfSubTypes
uint16_t otSrpServerServiceGetNumberOfSubTypes( const otSrpServerService *aService )
Mendapatkan jumlah sub-jenis layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Jumlah sub-jenis
aService . |
otSrpServerServiceGetPort
uint16_t otSrpServerServiceGetPort( const otSrpServerService *aService )
Menampilkan port instance layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Port layanan.
|
otSrpServerServiceGetPriority
uint16_t otSrpServerServiceGetPriority( const otSrpServerService *aService )
Menampilkan prioritas instance layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Prioritas layanan.
|
otSrpServerServiceGetServiceName
const char * otSrpServerServiceGetServiceName( const otSrpServerService *aService )
Menampilkan nama layanan lengkap dari layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Pointer ke string nama layanan yang dihentikan null.
|
otSrpServerServiceGetSubTypeServiceNameAt
const char * otSrpServerServiceGetSubTypeServiceNameAt( const otSrpServerService *aService, uint16_t aIndex )
Mendapatkan nama layanan subjenis (nama lengkap) layanan pada indeks tertentu.
Nama layanan lengkap untuk layanan subjenis setelah "
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke subjenis nama layanan di
aIndex , atau NULL jika tidak ada subjenis pada indeks ini. |
otSrpServerServiceGetTtl
uint32_t otSrpServerServiceGetTtl( const otSrpServerService *aService )
Menampilkan TTL instance layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TTL instance layanan.
|
otSrpServerServiceGetTxtData
const uint8_t * otSrpServerServiceGetTxtData( const otSrpServerService *aService, uint16_t *aDataLength )
Menampilkan data data TXT instance layanan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
Pointer ke buffering yang berisi data data TXT (panjang data TXT ditampilkan di
aDataLength ). |
otSrpServerServiceGetWeight
uint16_t otSrpServerServiceGetWeight( const otSrpServerService *aService )
Menampilkan bobot instance layanan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Bobot layanan.
|
otSrpServerServiceHasSubTypeServiceName
bool otSrpServerServiceHasSubTypeServiceName( const otSrpServerService *aService, const char *aSubTypeServiceName )
Menunjukkan apakah layanan memiliki sub-jenis tertentu atau tidak.
Kecocokan nama DNS dilakukan menggunakan perbandingan string yang tidak peka huruf besar/kecil (yaitu, "Abc" dan "aBc" dianggap sama).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerServiceIsDeleted
bool otSrpServerServiceIsDeleted( const otSrpServerService *aService )
Menunjukkan apakah layanan SRP telah dihapus atau belum.
Layanan SRP dapat dihapus tetapi tetap mempertahankan namanya untuk penggunaan berikutnya. Dalam hal ini, instance layanan tidak dihapus dari server/registry SRP. Semua layanan dijamin akan dihapus jika host dihapus.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
TRUE jika layanan telah dihapus, FALSE jika belum.
|
otSrpServerServiceMatchesInstanceName
bool otSrpServerServiceMatchesInstanceName( const otSrpServerService *aService, const char *aInstanceName )
Menunjukkan apakah layanan ini cocok dengan nama instance layanan tertentu.
Kecocokan nama DNS dilakukan menggunakan perbandingan string yang tidak peka huruf besar/kecil (yaitu, "Abc" dan "aBc" dianggap sama).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerServiceMatchesServiceName
bool otSrpServerServiceMatchesServiceName( const otSrpServerService *aService, const char *aServiceName )
Menunjukkan apakah layanan ini cocok dengan nama layanan tertentu.
Kecocokan nama DNS dilakukan menggunakan perbandingan string yang tidak peka huruf besar/kecil (yaitu, "Abc" dan "aBc" dianggap sama).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerSetAddressMode
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
Menetapkan mode alamat yang akan digunakan oleh server SRP.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerSetAnycastModeSequenceNumber
otError otSrpServerSetAnycastModeSequenceNumber( otInstance *aInstance, uint8_t aSequenceNumber )
Menetapkan nomor urut yang digunakan dengan mode alamat anycast.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerSetAutoEnableMode
void otSrpServerSetAutoEnableMode( otInstance *aInstance, bool aEnabled )
Mengaktifkan/menonaktifkan mode aktifkan otomatis di server SRP.
Memerlukan fitur OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
Saat mode ini diaktifkan, Border Routing Manager mengontrol apakah/kapan harus mengaktifkan atau menonaktifkan server SRP. Server SRP diaktifkan secara otomatis jika/saat Border Routing dimulai dan dilakukan dengan konfigurasi rute dan awalan awal (saat OMR dan awalan on-link ditentukan, diiklankan dalam pesan Iklan Router yang ditampilkan di sisi infrastruktur dan dipublikasikan di Data Jaringan Thread). Server SRP dinonaktifkan secara otomatis jika/saat BR dihentikan (misalnya, jika antarmuka jaringan infrastruktur dinonaktifkan atau jika BR terlepas).
Mode ini dapat dinonaktifkan oleh panggilan otSrpServerSetAutoEnableMode()
dengan aEnabled
yang disetel ke false
atau jika server SRP diaktifkan atau dinonaktifkan secara eksplisit oleh panggilan ke fungsi otSrpServerSetEnabled()
. Menonaktifkan mode aktifkan otomatis menggunakan otSrpServerSetAutoEnableMode(false)
tidak akan mengubah status SRP saat ini (misalnya, jika diaktifkan, maka tetap aktif).
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpServerSetDomain
otError otSrpServerSetDomain( otInstance *aInstance, const char *aDomain )
Menetapkan domain di server SRP.
Titik akhir akan ditambahkan ke aDomain
jika belum ada. Hanya boleh dipanggil sebelum server SRP diaktifkan.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otSrpServerSetEnabled
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
Mengaktifkan/menonaktifkan server SRP.
Di Router Pembatas, sebaiknya gunakan otSrpServerSetAutoEnableMode()
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otSrpServerSetLeaseConfig
otError otSrpServerSetLeaseConfig( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig )
Menetapkan konfigurasi LEASE dan KEY-LEASE server SRP.
Jika waktu LEASE bukan nol diminta dari klien, nilai yang diberikan akan dibatasi dalam rentang [aMinLease, aMaxLease]; dan KEY-LEASE bukan nol akan diberikan dalam rentang [aMinKeyLease, aMaxKeyLease]. Untuk waktu LEASE atau KEY-LEASE nol, nol akan diberikan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otSrpServerSetServiceUpdateHandler
void otSrpServerSetServiceUpdateHandler( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext )
Menetapkan pengendali update layanan SRP di server SRP.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
otSrpServerSetTtlConfig
otError otSrpServerSetTtlConfig( otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig )
Menetapkan konfigurasi TTL server SRP.
TTL yang diberikan tidak akan selalu lebih besar dari interval lease maksimum yang dikonfigurasi melalui otSrpServerSetLeaseConfig()
, terlepas dari konfigurasi TTL minimum dan maksimum.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
Referensi
Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.