設定

このモジュールには、設定の不揮発性ストレージのためのプラットフォーム抽象化が含まれています。

概要

列挙型

anonymous enum{
  OT_SETTINGS_KEY_ACTIVE_DATASET = 0x0001,
  OT_SETTINGS_KEY_PENDING_DATASET = 0x0002,
  OT_SETTINGS_KEY_NETWORK_INFO = 0x0003,
  OT_SETTINGS_KEY_PARENT_INFO = 0x0004,
  OT_SETTINGS_KEY_CHILD_INFO = 0x0005,
  OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY = 0x0007,
  OT_SETTINGS_KEY_DAD_INFO = 0x0008,
  OT_SETTINGS_KEY_SRP_ECDSA_KEY = 0x000b,
  OT_SETTINGS_KEY_SRP_CLIENT_INFO = 0x000c,
  OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d,
  OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f,
  OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES = 0x0010,
  OT_SETTINGS_KEY_BORDER_AGENT_ID = 0x0011
}
enum
設定のキーを定義します。

関数

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
設定に値を追加します。
otPlatSettingsDeinit(otInstance *aInstance)
void
必要に応じて、設定サブシステムの初期化を解除します。
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
設定ストアから設定を削除します。
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
設定の値を取得します。
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
必要に応じて、設定サブシステムの初期化を実行します。
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
設定の値を設定または置換します。
otPlatSettingsWipe(otInstance *aInstance)
void
設定ストアからすべての設定を削除します。

列挙型

匿名列挙型

 anonymous enum

設定のキーを定義します。

注: 新しい設定キーを追加するときに、そのキーに対応する設定に機密情報が含まれる場合、デベロッパーは otPlatSettingsInit() で渡される配列 aSensitiveKeys にキーを追加しなければなりません。

プロパティ
OT_SETTINGS_KEY_ACTIVE_DATASET

運用中のアクティブなデータセット。

OT_SETTINGS_KEY_BORDER_AGENT_ID

一意のボーダー エージェント/ルーター ID。

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

BR ローカル オンリンク プレフィックス。

OT_SETTINGS_KEY_BR_ULA_PREFIX

BR ULA プレフィックス。

OT_SETTINGS_KEY_CHILD_INFO

お子様の情報。

OT_SETTINGS_KEY_DAD_INFO

Duplicate Address Detection(DAD)情報。

OT_SETTINGS_KEY_NETWORK_INFO

Thread のネットワーク情報。

OT_SETTINGS_KEY_PARENT_INFO

保護者の情報。

OT_SETTINGS_KEY_PENDING_DATASET

保留中の運用データセット。

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

意味的に不透明な IID を生成するための SLAAC 鍵。

OT_SETTINGS_KEY_SRP_CLIENT_INFO

SRP クライアント情報(選択した SRP サーバー アドレス)。

OT_SETTINGS_KEY_SRP_ECDSA_KEY

SRP クライアントの ECDSA 公開鍵/秘密鍵のペア。

OT_SETTINGS_KEY_SRP_SERVER_INFO

SRP サーバー情報(UDP ポート)。

関数

otPlatSettingsAdd

otError otPlatSettingsAdd(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

設定に値を追加します。

aKey で識別される設定に値を追加します。既存の値は置き換えられます。

なお、基になる実装では、特定のキーに関連付けられたアイテムの順序を維持する必要はありません。付加価値は、最後や最初、あるいは途中のどこかに追加することもあります。既存の値の順序も変わることがあります。

この関数を正常に呼び出すと、複数の値を含む無関係な設定が並べ替えられることがあります。

OpenThread スタックは、以前に otPlatSettingsAdd() によって管理されていた(1 つ以上のアイテムを含む)か、空または完全に削除されている(値を含まない)aKey に対して otPlatSettingsAdd() メソッドを使用することを保証します。

プラットフォーム レイヤは、この事実を利用して実装を最適化できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aKey
変更する設定に関連付けられているキー。
[in] aValue
設定の新しい値を読み取る場所へのポインタ。aValueLength がゼロでない場合は、NULL にしてはなりません。
[in] aValueLength
aValue が指すデータの長さ。ゼロでも構いません。
戻り値
OT_ERROR_NONE
指定された設定は、追加または追加するためにステージングされました。
OT_ERROR_NOT_IMPLEMENTED
この関数はこのプラットフォームには実装されていません。
OT_ERROR_NO_BUFS
指定した設定を保存するための空き容量がありません。

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

必要に応じて、設定サブシステムの初期化を解除します。

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

otPlatSettingsDelete

otError otPlatSettingsDelete(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex
)

設定ストアから設定を削除します。

設定ストアの aKey によって識別される設定から特定の値を削除します。

なお、基になる実装では、特定のキーに関連付けられたアイテムの順序を維持する必要はありません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aKey
リクエストされた設定に関連付けられているキー。
[in] aIndex
削除する値のインデックス。-1 に設定すると、この aKey のすべての値が削除されます。
戻り値
OT_ERROR_NONE
指定されたキーとインデックスが検出され、正常に削除されました。
OT_ERROR_NOT_FOUND
指定されたキーまたはインデックスが設定ストアで見つかりませんでした。
OT_ERROR_NOT_IMPLEMENTED
この関数はこのプラットフォームには実装されていません。

otPlatSettingsGet

otError otPlatSettingsGet(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex,
  uint8_t *aValue,
  uint16_t *aValueLength
)

設定の値を取得します。

aKey で指定される設定の値を取得し、aValue で示されるメモリに書き込みます。次に、aValueLength で示される整数に長さを書き込みます。aValueLength の初期値は、aValue に書き込む最大バイト数です。

aValueaValueLength を NULL に設定することで、値をフェッチせずにキーの存在を確認するために使用できます。また、aValue のみを NULL に設定することで、設定を取得せずに設定の長さを確認することもできます。

基盤となるストレージの実装で、複数の値を持つ設定の順序を維持する必要はありません。そのような値の順序は、ストアへの書き込みオペレーションの後に変更しても構いません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aKey
リクエストされた設定に関連付けられているキー。
[in] aIndex
取得する特定のアイテムのインデックス。
[out] aValue
設定の値を書き込む場所へのポインタ。設定の有無または長さをテストするだけの場合は NULL に設定できます。
[in,out] aValueLength
値の長さへのポインタ。このポインタは、呼び出されたとき、aValue に書き込める最大値のサイズを含む整数をポイントする必要があります。返されると、設定の実際の長さが書き込まれます。プレゼンス チェックを実行する場合は NULL に設定できます。
戻り値
OT_ERROR_NONE
指定された設定が検出され、正常に取得されました。
OT_ERROR_NOT_FOUND
指定された設定が設定ストアで見つかりませんでした。
OT_ERROR_NOT_IMPLEMENTED
この関数はこのプラットフォームには実装されていません。

otPlatSettingsInit

void otPlatSettingsInit(
  otInstance *aInstance,
  const uint16_t *aSensitiveKeys,
  uint16_t aSensitiveKeysLength
)

必要に応じて、設定サブシステムの初期化を実行します。

安全な領域に保存する必要がある機密性の高い鍵も設定します。

aSensitiveKeys がポイントするメモリは、aInstance が破棄される前に解放してはなりません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aSensitiveKeys
機密性の高いキーのリストを含む配列へのポインタ。aSensitiveKeysLength が 0 の場合にのみ NULL になります。つまり、機密性の高いキーがないことを意味します。
[in] aSensitiveKeysLength
aSensitiveKeys 配列内のエントリ数。

otPlatSettingsSet

otError otPlatSettingsSet(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

設定の値を設定または置換します。

aKey で識別される設定の値を設定または置換します。

この関数を正常に呼び出すと、複数の値を含む無関係な設定が並べ替えられることがあります。

OpenThread スタックは、以前に otPlatSettingsSet() を使用して設定された(単一の値を含む)か、空または完全に削除されている(値を含まない)aKey に対して otPlatSettingsSet() メソッドを使用することを保証します。

プラットフォーム レイヤは、この事実を利用して実装を最適化できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスの構造。
[in] aKey
変更する設定に関連付けられているキー。
[in] aValue
設定の新しい値を読み取る場所へのポインタ。aValueLength がゼロでない場合は、NULL にしてはなりません。
[in] aValueLength
aValue によって示されるデータの長さ。ゼロでも構いません。
戻り値
OT_ERROR_NONE
指定した設定が変更またはステージングされました。
OT_ERROR_NOT_IMPLEMENTED
この関数はこのプラットフォームには実装されていません。
OT_ERROR_NO_BUFS
指定した設定を保存するための空き容量がありません。

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

設定ストアからすべての設定を削除します。

設定ストアからすべての設定を削除し、出荷時の初期状態にリセットします。

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

関連情報

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