SRP
このモジュールには、SRP クライアントの動作を制御する関数が含まれています。
概要
このモジュールには、サービス登録プロトコルの機能が含まれています。
このモジュールには、SRP クライアント バッファとサービスプールの関数が含まれています。
このモジュールの関数は、OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE 機能が有効になっている場合にのみ使用できます。
列挙型 |
|
---|---|
otSrpClientItemState{
|
enum SRP クライアント アイテム(サービスまたはホストの情報)の状態を指定します。 |
otSrpServerAddressMode{
|
enum SRP サーバーで使用されるアドレスモードを表します。 |
otSrpServerState{
|
enum SRP サーバーの状態を表します。 |
Typedef |
|
---|---|
otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)
|
typedefvoid(*
ポインタの種類は、SRP クライアントが自動的に開始または停止されたときにユーザーに通知するコールバックを定義します。 |
otSrpClientBuffersServiceEntry
|
typedef SRP クライアント サービス プールのエントリを表します。 |
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)
|
typedefvoid(*
ポインタの種類は、変更/イベント/エラーをユーザーに通知するために SRP クライアントが使用するコールバックを定義します。 |
otSrpClientHostInfo
|
typedefstruct otSrpClientHostInfo
SRP クライアント ホスト情報を表します。 |
otSrpClientService
|
typedefstruct otSrpClientService
SRP クライアント サービスを表します。 |
otSrpServerAddressMode
|
typedef SRP サーバーで使用されるアドレスモードを表します。 |
otSrpServerHost
|
typedefstruct otSrpServerHost
この不透明型は SRP サービスホストを表します。 |
otSrpServerLeaseConfig
|
typedefstruct otSrpServerLeaseConfig
SRP サーバーの LEASE 構成と KEY-LEASE 構成が含まれます。 |
otSrpServerLeaseInfo
|
typedefstruct otSrpServerLeaseInfo
ホスト/サービスの SRP サーバー リース情報が含まれます。 |
otSrpServerResponseCounters
|
typedefstruct otSrpServerResponseCounters
SRP サーバー レスポンスの統計情報が含まれます。 |
otSrpServerService
|
typedefstruct otSrpServerService
この不透明型は SRP サービスを表します。 |
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
|
typedefvoid(*
SRP サービスの更新を処理します。 |
otSrpServerServiceUpdateId
|
typedefuint32_t
SRP サーバーでの SRP サービス更新トランザクションの ID。 |
otSrpServerTtlConfig
|
typedefstruct otSrpServerTtlConfig
SRP サーバーの TTL 構成を含みます。 |
関数 |
|
---|---|
otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
|
サーバーに登録するサービスを追加します。
|
otSrpClientBuffersAllocateService(otInstance *aInstance)
|
プールから新しいサービス エントリを割り当てます。
|
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
|
void
以前に割り当てられたサービス エントリをすべて解放します。
|
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
|
void
以前に割り当てられたサービス エントリを解放します。
|
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
|
SRP クライアント ホスト アドレス リストとして使用する IPv6 アドレス エントリの配列を取得します。
|
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)
|
const otSrpClientHostInfo *
ホスト情報を取得します。
|
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
|
uint32_t
SRP 更新リクエストで使用されるデフォルトの鍵リース間隔を取得します。
|
otSrpClientGetLeaseInterval(otInstance *aInstance)
|
uint32_t
SRP 更新リクエストで使用されるデフォルトのリース間隔を取得します。
|
otSrpClientGetServerAddress(otInstance *aInstance)
|
const otSockAddr *
SRP クライアントによって使用されている SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)を取得します。
|
otSrpClientGetServices(otInstance *aInstance)
|
const otSrpClientService *
クライアントによって管理されているサービスのリストを取得します。
|
otSrpClientGetTtl(otInstance *aInstance)
|
uint32_t
SRP 更新リクエストに含まれるすべてのレコードの TTL 値を取得します。
|
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
SRP 更新リクエストに含まれるすべてのレコードに TTL 値を設定します。
|
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
|
SRP クライアント オペレーションを開始します。
|
otSrpClientStop(otInstance *aInstance)
|
void
SRP クライアント オペレーションを停止します。
|
otSrpServerGetAddressMode(otInstance *aInstance)
|
SRP サーバーで使用されているアドレスモードを返します。
|
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
|
uint8_t
エニーキャスト アドレス モードで使用されるシーケンス番号を返します。
|
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)
|
const otSrpServerResponseCounters *
SRP サーバーのレスポンス カウンタを返します。
|
otSrpServerGetState(otInstance *aInstance)
|
SRP サーバーの状態を返します。
|
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
|
void
SRP サーバーの TTL 構成を返します。
|
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)
|
const otSrpServerService *
指定されたホストの次のサービスを返します。
|
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)
|
エニーキャスト アドレス モードで使用されるシーケンス番号を設定します。
|
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)
|
SRP サーバーの LEASE 設定と KEY-LEASE 設定を設定します。
|
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
|
void
SRP サーバーの SRP サービス更新ハンドラを設定します。
|
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
|
SRP サーバーの TTL 構成を設定します。
|
構造体 |
|
---|---|
otSrpClientBuffersServiceEntry |
SRP クライアント サービス プールのエントリを表します。 |
otSrpClientHostInfo |
SRP クライアント ホスト情報を表します。 |
otSrpClientService |
SRP クライアント サービスを表します。 |
otSrpServerLeaseConfig |
SRP サーバーの LEASE 構成と KEY-LEASE 構成が含まれます。 |
otSrpServerLeaseInfo |
ホスト/サービスの SRP サーバー リース情報が含まれます。 |
otSrpServerResponseCounters |
SRP サーバー レスポンスの統計情報が含まれます。 |
otSrpServerTtlConfig |
SRP サーバーの TTL 構成を含みます。 |
列挙型
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 サーバーによるアドレスとポート番号の決定方法と、この情報が Thread ネットワーク データで公開される方法を指定します。
プロパティ | |
---|---|
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST
|
エニーキャスト アドレス モード。 |
OT_SRP_SERVER_ADDRESS_MODE_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 クライアントが自動的に起動または停止した場合に呼び出されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
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 サーバーがクエリタイプ(オペコード)をサポートしていない -> 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 名前がゾーンにない -> 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
と関連するパラメータをご覧ください)。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
otSrpClientService
struct otSrpClientService otSrpClientService
SRP クライアント サービスを表します。
この構造体の値は、名前の文字列バッファと TXT レコード エントリを含め、この構造体のインスタンスが otSrpClientAddService()
または otSrpClientRemoveService()
から OpenThread に渡された後に保持され、一定でなければなりません。
mState
、mData
、mNext
フィールドは、OT コアのみが使用、管理します。otSrpClientService
のインスタンスが otSrpClientAddService()
や otSrpClientRemoveService()
などの関数に渡される場合、それらの値は無視されます。呼び出し元は、これらのフィールドを設定する必要はありません。
mLease
フィールドと mKeyLease
フィールドには、このサービスに必要なリースとキーのリース間隔を指定します。値がゼロの場合、間隔が指定されておらず、otSrpClientGetLeaseInterval()
と otSrpClientGetKeyLeaseInterval()
のデフォルトのリース間隔またはキーリース間隔がこのサービスに使用されます。キーリース間隔(明示的に設定されているかデフォルトから決定されているか)がサービスのリース間隔よりも短い場合、SRP クライアントはキーリース間隔にもリース間隔の値を再利用します。たとえば、サービス mLease
では明示的に 2 日間に設定され、mKeyLease
がゼロに設定され、デフォルトの鍵リースが 1 日に設定されている場合、このサービスを登録する際に、このサービスでリクエストされた鍵リースも 2 日間に設定されます。
otSrpServerAddressMode
enum otSrpServerAddressMode otSrpServerAddressMode
SRP サーバーで使用されるアドレスモードを表します。
アドレスモードは、SRP サーバーによるアドレスとポート番号の決定方法と、この情報が Thread ネットワーク データで公開される方法を指定します。
otSrpServerLeaseConfig
struct otSrpServerLeaseConfig otSrpServerLeaseConfig
SRP サーバーの LEASE 構成と KEY-LEASE 構成が含まれます。
otSrpServerLeaseInfo
struct otSrpServerLeaseInfo otSrpServerLeaseInfo
ホスト/サービスの SRP サーバー リース情報が含まれます。
otSrpServerResponseCounters
struct otSrpServerResponseCounters otSrpServerResponseCounters
SRP サーバー レスポンスの統計情報が含まれます。
otSrpServerServiceUpdateHandler
void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)
SRP サービスの更新を処理します。
SRP ホストと、場合によっては SRP サービスが更新されていることを通知するために、SRP サーバーによって呼び出されます。ハンドラが otSrpServerHandleServiceUpdateResult を呼び出して結果を返すか、aTimeout
の後にタイムアウトするまで、SRP の更新は commit されないことが重要です。
SRP サービス オブザーバーは、更新イベントを受け取った直後に、常に otSrpServerHandleServiceUpdateResult をエラーコード OT_ERROR_NONE で呼び出す必要があります。
より一般的なハンドラでは、SRP ホスト/サービスの検証を実行して、いずれかの検証で不合格だった場合は SRP の更新を拒否できます。たとえば、アドバタイジング プロキシは、マルチキャスト対応リンク上のホストとサービスをアドバタイズ(または削除)し、エラーが発生した場合は特定のエラーコードを返します。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult
otSrpServerServiceUpdateId
uint32_t otSrpServerServiceUpdateId
SRP サーバーでの SRP サービス更新トランザクションの ID。
関数
otSrpClientAddService
otError otSrpClientAddService( otInstance *aInstance, otSrpClientService *aService )
サーバーに登録するサービスを追加します。
この関数の呼び出しが成功すると、otSrpClientCallback
が呼び出され、SRP サーバーにサービスの追加/登録のステータスを報告します。
aService
によってポイントされる otSrpClientService
インスタンスは、保持され、この関数から(OT_ERROR_NONE
で)戻った後も変更されないままでなければなりません。OpenThread は、ポインタをサービス インスタンスに保存します。
otSrpClientService
インスタンスは OpenThread によってトラッキングされなくなり、次の場合にのみ回収できます。
otSrpClientRemoveService()
の呼び出しによって明示的に削除されるか、otSrpClientRemoveHostAndServices() and only after the
otSrpClientCallback が呼び出されて他のサービスとともに削除され、サービスが削除されたことを示します。または、- ホストとすべての関連サービスを直ちに削除する
otSrpClientClearHostAndServices()
の呼び出し。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otSrpClientBuffersAllocateService
otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService( otInstance *aInstance )
プールから新しいサービス エントリを割り当てます。
返されたサービス エントリ インスタンスは次のように初期化されます。
mService.mName
は、関数otSrpClientBuffersGetServiceEntryServiceNameString()
を使用して取得できる割り当てられた文字列バッファをポイントします。mService.mInstanceName
は、関数otSrpClientBuffersGetServiceEntryInstanceNameString()
を使用して取得できる割り当てられた文字列バッファをポイントします。mService.mSubTypeLabels
は、otSrpClientBuffersGetSubTypeLabelsArray()
から返される配列を指します。mService.mTxtEntries
はmTxtEntry
を指します。mService.mNumTxtEntries
は 1 に設定されます。- 他の
mService
フィールド(port、priority、weight)は 0 に設定されます。 mTxtEntry.mKey
が NULL に設定されている(値はすでにエンコードされたものとして扱われます)。mTxtEntry.mValue
は、関数otSrpClientBuffersGetServiceEntryTxtBuffer()
を使用して取得できる割り当てられたバッファを指します。mTxtEntry.mValueLength
がゼロに設定されています。- 関連するすべてのデータ/文字列バッファと配列はすべてゼロにクリアされます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
新しく割り当てられたサービス エントリへのポインタ。プールに使用可能なエントリがない場合は NULL。
|
otSrpClientBuffersFreeAllServices
void otSrpClientBuffersFreeAllServices( otInstance *aInstance )
以前に割り当てられたサービス エントリをすべて解放します。
詳細 | |||
---|---|---|---|
パラメータ |
|
otSrpClientBuffersFreeService
void otSrpClientBuffersFreeService( otInstance *aInstance, otSrpClientBuffersServiceEntry *aService )
以前に割り当てられたサービス エントリを解放します。
aService
は、以前に otSrpClientBuffersAllocateService()
を使用して割り当てられ、まだ解放されていない必要があります。それ以外の場合、この関数の動作は未定義です。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpClientBuffersGetHostAddressesArray
otIp6Address * otSrpClientBuffersGetHostAddressesArray( otInstance *aInstance, uint8_t *aArrayLength )
SRP クライアント ホスト アドレス リストとして使用する IPv6 アドレス エントリの配列を取得します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
otIp6Address エントリの配列へのポインタ(エントリの数は aArrayLength で返されます)。 |
otSrpClientBuffersGetHostNameString
char * otSrpClientBuffersGetHostNameString( otInstance *aInstance, uint16_t *aSize )
SRP クライアントのホスト名に使用する文字列バッファを取得します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
SRP クライアントのホスト名に使用する文字バッファへのポインタ。
|
otSrpClientBuffersGetServiceEntryInstanceNameString
char * otSrpClientBuffersGetServiceEntryInstanceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
サービス エントリからサービス インスタンス名の文字列バッファを取得します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
文字列バッファへのポインタ。
|
otSrpClientBuffersGetServiceEntryServiceNameString
char * otSrpClientBuffersGetServiceEntryServiceNameString( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
サービス エントリからサービス名の文字列バッファを取得します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
文字列バッファへのポインタ。
|
otSrpClientBuffersGetServiceEntryTxtBuffer
uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize )
サービス エントリから TXT レコードのバッファを取得します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
バッファへのポインタ。
|
otSrpClientBuffersGetSubTypeLabelsArray
const char ** otSrpClientBuffersGetSubTypeLabelsArray( otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength )
サービス エントリからサービス サブタイプのラベルの配列を取得します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
配列へのポインタ。
|
otSrpClientClearHostAndServices
void otSrpClientClearHostAndServices( otInstance *aInstance )
すべてのホスト情報とすべてのサービスを消去します。
更新メッセージをサーバーに送信してすべての情報を削除する otSrpClientRemoveHostAndServices()
とは異なり、この関数はサーバーをやり取りすることなく、すべての情報を直ちにクリアします。
詳細 | |||
---|---|---|---|
パラメータ |
|
otSrpClientClearService
otError otSrpClientClearService( otInstance *aInstance, otSrpClientService *aService )
サービスを消去し、すぐにクライアント サービス リストから削除します。
サーバーに更新メッセージを送信してサービスを削除する otSrpClientRemoveService()
とは異なり、この関数はサーバーの操作なしでクライアントのサービスリストからサービスをクリアします。この関数の呼び出しが成功すると、otSrpClientCallback
は呼び出されず、呼び出し元は aService
エントリをすぐに再利用して再利用できます。
後続の otSrpClientAddService()
の呼び出し(同じサービスとインスタンス名で同じ aService
エントリを再利用する可能性がある)と一緒に使用して、既存のサービスの一部のパラメータを更新できます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpClientDisableAutoStartMode
void otSrpClientDisableAutoStartMode( otInstance *aInstance )
自動起動モードを無効にします。
これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
が有効になっている場合にのみ使用できます。
自動起動モードを無効にしても、クライアントがすでに実行されている場合は停止しませんが、クライアントは Thread ネットワーク データのモニタリングを停止し、選択した SRP サーバーがまだ存在することを確認します。
また、otSrpClientStop()
を呼び出すと自動起動モードが無効になります。
詳細 | |||
---|---|---|---|
パラメータ |
|
otSrpClientEnableAutoHostAddress
otError otSrpClientEnableAutoHostAddress( otInstance *aInstance )
自動ホストアドレス モードを有効にします。
有効にすると、ホストの IPv6 アドレスは、すべてのリンクローカル アドレスとメッシュローカル アドレスを除く、Thread netif 上のすべての優先ユニキャスト アドレスを使用して SRP クライアントによって自動的に設定されます。優先アドレスがない場合は、メッシュ ローカル EID アドレスが追加されます。Thread netif のアドレスが更新されると(新しいアドレスが追加されたり、既存のアドレスが削除または非優先としてマークされたりすると、SRP クライアントは自動的に再登録されます)。
自動ホストアドレス モードは、SRP クライアントの開始前またはオペレーション中に有効にできます。ただし、ホスト情報が削除される場合を除きます(クライアントが otSrpClientRemoveHostAndServices()
の呼び出しからの削除リクエストの処理でビジー状態であり、ホスト情報が STATE_TO_REMOVE
または STATE_REMOVING
の状態のままである)。
自動ホストアドレス モードを有効にした後、無効にするには、otSrpClientSetHostAddresses()
を呼び出してホストアドレスを明示的に設定します。
詳細 | |||||
---|---|---|---|---|---|
戻り値 |
|
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 クライアントは Thread ネットワーク データを監視して SRP サーバーを検出し、優先サーバーを選択し、SRP サーバーが検出されたときにクライアントを自動的に起動および停止します。
SRP サーバーの存在を示すネットワーク データ エントリには 3 つのカテゴリがあります。これらは、以下の順序で推奨されます。
1)サーバー アドレスがサービスデータに含まれる優先ユニキャスト エントリ。複数のオプションがある場合は、数値が最も小さい IPv6 アドレスが優先されます。
2)それぞれがシーケンス番号を持つエニーキャスト エントリ。RFC-1982 のシリアル番号算術ロジックで規定されている意味でのシーケンス番号が大きいほど、より新しいものとみなされるため、推奨されます。シリアル番号の算術を用いた最大シーケンス番号が、明確に定義されている場合(つまり、シーケンス番号が他のすべてのシーケンス番号よりも大きい場合)は、優先されます。明確に定義されていない場合は、数値的に最大のシーケンス数が優先されます。
3)サーバー アドレス情報がサーバーデータに含まれているユニキャスト エントリ。複数のオプションがある場合は、数値が最も小さい IPv6 アドレスが優先されます。
ネットワーク データ エントリに変更があったときは、現在選択されているサーバーがネットワーク データ内にまだ存在し、それが優先されているサーバーであるかをクライアントが確認します。そうしないと、クライアントは新しい優先サーバーに切り替えられるか、存在しない場合は停止します。
otSrpClientStart()
の呼び出しが成功して SRP クライアントを明示的に起動した場合は、自動起動モードの状態や、同じ SRP サーバー アドレスが Thread ネットワーク データで検出されたかどうかにかかわらず、otSrpClientStart()
の特定の SRP サーバー アドレスが引き続き使用されます。この場合、明示的な otSrpClientStop()
呼び出しのみがクライアントを停止します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
otSrpClientGetDomainName
const char * otSrpClientGetDomainName( otInstance *aInstance )
SRP クライアントによって使用されるドメイン名を取得します。
OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE
を有効にする必要があります。
ドメイン名が設定されていない場合、「default.service.arpa」が使用されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
ドメイン名の文字列。
|
otSrpClientGetHostInfo
const otSrpClientHostInfo * otSrpClientGetHostInfo( otInstance *aInstance )
ホスト情報を取得します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
ホスト情報構造へのポインタ。
|
otSrpClientGetKeyLeaseInterval
uint32_t otSrpClientGetKeyLeaseInterval( otInstance *aInstance )
SRP 更新リクエストで使用されるデフォルトの鍵リース間隔を取得します。
デフォルトの間隔は、mKeyLease
が 0 に設定されている otSrpClientService
インスタンスでのみ使用されます。
これは SRP クライアントからリクエストされたリース期間です。サーバーは別のリース間隔を受け入れる場合もあります。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
キーリースの間隔(秒単位)。
|
otSrpClientGetLeaseInterval
uint32_t otSrpClientGetLeaseInterval( otInstance *aInstance )
SRP 更新リクエストで使用されるデフォルトのリース間隔を取得します。
デフォルトの間隔は、mLease
が 0 に設定されている otSrpClientService
インスタンスでのみ使用されます。
これは SRP クライアントからリクエストされたリース期間です。サーバーは別のリース間隔を受け入れる場合もあります。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
リース間隔(秒単位)。
|
otSrpClientGetServerAddress
const otSockAddr * otSrpClientGetServerAddress( otInstance *aInstance )
SRP クライアントによって使用されている SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)を取得します。
クライアントが実行されていない場合、アドレスは未指定(すべてゼロ)で、ポート番号はゼロです。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
SRP サーバーのソケット アドレスへのポインタ(常に NULL ではない)。
|
otSrpClientGetServices
const otSrpClientService * otSrpClientGetServices( otInstance *aInstance )
クライアントによって管理されているサービスのリストを取得します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
すべてのサービスのリンクリストの先頭へのポインタ。リストが空の場合は NULL。
|
otSrpClientGetTtl
uint32_t otSrpClientGetTtl( otInstance *aInstance )
SRP 更新リクエストに含まれるすべてのレコードの TTL 値を取得します。
これは、SRP クライアントからリクエストされた TTL であることにご注意ください。サーバーが別の TTL を受け入れる場合もあります。
デフォルトでは、TTL はリース間隔と同じになります。otSrpClientSetTtl()
を介して 0 またはリース間隔より大きい値を渡すと、TTL もリース間隔と等しくなります。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
TTL(秒単位)。
|
otSrpClientIsAutoStartModeEnabled
bool otSrpClientIsAutoStartModeEnabled( otInstance *aInstance )
自動起動モードの現在の状態(有効または無効)を示します。
これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE
が有効になっている場合にのみ使用できます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
自動スタート モードが有効な場合は TRUE、そうでない場合は FALSE です。
|
otSrpClientIsRunning
bool otSrpClientIsRunning( otInstance *aInstance )
SRP クライアントが実行中かどうかを示します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
SRP クライアントが実行されている場合は TRUE、それ以外の場合は FALSE です。
|
otSrpClientIsServiceKeyRecordEnabled
bool otSrpClientIsServiceKeyRecordEnabled( otInstance *aInstance )
「サービスキー レコードを含める」モードが有効か無効かを示します。
OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
構成が有効な場合に使用できます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
「サービスキー レコードを含める」モードが有効な場合は TRUE、そうでない場合は FALSE です。
|
otSrpClientItemStateToString
const char * otSrpClientItemStateToString( otSrpClientItemState aItemState )
otSrpClientItemState
を文字列に変換します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
aItemState の文字列表現。 |
otSrpClientRemoveHostAndServices
otError otSrpClientRemoveHostAndServices( otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer )
ホスト情報とすべてのサービスの削除プロセスを開始します。
この関数から戻った後、otSrpClientCallback
が呼び出され、SRP サーバーに削除リクエストのステータスを報告します。
ホスト情報をサーバーから完全に削除する場合は、aRemoveKeyLease
を true
に設定して、サーバー上のホストに関連付けられている鍵リースを削除する必要があります。それ以外の場合、キーリース レコードは以前と同様に保持されます。これにより、サーバーが再びサービスを提供、登録できるようになるときに備えて、サーバーはホスト名を予約して保持できます。
aSendUnregToServer
は、ホスト情報がまだサーバーに登録されていない場合の動作を決定します。aSendUnregToServer
が false
(デフォルト値または想定値)に設定されている場合、SRP クライアントは更新メッセージをサーバーに送信することなく、直ちにホスト情報とサービスを削除します(まだ何も登録されていない場合は、サーバーを更新する必要はありません)。aSendUnregToServer
が true
に設定されている場合、SRP クライアントは更新メッセージをサーバーに送信します。なお、ホスト情報が登録されている場合は、aSendUnregToServer
の値は重要ではなく、SRP クライアントは常に、すべての情報の削除をリクエストする更新メッセージをサーバーに送信します。
aSendUnregToServer
が有用な状況の 1 つは、デバイスのリセット/再起動です。呼び出し元は、以前にサーバーに登録されたサービスの削除を求められることがあります。この場合、呼び出し元は otSrpClientSetHostName()
を行い、true
として aSendUnregToServer
を使用して otSrpClientRemoveHostAndServices()
をリクエストできます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otSrpClientRemoveService
otError otSrpClientRemoveService( otInstance *aInstance, otSrpClientService *aService )
サービスの登録解除をリクエストします。
この関数の呼び出しが成功すると、otSrpClientCallback
が呼び出され、SRP サーバーに削除リクエストのステータスを報告します。
aService
によってポイントされる otSrpClientService
インスタンスは、保持され、この関数から(OT_ERROR_NONE
を使用して)戻った後も変更されないままでなければなりません。OpenThread は、削除プロセスの間、サービス インスタンスを保持します。otSrpClientCallback
が呼び出された後にのみ、サービス インスタンスが SRP クライアント サービスリストから削除され、解放/再利用可能であることを示す。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpClientSetCallback
void otSrpClientSetCallback( otInstance *aInstance, otSrpClientCallback aCallback, void *aContext )
SRP クライアントのイベントや変更を呼び出し元に通知するコールバックを設定します。
SRP クライアントでは、コールバックを 1 つ登録できます。そのため、この関数を連続して呼び出すと、以前に設定したコールバック関数が上書きされます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
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
のいずれかに指定する必要があります)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpClientSetHostAddresses
otError otSrpClientSetHostAddresses( otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses )
ホストの IPv6 アドレスのリストを設定/更新します。
ホスト IPv6 アドレスは、SRP クライアントの開始前または操作中に設定/変更(以前に登録されたホストアドレスの追加/削除、変更など)が可能です。ただし、ホスト情報が削除される場合(クライアントが otSrpClientRemoveHostAndServices()
への以前の呼び出しからの削除リクエストの処理でビジー状態であり、ホスト情報が STATE_TO_REMOVE
または STATE_REMOVING
の状態のままである)場合を除きます。
aIp6Addresses
でポイントされるホスト IPv6 アドレス配列は、この関数から(OT_ERROR_NONE
で)返された後も保持され、変更されないままでなければなりません。OpenThread はポインタを配列に保存します。
この関数の呼び出しが成功すると、otSrpClientCallback
が呼び出され、SRP サーバーへの住所登録のステータスを報告します。
otSrpClientEnableAutoHostAddress()
の呼び出しが成功した後に自動ホストアドレス モードが有効になっていた場合、この関数を呼び出すと、自動ホストアドレス モードが無効になります。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otSrpClientSetHostName
otError otSrpClientSetHostName( otInstance *aInstance, const char *aName )
ホスト名のラベルを設定します。
この関数の呼び出しが成功すると、otSrpClientCallback
が呼び出され、SRP サーバーへのホスト情報登録のステータスを報告します。
aName
がポイントする名前文字列バッファは、この関数から返された後も保持され、変更されないままでなければなりません。OpenThread は、ポインタを文字列に保持します。
ホスト名は、クライアントの起動前、または起動後かつホスト情報をサーバーに登録する前に設定できます(ホスト情報は STATE_TO_ADD
または STATE_REMOVED
のいずれかに指定します)。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otSrpClientSetKeyLeaseInterval
void otSrpClientSetKeyLeaseInterval( otInstance *aInstance, uint32_t aInterval )
SRP 更新リクエストで使用されるデフォルトの鍵リース間隔を設定します。
デフォルトの間隔は、mKeyLease
が 0 に設定されている otSrpClientService
インスタンスでのみ使用されます。
リース間隔を変更しても、すでに登録されているサービス / host-info の受け入れ可能なリース間隔には影響しません。将来の SRP 更新メッセージ(新しいサービスの追加や既存サービスの更新)にのみ影響します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpClientSetLeaseInterval
void otSrpClientSetLeaseInterval( otInstance *aInstance, uint32_t aInterval )
SRP 更新リクエストで使用されるデフォルトのリース間隔を設定します。
デフォルトの間隔は、mLease
が 0 に設定されている otSrpClientService
インスタンスでのみ使用されます。
リース間隔を変更しても、すでに登録されているサービス / host-info の受け入れ可能なリース間隔には影響しません。これは、将来の SRP 更新メッセージ(新しいサービスの追加や既存サービスの更新)にのみ影響します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpClientSetServiceKeyRecordEnabled
void otSrpClientSetServiceKeyRecordEnabled( otInstance *aInstance, bool aEnabled )
「サービスキー レコードを含める」モードを有効または無効にします。
有効にすると、SRP クライアントは、送信する SRP 更新メッセージの「サービスの説明手順」に KEY レコードを含めます。
OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
構成が有効な場合に使用できます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpClientSetTtl
void otSrpClientSetTtl( otInstance *aInstance, uint32_t aTtl )
SRP 更新リクエストに含まれるすべてのレコードに TTL 値を設定します。
TTL の変更は、すでに登録されているサービス / ホスト情報の TTL には影響せず、今後の SRP 更新メッセージ(新しいサービスの追加や既存サービスの更新)にのみ影響します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpClientStart
otError otSrpClientStart( otInstance *aInstance, const otSockAddr *aServerSockAddr )
SRP クライアント オペレーションを開始します。
SRP クライアントは、以下の条件がすべて満たされると、「SRP 更新」メッセージを準備して SRP サーバーに送信します。
- SRP クライアントが起動し、
otSrpClientStart()
が呼び出されます。 - ホスト名が設定され、
otSrpClientSetHostName()
が呼び出されます。 - 少なくとも 1 つのホスト IPv6 アドレスが設定されていると、
otSrpClientSetHostName()
が呼び出されます。 - 少なくとも 1 つのサービスが追加され、
otSrpClientAddService()
が呼び出されます。
これらの関数はどの順序で呼び出すかは関係ありません。すべての条件が満たされると、SRP クライアントはしばらく待ってから「SRP Update」メッセージを準備してサーバーに送信します。この遅延により、ユーザーは最初の SRP 更新メッセージを送信する前に複数のサービスや IPv6 アドレスを追加することができます(すべての情報を含む単一の SRP 更新が送信されるようにします)。OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY
構成で、遅延間隔を指定します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otSrpClientStop
void otSrpClientStop( otInstance *aInstance )
SRP クライアント オペレーションを停止します。
SRP サーバーとのやり取りをすべて停止します。ホスト情報やサービスリストは削除も消去もされません。クライアントが再起動(再起動)されると、すべてのサービスが再度追加または削除されるようになります。
詳細 | |||
---|---|---|---|
パラメータ |
|
otSrpServerGetAddressMode
otSrpServerAddressMode otSrpServerGetAddressMode( otInstance *aInstance )
SRP サーバーで使用されているアドレスモードを返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
SRP サーバーのアドレスモード。
|
otSrpServerGetAnycastModeSequenceNumber
uint8_t otSrpServerGetAnycastModeSequenceNumber( otInstance *aInstance )
エニーキャスト アドレス モードで使用されるシーケンス番号を返します。
シーケンス番号は、ネットワーク データで公開されている「DNS/SRP Service Anycast Address」エントリに含まれています。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
エニーキャスト シーケンス番号。
|
otSrpServerGetDomain
const char * otSrpServerGetDomain( otInstance *aInstance )
SRP サーバーに承認されたドメインを返します。
ドメインが SetDomain で設定されていない場合は、「default.service.arpa」が返されます。ドメインが末尾にドットで設定されていても、末尾にドットが常に追加されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
ドット結合されたドメイン文字列へのポインタ。
|
otSrpServerGetLeaseConfig
void otSrpServerGetLeaseConfig( otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig )
SRP サーバーの LEASE 構成と KEY-LEASE 構成を返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpServerGetNextHost
const otSrpServerHost * otSrpServerGetNextHost( otInstance *aInstance, const otSrpServerHost *aHost )
SRP サーバーで次に登録されているホストを返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
登録済みのホストへのポインタ。NULL(ホストがこれ以上見つからない場合)。
|
otSrpServerGetPort
uint16_t otSrpServerGetPort( otInstance *aInstance )
SRP サーバーがリッスンしているポートを返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
SRP サーバーのポート。サーバーが実行されていない場合は 0 を返します。
|
otSrpServerGetResponseCounters
const otSrpServerResponseCounters * otSrpServerGetResponseCounters( otInstance *aInstance )
SRP サーバーのレスポンス カウンタを返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
SRP サーバーのレスポンス カウンタへのポインタ。
|
otSrpServerGetState
otSrpServerState otSrpServerGetState( otInstance *aInstance )
SRP サーバーの状態を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
SRP サーバーの現在の状態。
|
otSrpServerGetTtlConfig
void otSrpServerGetTtlConfig( otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig )
SRP サーバーの TTL 構成を返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpServerHandleServiceUpdateResult
void otSrpServerHandleServiceUpdateResult( otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError )
SRP 更新の処理結果を SRP サーバーにレポートします。
サービス更新ハンドラはこの関数を呼び出して、SRP 更新の処理結果を返す必要があります。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
otSrpServerHostGetAddresses
const otIp6Address * otSrpServerHostGetAddresses( const otSrpServerHost *aHost, uint8_t *aAddressesNum )
指定されたホストのアドレスを返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
IPv6 アドレスの配列へのポインタ。
|
otSrpServerHostGetFullName
const char * otSrpServerHostGetFullName( const otSrpServerHost *aHost )
ホストの完全な名前を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
null で終端したホスト名の文字列へのポインタ。
|
otSrpServerHostGetLeaseInfo
void otSrpServerHostGetLeaseInfo( const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo )
指定されたホストの LEASE および KEY-LEASE 情報を返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpServerHostGetNextService
const otSrpServerService * otSrpServerHostGetNextService( const otSrpServerHost *aHost, const otSrpServerService *aService )
指定されたホストの次のサービスを返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
次のサービスへのポインタ。それ以上サービスがない場合は NULL。
|
otSrpServerHostIsDeleted
bool otSrpServerHostIsDeleted( const otSrpServerHost *aHost )
SRP サービスホストが削除されたかどうかを示します。
SRP サービスホストは削除できますが、今後使用するために名前が保持されます。この場合、ホスト インスタンスは SRP サーバー/レジストリから削除されません。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
ホストが削除されている場合は TRUE、そうでない場合は FALSE です。
|
otSrpServerHostMatchesFullName
bool otSrpServerHostMatchesFullName( const otSrpServerHost *aHost, const char *aFullName )
ホストが特定のホスト名と一致するかどうかを示します。
DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerIsAutoEnableMode
bool otSrpServerIsAutoEnableMode( otInstance *aInstance )
自動有効化モードが有効か無効かを示します。
OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
機能が必要です。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerParseSubTypeServiceName
otError otSrpServerParseSubTypeServiceName( const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize )
サブタイプのサービス名(フルネーム)を解析し、サブタイプのラベルを抽出します。
サブタイプのサービスの完全なサービス名は「
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otSrpServerServiceGetHost
const otSrpServerHost * otSrpServerServiceGetHost( const otSrpServerService *aService )
サービス インスタンスが存在するホストを返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
ホスト インスタンスへのポインタ。
|
otSrpServerServiceGetInstanceLabel
const char * otSrpServerServiceGetInstanceLabel( const otSrpServerService *aService )
サービスのサービス インスタンス ラベル(インスタンス名の最初のラベル)を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
null で終端したサービス インスタンス ラベル文字列へのポインタ。
|
otSrpServerServiceGetInstanceName
const char * otSrpServerServiceGetInstanceName( const otSrpServerService *aService )
サービスの完全なサービス インスタンス名を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
null で終わるサービス インスタンス名の文字列へのポインタ。
|
otSrpServerServiceGetLeaseInfo
void otSrpServerServiceGetLeaseInfo( const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo )
指定されたサービスの LEASE および KEY-LEASE 情報を返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpServerServiceGetNumberOfSubTypes
uint16_t otSrpServerServiceGetNumberOfSubTypes( const otSrpServerService *aService )
サービスのサブタイプの数を取得します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
aService のサブタイプの数。 |
otSrpServerServiceGetPort
uint16_t otSrpServerServiceGetPort( const otSrpServerService *aService )
サービス インスタンスのポートを返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
サービスのポート。
|
otSrpServerServiceGetPriority
uint16_t otSrpServerServiceGetPriority( const otSrpServerService *aService )
サービス インスタンスの優先度を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
サービスの優先度。
|
otSrpServerServiceGetServiceName
const char * otSrpServerServiceGetServiceName( const otSrpServerService *aService )
サービスの完全なサービス名を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
null で終わるサービス名の文字列へのポインタ。
|
otSrpServerServiceGetSubTypeServiceNameAt
const char * otSrpServerServiceGetSubTypeServiceNameAt( const otSrpServerService *aService, uint16_t aIndex )
指定されたインデックスのサービスのサブタイプ サービス名(フルネーム)を取得します。
サブタイプのサービスの完全なサービス名は「
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
aIndex のサブタイプのサービス名へのポインタ。このインデックスにサブタイプがない場合は NULL 。 |
otSrpServerServiceGetTtl
uint32_t otSrpServerServiceGetTtl( const otSrpServerService *aService )
サービス インスタンスの TTL を返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
サービス インスタンスの TTL。
|
otSrpServerServiceGetTxtData
const uint8_t * otSrpServerServiceGetTxtData( const otSrpServerService *aService, uint16_t *aDataLength )
サービス インスタンスの TXT レコードデータを返します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
TXT レコードデータを含むバッファへのポインタ(TXT データの長さは
aDataLength で返されます)。 |
otSrpServerServiceGetWeight
uint16_t otSrpServerServiceGetWeight( const otSrpServerService *aService )
サービス インスタンスの重みを返します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
サービスの重み。
|
otSrpServerServiceHasSubTypeServiceName
bool otSrpServerServiceHasSubTypeServiceName( const otSrpServerService *aService, const char *aSubTypeServiceName )
サービスが特定のサブタイプを持つかどうかを示します。
DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerServiceIsDeleted
bool otSrpServerServiceIsDeleted( const otSrpServerService *aService )
SRP サービスが削除されたかどうかを示します。
SRP サービスは削除できますが、将来使用するために名前が保持されます。この場合、サービス インスタンスは SRP サーバー/レジストリから削除されません。ホストが削除されると、すべてのサービスが削除されることが保証されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
サービスが削除された場合は TRUE、削除されていない場合は FALSE。
|
otSrpServerServiceMatchesInstanceName
bool otSrpServerServiceMatchesInstanceName( const otSrpServerService *aService, const char *aInstanceName )
このサービスが特定のサービス インスタンス名と一致するかどうかを示します。
DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerServiceMatchesServiceName
bool otSrpServerServiceMatchesServiceName( const otSrpServerService *aService, const char *aServiceName )
このサービスが特定のサービス名と一致するかどうかを示します。
DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerSetAddressMode
otError otSrpServerSetAddressMode( otInstance *aInstance, otSrpServerAddressMode aMode )
SRP サーバーで使用するアドレス モードを設定します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerSetAnycastModeSequenceNumber
otError otSrpServerSetAnycastModeSequenceNumber( otInstance *aInstance, uint8_t aSequenceNumber )
エニーキャスト アドレス モードで使用されるシーケンス番号を設定します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerSetAutoEnableMode
void otSrpServerSetAutoEnableMode( otInstance *aInstance, bool aEnabled )
SRP サーバーの自動有効化モードを有効または無効にします。
OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
機能が必要です。
このモードを有効にすると、Border Routing Manager が、SRP サーバーを有効または無効にするかどうか、いつ無効にするかを制御します。SRP サーバーは、ボーダー ルーティングが開始され、最初のプレフィックスとルート構成で行われた場合(自動的に有効になります(OMR とオンリンクのプレフィックスが決定されると、インフラストラクチャ側で出力されたルーター アドバタイズ メッセージでアドバタイズされ、Thread ネットワーク データでパブリッシュされます)。SRP サーバーは、BR が停止した場合(たとえば、インフラストラクチャ ネットワーク インターフェースがダウンした場合や、BR が接続解除された場合)は自動的に無効になります。
このモードは、aEnabled
を false
に設定して otSrpServerSetAutoEnableMode()
を呼び出すか、otSrpServerSetEnabled()
関数の呼び出しによって SRP サーバーが明示的に有効または無効にされている場合に、無効にできます。otSrpServerSetAutoEnableMode(false)
を使用して自動有効化モードを無効にしても、SRP サーバーの現在の状態は変更されません(たとえば、有効にした場合、有効のままになります)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpServerSetDomain
otError otSrpServerSetDomain( otInstance *aInstance, const char *aDomain )
SRP サーバーにドメインを設定します。
末尾のドットがまだない場合は、aDomain
に付加されます。SRP サーバーを有効にする前にのみ呼び出す必要があります。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
otSrpServerSetEnabled
void otSrpServerSetEnabled( otInstance *aInstance, bool aEnabled )
SRP サーバーを有効または無効にします。
ボーダー ルーターでは、代わりに otSrpServerSetAutoEnableMode()
を使用することをおすすめします。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otSrpServerSetLeaseConfig
otError otSrpServerSetLeaseConfig( otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig )
SRP サーバーの LEASE 設定と KEY-LEASE 設定を設定します。
ゼロ以外の LEASE 時間がクライアントからリクエストされた場合、付与される値は範囲 [aMinLease, aMaxLease] で制限し、ゼロ以外の KEY-LEASE が範囲 [aMinKeyLease, aMaxKeyLease] で付与する。LEASE 時間または KEY-LEASE 時間がゼロの場合、ゼロが付与されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otSrpServerSetServiceUpdateHandler
void otSrpServerSetServiceUpdateHandler( otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext )
SRP サーバーの SRP サービス更新ハンドラを設定します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
otSrpServerSetTtlConfig
otError otSrpServerSetTtlConfig( otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig )
SRP サーバーの TTL 構成を設定します。
TTL の最小構成と最大構成にかかわらず、付与される TTL は常に、otSrpServerSetLeaseConfig()
で構成された最大リース間隔以下になります。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
関連情報
OpenThread API リファレンスのトピックは、GitHub で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。