Google 致力于为黑人社区推动种族平等。查看具体行动

设置

此模块包含设置的非易失性存储平台抽象。

摘要

枚举

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_RESERVED = 0x0006,
  OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY = 0x0007,
  OT_SETTINGS_KEY_DAD_INFO = 0x0008,
  OT_SETTINGS_KEY_LEGACY_OMR_PREFIX = 0x0009,
  OT_SETTINGS_KEY_ON_LINK_PREFIX = 0x000a,
  OT_SETTINGS_KEY_SRP_ECDSA_KEY = 0x000b,
  OT_SETTINGS_KEY_SRP_CLIENT_INFO = 0x000c,
  OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d,
  OT_SETTINGS_KEY_LEGACY_NAT64_PREFIX = 0x000e,
  OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f
}
枚举
此枚举定义了设置的键。

函数

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

此枚举定义了设置的键。

注意:在添加新的设置密钥时,如果与该密钥对应的设置包含安全敏感信息,开发者必须将该密钥添加到 kSensitiveKeys 数组中。

属性
OT_SETTINGS_KEY_ACTIVE_DATASET

活跃的操作数据集。

OT_SETTINGS_KEY_BR_ULA_PREFIX

BR ULA 前缀。

OT_SETTINGS_KEY_CHILD_INFO

子级信息。

OT_SETTINGS_KEY_DAD_INFO

地址检测 (DAD) 信息重复。

OT_SETTINGS_KEY_LEGACY_NAT64_PREFIX

保留。旧 NAT64 前缀。

OT_SETTINGS_KEY_LEGACY_OMR_PREFIX

保留。旧版网状可路由 (OMR) 前缀。

OT_SETTINGS_KEY_NETWORK_INFO

线程网络信息。

OT_SETTINGS_KEY_ON_LINK_PREFIX

基础架构链接的链路前缀。

OT_SETTINGS_KEY_PARENT_INFO

家长信息。

OT_SETTINGS_KEY_PENDING_DATASET

待处理的操作数据集。

OT_SETTINGS_KEY_RESERVED

已预留(之前是自动启动)。

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 标识的设置中,而不会替换任何现有值。

请注意,底层实现无需维护与特定键相关联的项的顺序。添加的值可能会添加到末尾、开头,甚至是中间位置。任何预先存在的值的顺序也可能会发生变化。

成功调用此函数可能会导致对多个值不相关的设置进行重新排序。

详情
参数
[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 的最大字节数。

此函数用于将 aValue 和 aValueLength 设置为 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 标识的设置的值。如果之前有多个与 aKey 关联的值,则所有值都将被删除并替换为这一个条目。

成功调用此函数可能会导致对多个值不相关的设置进行重新排序。

详情
参数
[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 上找到。 如需了解详情或为我们的文档做贡献,请参阅资源