SRP

このモジュールには、SRP クライアントの動作を制御する関数が含まれています。

概要

このモジュールには、サービス登録プロトコルの機能が含まれています。

このモジュールには、SRP クライアント バッファとサービスプールの関数が含まれています。

このモジュールの関数は、OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE 機能が有効になっている場合にのみ使用できます。

列挙型

otSrpClientItemState{
  OT_SRP_CLIENT_ITEM_STATE_TO_ADD,
  OT_SRP_CLIENT_ITEM_STATE_ADDING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH,
  OT_SRP_CLIENT_ITEM_STATE_REFRESHING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE,
  OT_SRP_CLIENT_ITEM_STATE_REMOVING,
  OT_SRP_CLIENT_ITEM_STATE_REGISTERED,
  OT_SRP_CLIENT_ITEM_STATE_REMOVED
}
enum
SRP クライアント アイテム(サービスまたはホストの情報)の状態を指定します。
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
SRP サーバーで使用されるアドレスモードを表します。
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
enum
SRP サーバーの状態を表します。

Typedef

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
ポインタの種類は、SRP クライアントが自動的に開始または停止されたときにユーザーに通知するコールバックを定義します。
otSrpClientBuffersServiceEntry typedef
SRP クライアント サービス プールのエントリを表します。
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
ポインタの種類は、変更/イベント/エラーをユーザーに通知するために SRP クライアントが使用するコールバックを定義します。
otSrpClientHostInfo typedef
SRP クライアント ホスト情報を表します。
otSrpClientService typedef
SRP クライアント サービスを表します。
otSrpServerAddressMode typedef
SRP サーバーで使用されるアドレスモードを表します。
otSrpServerHost typedef
この不透明型は SRP サービスホストを表します。
otSrpServerLeaseConfig typedef
SRP サーバーの LEASE 構成と KEY-LEASE 構成が含まれます。
otSrpServerLeaseInfo typedef
ホスト/サービスの SRP サーバー リース情報が含まれます。
otSrpServerResponseCounters typedef
SRP サーバー レスポンスの統計情報が含まれます。
otSrpServerService typedef
この不透明型は SRP サービスを表します。
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
SRP サービスの更新を処理します。
otSrpServerServiceUpdateId typedef
uint32_t
SRP サーバーでの SRP サービス更新トランザクションの ID。
otSrpServerTtlConfig typedef
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)
ホスト情報を取得します。
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
SRP 更新リクエストで使用されるデフォルトの鍵リース間隔を取得します。
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
SRP 更新リクエストで使用されるデフォルトのリース間隔を取得します。
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
SRP クライアントによって使用されている SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)を取得します。
otSrpClientGetServices(otInstance *aInstance)
クライアントによって管理されているサービスのリストを取得します。
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)
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)
指定されたホストの次のサービスを返します。
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 クライアントが自動的に起動または停止した場合に呼び出されます。

詳細
パラメータ
[in] aServerSockAddr
NULL 以外のポインタは、SRP サーバーが起動されたことを示し、ポインタは、選択されたサーバー ソケットのアドレスを提供します。NULL ポインタは、SRP サーバーが停止されたことを示します。
[in] aContext
任意のコンテキストへのポインタ(コールバックの登録時に指定)。

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

SRP クライアント サービス プールのエントリを表します。

otSrpClientCallback

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

ポインタの種類は、変更/イベント/エラーをユーザーに通知するために SRP クライアントが使用するコールバックを定義します。

このコールバックは、SRP サーバーへの更新の登録(ホスト情報やサービスの追加や削除など)が成功したとき、または失敗やエラーが発生した場合(サーバーが更新リクエストを拒否した場合、クライアントが応答を待機してタイムアウトした場合など)に呼び出されます。

更新の再登録が正常に完了すると、aError パラメータは OT_ERROR_NONE になり、コールバックへの入力パラメータとしてホスト情報とサービスの完全なリストが提供されます。ホストの情報やサービスはそれぞれ、関連するデータ構造の対応する mState メンバー変数で自身の状態を追跡します(ホスト情報 / サービスが登録または削除されているか、あるいはまだ追加または削除されているかを示す状態など)。

削除されたサービスのリストは、コールバックで独自のリンクリスト aRemovedServices として渡されます。コールバックが呼び出されると、SRP クライアント(OpenThread 実装)は aRemovedServices にリストされた削除されたサービス インスタンスを使用して処理を行い、それらのインスタンスを追跡/保存しなくなります(つまり、コールバックから otSrpClientGetServices() を呼び出すと、削除されたサービスが返されたリストに存在しません)。コールバックで削除されたサービスの個別のリストを提供することで、どのアイテムが削除されたかをユーザーが示し、ユーザーがインスタンスを再要求または再利用できるようになります。

サーバーが SRP 更新リクエストを拒否した場合、DNS レスポンス コード(RFC 2136)は次のエラーにマッピングされます。

  • (0)NOERROR 成功(エラー条件なし)-> OT_ERROR_NONE
  • (1)FORMERR サーバーが形式エラーにより解釈できない -> OT_ERROR_PARSE
  • (2)SERVFAIL サーバーで内部エラーが発生しました -> OT_ERROR_FAILED
  • (3)存在するはずの NXDOMAIN 名が存在しません -> OT_ERROR_NOT_FOUND
  • (4)NOTIMP サーバーがクエリタイプ(オペコード)をサポートしていない -> 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 と関連するパラメータをご覧ください)。

詳細
パラメータ
[in] aError
エラー(上記参照)。
[in] aHostInfo
ホスト情報へのポインタ。
[in] aServices
すべてのサービス(削除済みを除く)を含むリンクリストの先頭。リストが空の場合は NULL。
[in] aRemovedServices
削除されたすべてのサービスを含むリンクリストの先頭。リストが空の場合は NULL。
[in] aContext
任意のコンテキストへのポインタ(コールバックの登録時に指定)。

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

SRP クライアント ホスト情報を表します。

otSrpClientService

struct otSrpClientService otSrpClientService

SRP クライアント サービスを表します。

この構造体の値は、名前の文字列バッファと TXT レコード エントリを含め、この構造体のインスタンスが otSrpClientAddService() または otSrpClientRemoveService() から OpenThread に渡された後に保持され、一定でなければなりません。

mStatemDatamNext フィールドは、OT コアのみが使用、管理します。otSrpClientService のインスタンスが otSrpClientAddService()otSrpClientRemoveService() などの関数に渡される場合、それらの値は無視されます。呼び出し元は、これらのフィールドを設定する必要はありません。

mLease フィールドと mKeyLease フィールドには、このサービスに必要なリースとキーのリース間隔を指定します。値がゼロの場合、間隔が指定されておらず、otSrpClientGetLeaseInterval()otSrpClientGetKeyLeaseInterval() のデフォルトのリース間隔またはキーリース間隔がこのサービスに使用されます。キーリース間隔(明示的に設定されているかデフォルトから決定されているか)がサービスのリース間隔よりも短い場合、SRP クライアントはキーリース間隔にもリース間隔の値を再利用します。たとえば、サービス mLease では明示的に 2 日間に設定され、mKeyLease がゼロに設定され、デフォルトの鍵リースが 1 日に設定されている場合、このサービスを登録する際に、このサービスでリクエストされた鍵リースも 2 日間に設定されます。

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

SRP サーバーで使用されるアドレスモードを表します。

アドレスモードは、SRP サーバーによるアドレスとポート番号の決定方法と、この情報が Thread ネットワーク データで公開される方法を指定します。

otSrpServerHost

struct otSrpServerHost otSrpServerHost

この不透明型は SRP サービスホストを表します。

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

SRP サーバーの LEASE 構成と KEY-LEASE 構成が含まれます。

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

ホスト/サービスの SRP サーバー リース情報が含まれます。

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

SRP サーバー レスポンスの統計情報が含まれます。

otSrpServerService

struct otSrpServerService otSrpServerService

この不透明型は SRP サービスを表します。

otSrpServerServiceUpdateHandler

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

SRP サービスの更新を処理します。

SRP ホストと、場合によっては SRP サービスが更新されていることを通知するために、SRP サーバーによって呼び出されます。ハンドラが otSrpServerHandleServiceUpdateResult を呼び出して結果を返すか、aTimeout の後にタイムアウトするまで、SRP の更新は commit されないことが重要です。

SRP サービス オブザーバーは、更新イベントを受け取った直後に、常に otSrpServerHandleServiceUpdateResult をエラーコード OT_ERROR_NONE で呼び出す必要があります。

より一般的なハンドラでは、SRP ホスト/サービスの検証を実行して、いずれかの検証で不合格だった場合は SRP の更新を拒否できます。たとえば、アドバタイジング プロキシは、マルチキャスト対応リンク上のホストとサービスをアドバタイズ(または削除)し、エラーが発生した場合は特定のエラーコードを返します。

詳細
パラメータ
[in] aId
サービス更新トランザクション ID。この ID は otSrpServerHandleServiceUpdateResult で返す必要があります。
[in] aHost
SRP の更新を含む otSrpServerHost オブジェクトへのポインタ。ハンドラは、以下のルールに沿ってホストを公開または公開停止し、各サービスがこのホストをポイントする必要があります。
  1. ホストが削除されていない場合は(otSrpServerHostIsDeleted で示されます)、ホストを公開または mDNS で更新する必要があります。それ以外の場合は、ホストを非公開にする必要があります(AAAA RR を削除します)。
  2. ホストの公開を停止する場合は、このホストを指す各サービスを非公開にする必要があります。それ以外の場合、ハンドラはサービスが削除されていない場合(otSrpServerServiceIsDeleted で示される)にサービスを公開または更新し、削除されたら非公開にする必要があります。
[in] aTimeout
ハンドラがサービス イベントを処理するための最大時間(ミリ秒)。
[in] aContext
アプリケーション固有のコンテキストへのポインタ。
関連項目:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

SRP サーバーでの SRP サービス更新トランザクションの ID。

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

SRP サーバーの TTL 構成を含みます。

関数

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

サーバーに登録するサービスを追加します。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーにサービスの追加/登録のステータスを報告します。

aService によってポイントされる otSrpClientService インスタンスは、保持され、この関数から(OT_ERROR_NONE で)戻った後も変更されないままでなければなりません。OpenThread は、ポインタをサービス インスタンスに保存します。

otSrpClientService インスタンスは OpenThread によってトラッキングされなくなり、次の場合にのみ回収できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
追加する otSrpClientService インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
サービスの追加が正常に開始されました。ステータスを報告するために otSrpClientCallback が呼び出されます。
OT_ERROR_ALREADY
同じサービスとインスタンス名を持つサービスがすでにリストに含まれています。
OT_ERROR_INVALID_ARGS
サービス構造が無効である(サービス名や otDnsTxtEntry が間違っているなど)。

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

プールから新しいサービス エントリを割り当てます。

返されたサービス エントリ インスタンスは次のように初期化されます。

  • mService.mName は、関数 otSrpClientBuffersGetServiceEntryServiceNameString() を使用して取得できる割り当てられた文字列バッファをポイントします。
  • mService.mInstanceName は、関数 otSrpClientBuffersGetServiceEntryInstanceNameString() を使用して取得できる割り当てられた文字列バッファをポイントします。
  • mService.mSubTypeLabels は、otSrpClientBuffersGetSubTypeLabelsArray() から返される配列を指します。
  • mService.mTxtEntriesmTxtEntry を指します。
  • mService.mNumTxtEntries は 1 に設定されます。
  • 他の mService フィールド(port、priority、weight)は 0 に設定されます。
  • mTxtEntry.mKey が NULL に設定されている(値はすでにエンコードされたものとして扱われます)。
  • mTxtEntry.mValue は、関数 otSrpClientBuffersGetServiceEntryTxtBuffer() を使用して取得できる割り当てられたバッファを指します。
  • mTxtEntry.mValueLength がゼロに設定されています。
  • 関連するすべてのデータ/文字列バッファと配列はすべてゼロにクリアされます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
新しく割り当てられたサービス エントリへのポインタ。プールに使用可能なエントリがない場合は NULL。

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

以前に割り当てられたサービス エントリをすべて解放します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

以前に割り当てられたサービス エントリを解放します。

aService は、以前に otSrpClientBuffersAllocateService() を使用して割り当てられ、まだ解放されていない必要があります。それ以外の場合、この関数の動作は未定義です。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
解放するサービス エントリへのポインタ(NULL であってはなりません)。

otSrpClientBuffersGetHostAddressesArray

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

SRP クライアント ホスト アドレス リストとして使用する IPv6 アドレス エントリの配列を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aArrayLength
配列の長さ(配列内の IPv6 アドレス エントリ数)を返す変数へのポインタ(NULL であってはなりません)。
戻り値
otIp6Address エントリの配列へのポインタ(エントリの数は aArrayLength で返されます)。

otSrpClientBuffersGetHostNameString

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

SRP クライアントのホスト名に使用する文字列バッファを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aSize
文字列バッファのサイズ(バイト数)を返す変数へのポインタ(NULL であってはなりません)。
戻り値
SRP クライアントのホスト名に使用する文字バッファへのポインタ。

otSrpClientBuffersGetServiceEntryInstanceNameString

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

サービス エントリからサービス インスタンス名の文字列バッファを取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL であってはなりません)。
[out] aSize
文字列バッファのサイズ(バイト数)を返す変数へのポインタ(NULL であってはなりません)。
戻り値
文字列バッファへのポインタ。

otSrpClientBuffersGetServiceEntryServiceNameString

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

サービス エントリからサービス名の文字列バッファを取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL であってはなりません)。
[out] aSize
文字列バッファのサイズ(バイト数)を返す変数へのポインタ(NULL であってはなりません)。
戻り値
文字列バッファへのポインタ。

otSrpClientBuffersGetServiceEntryTxtBuffer

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

サービス エントリから TXT レコードのバッファを取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL であってはなりません)。
[out] aSize
バッファのサイズ(バイト数)を返す変数へのポインタ(NULL であってはなりません)。
戻り値
バッファへのポインタ。

otSrpClientBuffersGetSubTypeLabelsArray

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

サービス エントリからサービス サブタイプのラベルの配列を取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL であってはなりません)。
[out] aArrayLength
配列の長さを返す変数へのポインタ(NULL であってはなりません)。
戻り値
配列へのポインタ。

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

すべてのホスト情報とすべてのサービスを消去します。

更新メッセージをサーバーに送信してすべての情報を削除する otSrpClientRemoveHostAndServices() とは異なり、この関数はサーバーをやり取りすることなく、すべての情報を直ちにクリアします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

サービスを消去し、すぐにクライアント サービス リストから削除します。

サーバーに更新メッセージを送信してサービスを削除する otSrpClientRemoveService() とは異なり、この関数はサーバーの操作なしでクライアントのサービスリストからサービスをクリアします。この関数の呼び出しが成功すると、otSrpClientCallback は呼び出されず、呼び出し元は aService エントリをすぐに再利用して再利用できます。

後続の otSrpClientAddService() の呼び出し(同じサービスとインスタンス名で同じ aService エントリを再利用する可能性がある)と一緒に使用して、既存のサービスの一部のパラメータを更新できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
削除する otSrpClientService インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
aService を削除しました。すぐに回収して再利用できます。
OT_ERROR_NOT_FOUND
リストからサービスが見つかりませんでした。

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

自動起動モードを無効にします。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用できます。

自動起動モードを無効にしても、クライアントがすでに実行されている場合は停止しませんが、クライアントは Thread ネットワーク データのモニタリングを停止し、選択した SRP サーバーがまだ存在することを確認します。

また、otSrpClientStop() を呼び出すと自動起動モードが無効になります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpClientEnableAutoHostAddress

otError otSrpClientEnableAutoHostAddress(
  otInstance *aInstance
)

自動ホストアドレス モードを有効にします。

有効にすると、ホストの IPv6 アドレスは、すべてのリンクローカル アドレスとメッシュローカル アドレスを除く、Thread netif 上のすべての優先ユニキャスト アドレスを使用して SRP クライアントによって自動的に設定されます。優先アドレスがない場合は、メッシュ ローカル EID アドレスが追加されます。Thread netif のアドレスが更新されると(新しいアドレスが追加されたり、既存のアドレスが削除または非優先としてマークされたりすると、SRP クライアントは自動的に再登録されます)。

自動ホストアドレス モードは、SRP クライアントの開始前またはオペレーション中に有効にできます。ただし、ホスト情報が削除される場合を除きます(クライアントが otSrpClientRemoveHostAndServices() の呼び出しからの削除リクエストの処理でビジー状態であり、ホスト情報が STATE_TO_REMOVE または STATE_REMOVING の状態のままである)。

自動ホストアドレス モードを有効にした後、無効にするには、otSrpClientSetHostAddresses() を呼び出してホストアドレスを明示的に設定します。

詳細
戻り値
OT_ERROR_NONE
自動ホストアドレス モードを有効にしました。
OT_ERROR_INVALID_STATE
ホストを削除中のため、自動ホストアドレス モードを有効にできません。

otSrpClientEnableAutoStartMode

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

自動起動モードを有効にします。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用できます。

構成オプション OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE には、デフォルトの自動起動モード(OT スタックの開始時に有効または無効にするか)を指定します。

自動起動が有効になっている場合、SRP クライアントは Thread ネットワーク データを監視して SRP サーバーを検出し、優先サーバーを選択し、SRP サーバーが検出されたときにクライアントを自動的に起動および停止します。

SRP サーバーの存在を示すネットワーク データ エントリには 3 つのカテゴリがあります。これらは、以下の順序で推奨されます。

1)サーバー アドレスがサービスデータに含まれる優先ユニキャスト エントリ。複数のオプションがある場合は、数値が最も小さい IPv6 アドレスが優先されます。

2)それぞれがシーケンス番号を持つエニーキャスト エントリ。RFC-1982 のシリアル番号算術ロジックで規定されている意味でのシーケンス番号が大きいほど、より新しいものとみなされるため、推奨されます。シリアル番号の算術を用いた最大シーケンス番号が、明確に定義されている場合(つまり、シーケンス番号が他のすべてのシーケンス番号よりも大きい場合)は、優先されます。明確に定義されていない場合は、数値的に最大のシーケンス数が優先されます。

3)サーバー アドレス情報がサーバーデータに含まれているユニキャスト エントリ。複数のオプションがある場合は、数値が最も小さい IPv6 アドレスが優先されます。

ネットワーク データ エントリに変更があったときは、現在選択されているサーバーがネットワーク データ内にまだ存在し、それが優先されているサーバーであるかをクライアントが確認します。そうしないと、クライアントは新しい優先サーバーに切り替えられるか、存在しない場合は停止します。

otSrpClientStart() の呼び出しが成功して SRP クライアントを明示的に起動した場合は、自動起動モードの状態や、同じ SRP サーバー アドレスが Thread ネットワーク データで検出されたかどうかにかかわらず、otSrpClientStart() の特定の SRP サーバー アドレスが引き続き使用されます。この場合、明示的な otSrpClientStop() 呼び出しのみがクライアントを停止します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aCallback
クライアントが自動的に開始または停止されたときに通知するためのコールバック。不要な場合は NULL にできます。
[in] aContext
aCallback を呼び出すときに渡されるコンテキスト。

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

SRP クライアントによって使用されるドメイン名を取得します。

OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE を有効にする必要があります。

ドメイン名が設定されていない場合、「default.service.arpa」が使用されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ドメイン名の文字列。

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

ホスト情報を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ホスト情報構造へのポインタ。

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

SRP 更新リクエストで使用されるデフォルトの鍵リース間隔を取得します。

デフォルトの間隔は、mKeyLease が 0 に設定されている otSrpClientService インスタンスでのみ使用されます。

これは SRP クライアントからリクエストされたリース期間です。サーバーは別のリース間隔を受け入れる場合もあります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
キーリースの間隔(秒単位)。

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

SRP 更新リクエストで使用されるデフォルトのリース間隔を取得します。

デフォルトの間隔は、mLease が 0 に設定されている otSrpClientService インスタンスでのみ使用されます。

これは SRP クライアントからリクエストされたリース期間です。サーバーは別のリース間隔を受け入れる場合もあります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
リース間隔(秒単位)。

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

SRP クライアントによって使用されている SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)を取得します。

クライアントが実行されていない場合、アドレスは未指定(すべてゼロ)で、ポート番号はゼロです。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーのソケット アドレスへのポインタ(常に NULL ではない)。

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

クライアントによって管理されているサービスのリストを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
すべてのサービスのリンクリストの先頭へのポインタ。リストが空の場合は NULL。

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

SRP 更新リクエストに含まれるすべてのレコードの TTL 値を取得します。

これは、SRP クライアントからリクエストされた TTL であることにご注意ください。サーバーが別の TTL を受け入れる場合もあります。

デフォルトでは、TTL はリース間隔と同じになります。otSrpClientSetTtl() を介して 0 またはリース間隔より大きい値を渡すと、TTL もリース間隔と等しくなります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
TTL(秒単位)。

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

自動起動モードの現在の状態(有効または無効)を示します。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
自動スタート モードが有効な場合は TRUE、そうでない場合は FALSE です。

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

SRP クライアントが実行中かどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP クライアントが実行されている場合は TRUE、それ以外の場合は FALSE です。

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

「サービスキー レコードを含める」モードが有効か無効かを示します。

OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 構成が有効な場合に使用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
「サービスキー レコードを含める」モードが有効な場合は TRUE、そうでない場合は FALSE です。

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

otSrpClientItemState を文字列に変換します。

詳細
パラメータ
[in] aItemState
アイテムの状態。
戻り値
aItemState の文字列表現。

otSrpClientRemoveHostAndServices

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

ホスト情報とすべてのサービスの削除プロセスを開始します。

この関数から戻った後、otSrpClientCallback が呼び出され、SRP サーバーに削除リクエストのステータスを報告します。

ホスト情報をサーバーから完全に削除する場合は、aRemoveKeyLeasetrue に設定して、サーバー上のホストに関連付けられている鍵リースを削除する必要があります。それ以外の場合、キーリース レコードは以前と同様に保持されます。これにより、サーバーが再びサービスを提供、登録できるようになるときに備えて、サーバーはホスト名を予約して保持できます。

aSendUnregToServer は、ホスト情報がまだサーバーに登録されていない場合の動作を決定します。aSendUnregToServerfalse(デフォルト値または想定値)に設定されている場合、SRP クライアントは更新メッセージをサーバーに送信することなく、直ちにホスト情報とサービスを削除します(まだ何も登録されていない場合は、サーバーを更新する必要はありません)。aSendUnregToServertrue に設定されている場合、SRP クライアントは更新メッセージをサーバーに送信します。なお、ホスト情報が登録されている場合は、aSendUnregToServer の値は重要ではなく、SRP クライアントは常に、すべての情報の削除をリクエストする更新メッセージをサーバーに送信します。

aSendUnregToServer が有用な状況の 1 つは、デバイスのリセット/再起動です。呼び出し元は、以前にサーバーに登録されたサービスの削除を求められることがあります。この場合、呼び出し元は otSrpClientSetHostName() を行い、true として aSendUnregToServer を使用して otSrpClientRemoveHostAndServices() をリクエストできます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aRemoveKeyLease
ホストキーリースも削除する必要があるかどうかを示すブール値。
[in] aSendUnregToServer
ホスト情報が登録されていない場合に、更新をサーバーに送信するかどうかを示すブール値。
戻り値
OT_ERROR_NONE
主催者の情報とサービスの削除を開始しました。ステータスを報告するために otSrpClientCallback が呼び出されます。
OT_ERROR_ALREADY
ホスト情報はすでに削除されています。

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

サービスの登録解除をリクエストします。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーに削除リクエストのステータスを報告します。

aService によってポイントされる otSrpClientService インスタンスは、保持され、この関数から(OT_ERROR_NONE を使用して)戻った後も変更されないままでなければなりません。OpenThread は、削除プロセスの間、サービス インスタンスを保持します。otSrpClientCallback が呼び出された後にのみ、サービス インスタンスが SRP クライアント サービスリストから削除され、解放/再利用可能であることを示す。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
削除する otSrpClientService インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
サービスの削除が正常に開始されました。ステータスを報告するために otSrpClientCallback が呼び出されます。
OT_ERROR_NOT_FOUND
リストからサービスが見つかりませんでした。

otSrpClientSetCallback

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

SRP クライアントのイベントや変更を呼び出し元に通知するコールバックを設定します。

SRP クライアントでは、コールバックを 1 つ登録できます。そのため、この関数を連続して呼び出すと、以前に設定したコールバック関数が上書きされます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aCallback
イベントと変更を通知するコールバック。不要な場合は NULL にできます。
[in] aContext
aCallback で使用される任意のコンテキスト。

otSrpClientSetDomainName

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

SRP クライアントが使用するドメイン名を設定します。

OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE を有効にする必要があります。

設定しない場合は、「default.service.arpa」が使用されます。

aName がポイントする名前文字列バッファは、この関数から返された後も保持され、変更されないままでなければなりません。OpenThread は、ポインタを文字列に保持します。

ドメイン名は、クライアントの起動前、または起動後かつホスト情報をサーバーに登録する前に設定できます(ホスト情報は STATE_TO_ADD または STATE_TO_REMOVE のいずれかに指定する必要があります)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aName
ドメイン名の文字列へのポインタ。NULL の場合はデフォルトの「default.service.arpa」に設定されます。
戻り値
OT_ERROR_NONE
ドメイン名のラベルを設定しました。
OT_ERROR_INVALID_STATE
ホスト情報はすでにサーバーに登録されています。

otSrpClientSetHostAddresses

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

ホストの IPv6 アドレスのリストを設定/更新します。

ホスト IPv6 アドレスは、SRP クライアントの開始前または操作中に設定/変更(以前に登録されたホストアドレスの追加/削除、変更など)が可能です。ただし、ホスト情報が削除される場合(クライアントが otSrpClientRemoveHostAndServices() への以前の呼び出しからの削除リクエストの処理でビジー状態であり、ホスト情報が STATE_TO_REMOVE または STATE_REMOVING の状態のままである)場合を除きます。

aIp6Addresses でポイントされるホスト IPv6 アドレス配列は、この関数から(OT_ERROR_NONE で)返された後も保持され、変更されないままでなければなりません。OpenThread はポインタを配列に保存します。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーへの住所登録のステータスを報告します。

otSrpClientEnableAutoHostAddress() の呼び出しが成功した後に自動ホストアドレス モードが有効になっていた場合、この関数を呼び出すと、自動ホストアドレス モードが無効になります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aIp6Addresses
ホストの IPv6 アドレスを含む配列へのポインタ。
[in] aNumAddresses
aIp6Addresses 配列内のアドレスの数。
戻り値
OT_ERROR_NONE
ホストの IPv6 アドレスリストの変更が正常に開始されました。otSrpClientCallback は、サーバーへのアドレス登録のステータスを報告するために呼び出されます。
OT_ERROR_INVALID_ARGS
アドレスリストが無効です(例: 住所を 1 つ以上含める必要があります)。
OT_ERROR_INVALID_STATE
ホストを削除中のため、ホストアドレスを変更できません。

otSrpClientSetHostName

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

ホスト名のラベルを設定します。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーへのホスト情報登録のステータスを報告します。

aName がポイントする名前文字列バッファは、この関数から返された後も保持され、変更されないままでなければなりません。OpenThread は、ポインタを文字列に保持します。

ホスト名は、クライアントの起動前、または起動後かつホスト情報をサーバーに登録する前に設定できます(ホスト情報は STATE_TO_ADD または STATE_REMOVED のいずれかに指定します)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aName
ホスト名のラベル文字列へのポインタ(NULL であってはなりません)。文字列バッファへのポインタは、この関数から返された後も保持され、有効かつ一定でなければなりません。
戻り値
OT_ERROR_NONE
ホスト名のラベルを設定しました。
OT_ERROR_INVALID_ARGS
aName が NULL である。
OT_ERROR_INVALID_STATE
ホスト名はすでに設定されており、サーバーに登録されています。

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

SRP 更新リクエストで使用されるデフォルトの鍵リース間隔を設定します。

デフォルトの間隔は、mKeyLease が 0 に設定されている otSrpClientService インスタンスでのみ使用されます。

リース間隔を変更しても、すでに登録されているサービス / host-info の受け入れ可能なリース間隔には影響しません。将来の SRP 更新メッセージ(新しいサービスの追加や既存サービスの更新)にのみ影響します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aInterval
キーリースの間隔(秒単位)。ゼロの場合、OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE で指定されたデフォルト値が使用されます。

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

SRP 更新リクエストで使用されるデフォルトのリース間隔を設定します。

デフォルトの間隔は、mLease が 0 に設定されている otSrpClientService インスタンスでのみ使用されます。

リース間隔を変更しても、すでに登録されているサービス / host-info の受け入れ可能なリース間隔には影響しません。これは、将来の SRP 更新メッセージ(新しいサービスの追加や既存サービスの更新)にのみ影響します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aInterval
リース間隔(秒単位)。ゼロの場合、OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE で指定されたデフォルト値が使用されます。

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

「サービスキー レコードを含める」モードを有効または無効にします。

有効にすると、SRP クライアントは、送信する SRP 更新メッセージの「サービスの説明手順」に KEY レコードを含めます。

OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 構成が有効な場合に使用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
「サービスキー レコードを含める」モードを有効にするには TRUE を、無効にするには FALSE を指定します。

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

SRP 更新リクエストに含まれるすべてのレコードに TTL 値を設定します。

TTL の変更は、すでに登録されているサービス / ホスト情報の TTL には影響せず、今後の SRP 更新メッセージ(新しいサービスの追加や既存サービスの更新)にのみ影響します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aTtl
TTL(秒単位)。値がゼロまたはリース間隔より大きい場合、TTL はリース間隔に設定されます。

otSrpClientStart

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

SRP クライアント オペレーションを開始します。

SRP クライアントは、以下の条件がすべて満たされると、「SRP 更新」メッセージを準備して SRP サーバーに送信します。

これらの関数はどの順序で呼び出すかは関係ありません。すべての条件が満たされると、SRP クライアントはしばらく待ってから「SRP Update」メッセージを準備してサーバーに送信します。この遅延により、ユーザーは最初の SRP 更新メッセージを送信する前に複数のサービスや IPv6 アドレスを追加することができます(すべての情報を含む単一の SRP 更新が送信されるようにします)。OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY 構成で、遅延間隔を指定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aServerSockAddr
SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)。
戻り値
OT_ERROR_NONE
SRP クライアント オペレーションが正常に開始されたか、同じサーバー ソケット アドレスとコールバックですでに実行されています。
OT_ERROR_BUSY
SRP クライアントが、別のソケット アドレスで実行中です。
OT_ERROR_FAILED
クライアントの UDP ソケットを開けないか、接続できませんでした。

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

SRP クライアント オペレーションを停止します。

SRP サーバーとのやり取りをすべて停止します。ホスト情報やサービスリストは削除も消去もされません。クライアントが再起動(再起動)されると、すべてのサービスが再度追加または削除されるようになります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

SRP サーバーで使用されているアドレスモードを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーのアドレスモード。

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

エニーキャスト アドレス モードで使用されるシーケンス番号を返します。

シーケンス番号は、ネットワーク データで公開されている「DNS/SRP Service Anycast Address」エントリに含まれています。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
エニーキャスト シーケンス番号。

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

SRP サーバーに承認されたドメインを返します。

ドメインが SetDomain で設定されていない場合は、「default.service.arpa」が返されます。ドメインが末尾にドットで設定されていても、末尾にドットが常に追加されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ドット結合されたドメイン文字列へのポインタ。

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

SRP サーバーの LEASE 構成と KEY-LEASE 構成を返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aLeaseConfig
otSrpServerLeaseConfig インスタンスへのポインタ。

otSrpServerGetNextHost

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

SRP サーバーで次に登録されているホストを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aHost
現在のホストへのポインタ。最初のホストを取得するには NULL を使用します。
戻り値
登録済みのホストへのポインタ。NULL(ホストがこれ以上見つからない場合)。

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

SRP サーバーがリッスンしているポートを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーのポート。サーバーが実行されていない場合は 0 を返します。

otSrpServerGetResponseCounters

const otSrpServerResponseCounters * otSrpServerGetResponseCounters(
  otInstance *aInstance
)

SRP サーバーのレスポンス カウンタを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーのレスポンス カウンタへのポインタ。

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

SRP サーバーの状態を返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーの現在の状態。

otSrpServerGetTtlConfig

void otSrpServerGetTtlConfig(
  otInstance *aInstance,
  otSrpServerTtlConfig *aTtlConfig
)

SRP サーバーの TTL 構成を返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aTtlConfig
otSrpServerTtlConfig インスタンスへのポインタ。

otSrpServerHandleServiceUpdateResult

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

SRP 更新の処理結果を SRP サーバーにレポートします。

サービス更新ハンドラはこの関数を呼び出して、SRP 更新の処理結果を返す必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aId
サービス更新トランザクション ID。otSrpServerServiceUpdateHandler で提供される ID と同じである必要があります。
[in] aError
SRP サーバーに返されるエラーです。OT_ERROR_DUPLICATED を使用して DNS 名の競合を表す。

otSrpServerHostGetAddresses

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

指定されたホストのアドレスを返します。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
[out] aAddressesNum
アドレス数の出力先へのポインタ。
戻り値
IPv6 アドレスの配列へのポインタ。

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

ホストの完全な名前を返します。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
戻り値
null で終端したホスト名の文字列へのポインタ。

otSrpServerHostGetLeaseInfo

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

指定されたホストの LEASE および KEY-LEASE 情報を返します。

詳細
パラメータ
[in] aHost
SRP サーバーホストへのポインタ。
[out] aLeaseInfo
LEASE および KEY-LEASE 情報を出力する場所へのポインタ。

otSrpServerHostGetNextService

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

指定されたホストの次のサービスを返します。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
[in] aService
現在の SRP サービス インスタンスへのポインタ。最初のサービスを取得するには NULL を使用します。
戻り値
次のサービスへのポインタ。それ以上サービスがない場合は NULL。

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

SRP サービスホストが削除されたかどうかを示します。

SRP サービスホストは削除できますが、今後使用するために名前が保持されます。この場合、ホスト インスタンスは SRP サーバー/レジストリから削除されません。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
戻り値
ホストが削除されている場合は TRUE、そうでない場合は FALSE です。

otSrpServerHostMatchesFullName

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

ホストが特定のホスト名と一致するかどうかを示します。

DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
[in] aFullName
完全なホスト名。
戻り値
TRUE
ホストがホスト名と一致する場合。
FALSE
ホストがホスト名と一致しない場合。

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

自動有効化モードが有効か無効かを示します。

OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE 機能が必要です。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
TRUE
自動有効化モードが有効になっている。
FALSE
自動有効化モードは無効になっています。

otSrpServerParseSubTypeServiceName

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

サブタイプのサービス名(フルネーム)を解析し、サブタイプのラベルを抽出します。

サブタイプのサービスの完全なサービス名は「._sub...」のようになります。

詳細
パラメータ
[in] aSubTypeServiceName
サブタイプのサービス名(フルネーム)。
[out] aLabel
抽出されたサブタイプ ラベルをコピーするためのバッファへのポインタ。
[in] aLabelSize
aLabel バッファの最大サイズ。
戻り値
OT_ERROR_NONE
名前の解析に成功し、aLabel が更新されました。
OT_ERROR_NO_BUFS
サブタイプのラベルが aLabel バッファに収まりませんでした(収まるラベルの文字数が aLabel にコピーされ、null で終わる必要があります)。
OT_ERROR_INVALID_ARGS
aSubTypeServiceName は有効なサブタイプの形式ではありません。

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

サービス インスタンスが存在するホストを返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
ホスト インスタンスへのポインタ。

otSrpServerServiceGetInstanceLabel

const char * otSrpServerServiceGetInstanceLabel(
  const otSrpServerService *aService
)

サービスのサービス インスタンス ラベル(インスタンス名の最初のラベル)を返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
null で終端したサービス インスタンス ラベル文字列へのポインタ。

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

サービスの完全なサービス インスタンス名を返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
null で終わるサービス インスタンス名の文字列へのポインタ。

otSrpServerServiceGetLeaseInfo

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

指定されたサービスの LEASE および KEY-LEASE 情報を返します。

詳細
パラメータ
[in] aService
SRP サーバー サービスへのポインタ。
[out] aLeaseInfo
LEASE および KEY-LEASE 情報を出力する場所へのポインタ。

otSrpServerServiceGetNumberOfSubTypes

uint16_t otSrpServerServiceGetNumberOfSubTypes(
  const otSrpServerService *aService
)

サービスのサブタイプの数を取得します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
aService のサブタイプの数。

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

サービス インスタンスのポートを返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
サービスのポート。

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

サービス インスタンスの優先度を返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
サービスの優先度。

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

サービスの完全なサービス名を返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
null で終わるサービス名の文字列へのポインタ。

otSrpServerServiceGetSubTypeServiceNameAt

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

指定されたインデックスのサービスのサブタイプ サービス名(フルネーム)を取得します。

サブタイプのサービスの完全なサービス名は「._sub...」のようになります。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
[in] aIndex
取得するインデックス。
戻り値
aIndex のサブタイプのサービス名へのポインタ。このインデックスにサブタイプがない場合は NULL

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

サービス インスタンスの TTL を返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
サービス インスタンスの TTL。

otSrpServerServiceGetTxtData

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

サービス インスタンスの TXT レコードデータを返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
[out] aDataLength
TXT レコードのデータ長を返すポインタ。NULL であってはなりません。
戻り値
TXT レコードデータを含むバッファへのポインタ(TXT データの長さは aDataLength で返されます)。

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

サービス インスタンスの重みを返します。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
サービスの重み。

otSrpServerServiceHasSubTypeServiceName

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

サービスが特定のサブタイプを持つかどうかを示します。

DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
[in] aSubTypeServiceName
確認するサブタイプのサービス名(フルネーム)。
戻り値
TRUE
Service にサブタイプ aSubTypeServiceName が含まれている。
FALSE
Service にサブタイプ aSubTypeServiceName が含まれていません。

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

SRP サービスが削除されたかどうかを示します。

SRP サービスは削除できますが、将来使用するために名前が保持されます。この場合、サービス インスタンスは SRP サーバー/レジストリから削除されません。ホストが削除されると、すべてのサービスが削除されることが保証されます。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
戻り値
サービスが削除された場合は TRUE、削除されていない場合は FALSE。

otSrpServerServiceMatchesInstanceName

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

このサービスが特定のサービス インスタンス名と一致するかどうかを示します。

DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
[in] aInstanceName
サービス インスタンス名。
戻り値
TRUE
サービスがサービス インスタンス名と一致する場合。
FALSE
サービスがサービス インスタンス名と一致しない場合。

otSrpServerServiceMatchesServiceName

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

このサービスが特定のサービス名と一致するかどうかを示します。

DNS 名の一致は、大文字と小文字を区別しない文字列比較(つまり、「Abc」と「aBc」は同じであると見なされる)。

詳細
パラメータ
[in] aService
SRP サービスへのポインタ。
[in] aServiceName
サービス名。
戻り値
TRUE
サービスがサービス名と一致する場合。
FALSE
サービスがサービス名と一致しない場合。

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

SRP サーバーで使用するアドレス モードを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMode
使用する住所モード。
戻り値
OT_ERROR_NONE
アドレスモードを設定しました。
OT_ERROR_INVALID_STATE
SRP サーバーは有効になっており、アドレスモードを変更できません。

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

エニーキャスト アドレス モードで使用されるシーケンス番号を設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aSequenceNumber
使用するシーケンス番号。
戻り値
OT_ERROR_NONE
アドレスモードを設定しました。
OT_ERROR_INVALID_STATE
SRP サーバーが有効になっており、シーケンス番号を変更できません。

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

SRP サーバーの自動有効化モードを有効または無効にします。

OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE 機能が必要です。

このモードを有効にすると、Border Routing Manager が、SRP サーバーを有効または無効にするかどうか、いつ無効にするかを制御します。SRP サーバーは、ボーダー ルーティングが開始され、最初のプレフィックスとルート構成で行われた場合(自動的に有効になります(OMR とオンリンクのプレフィックスが決定されると、インフラストラクチャ側で出力されたルーター アドバタイズ メッセージでアドバタイズされ、Thread ネットワーク データでパブリッシュされます)。SRP サーバーは、BR が停止した場合(たとえば、インフラストラクチャ ネットワーク インターフェースがダウンした場合や、BR が接続解除された場合)は自動的に無効になります。

このモードは、aEnabledfalse に設定して otSrpServerSetAutoEnableMode() を呼び出すか、otSrpServerSetEnabled() 関数の呼び出しによって SRP サーバーが明示的に有効または無効にされている場合に、無効にできます。otSrpServerSetAutoEnableMode(false) を使用して自動有効化モードを無効にしても、SRP サーバーの現在の状態は変更されません(たとえば、有効にした場合、有効のままになります)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
自動有効化モードを有効または無効にするブール値。

otSrpServerSetDomain

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

SRP サーバーにドメインを設定します。

末尾のドットがまだない場合は、aDomain に付加されます。SRP サーバーを有効にする前にのみ呼び出す必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aDomain
設定するドメイン。NULL であってはなりません。
戻り値
OT_ERROR_NONE
ドメインを aDomain に設定しました。
OT_ERROR_INVALID_STATE
SRP サーバーはすでに有効になっており、ドメインを変更できません。
OT_ERROR_INVALID_ARGS
引数 aDomain は有効な DNS ドメイン名ではありません。
OT_ERROR_NO_BUFS
aDomain のコンテンツを保存するメモリがありません。

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

SRP サーバーを有効または無効にします。

ボーダー ルーターでは、代わりに otSrpServerSetAutoEnableMode() を使用することをおすすめします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
SRP サーバーを有効または無効にするブール値。

otSrpServerSetLeaseConfig

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

SRP サーバーの LEASE 設定と KEY-LEASE 設定を設定します。

ゼロ以外の LEASE 時間がクライアントからリクエストされた場合、付与される値は範囲 [aMinLease, aMaxLease] で制限し、ゼロ以外の KEY-LEASE が範囲 [aMinKeyLease, aMaxKeyLease] で付与する。LEASE 時間または KEY-LEASE 時間がゼロの場合、ゼロが付与されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aLeaseConfig
otSrpServerLeaseConfig インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
LEASE 範囲と KEY-LEASE 範囲を正しく設定しました。
OT_ERROR_INVALID_ARGS
LEASE または KEY-LEASE の範囲が無効です。

otSrpServerSetServiceUpdateHandler

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

SRP サーバーの SRP サービス更新ハンドラを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aServiceHandler
サービス ハンドラへのポインタ。NULL を使用してハンドラを削除します。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は NULL になります。

otSrpServerSetTtlConfig

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

SRP サーバーの TTL 構成を設定します。

TTL の最小構成と最大構成にかかわらず、付与される TTL は常に、otSrpServerSetLeaseConfig() で構成された最大リース間隔以下になります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aTtlConfig
otSrpServerTtlConfig インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
TTL 構成を設定しました。
OT_ERROR_INVALID_ARGS
TTL 構成が無効です。

関連情報

OpenThread API リファレンスのトピックは、GitHub で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。