Configurações

Este módulo inclui a abstração da plataforma para armazenamento não volátil de configurações.

Resumo

Enumerações

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
Define as chaves das configurações.

remotas

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Adiciona um valor a uma configuração.
otPlatSettingsDeinit(otInstance *aInstance)
void
Executa qualquer desinicialização do subsistema de configurações, se necessário.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
Remove uma configuração do armazenamento.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
Busca o valor de uma configuração.
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
Executa qualquer inicialização para o subsistema de configurações, se necessário.
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Define ou substitui o valor de uma configuração.
otPlatSettingsWipe(otInstance *aInstance)
void
Remove todas as configurações do armazenamento de configurações.

Enumerações

enumeração anônima

 anonymous enum

Define as chaves das configurações.

Observação: ao adicionar uma nova chave de configurações, se as configurações correspondentes a ela tiverem informações sensíveis de segurança, o desenvolvedor PRECISA adicionar a chave à matriz aSensitiveKeys transmitida em otPlatSettingsInit().

Propriedades
OT_SETTINGS_KEY_ACTIVE_DATASET

conjunto de dados operacional ativo.

OT_SETTINGS_KEY_BORDER_AGENT_ID

ID exclusivo do agente de borda/roteador.

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

Prefixos locais no link BR.

OT_SETTINGS_KEY_BR_ULA_PREFIX

Prefixo ULA BR.

OT_SETTINGS_KEY_CHILD_INFO

Informações do filho.

OT_SETTINGS_KEY_DAD_INFO

Informações de detecção de endereço duplicado (DAD, na sigla em inglês).

OT_SETTINGS_KEY_NETWORK_INFO

Informações da rede Thread.

OT_SETTINGS_KEY_PARENT_INFO

Informações de pai/mãe.

OT_SETTINGS_KEY_PENDING_DATASET

Conjunto de dados operacional pendente.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

Chave SLAAC para gerar um IID semanticamente opaco.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

Informações do cliente SRP (endereço do servidor SRP selecionado).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

Par de chaves pública/privada ECDSA do cliente SRP.

OT_SETTINGS_KEY_SRP_SERVER_INFO

As informações do servidor SRP (porta UDP).

remotas

otPlatSettingsAdd

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

Adiciona um valor a uma configuração.

Adiciona o valor a uma configuração identificada por aKey, sem substituir os valores existentes.

Observe que a implementação subjacente não é necessária para manter a ordem dos itens associados a uma chave específica. O valor agregado pode ser adicionado no final, no início ou em algum lugar no meio. A ordem dos valores pré-existentes também pode mudar.

Chamar essa função pode fazer com que configurações não relacionadas com valores múltiplos sejam reordenadas.

A pilha do OpenThread garante o uso do método otPlatSettingsAdd() para um aKey que foi gerenciado anteriormente por otPlatSettingsAdd() (ou seja, que contém um ou mais itens) ou está vazio e/ou totalmente excluído (não contém valor).

A camada de plataforma pode confiar e usar esse fato para otimizar a implementação.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aKey
A chave associada à configuração a ser alterada.
[in] aValue
Um ponteiro para o local de onde o novo valor da configuração precisa ser lido. NÃO pode ser NULL se aValueLength for diferente de zero.
[in] aValueLength
O comprimento dos dados apontados por aValue. Pode ser zero.
Valores de retorno
OT_ERROR_NONE
A configuração determinada foi adicionada ou preparada para ser adicionada.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.
OT_ERROR_NO_BUFS
Não há mais espaço para armazenar a configuração especificada.

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

Executa qualquer desinicialização do subsistema de configurações, se necessário.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.

otPlatSettingsDelete

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

Remove uma configuração do armazenamento.

Exclui um valor específico da configuração identificada por aKey do armazenamento de configurações.

Observe que a implementação subjacente não é necessária para manter a ordem dos itens associados a uma chave específica.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aKey
A chave associada à configuração solicitada.
[in] aIndex
O índice do valor a ser removido. Se definido como -1, todos os valores para este aKey serão removidos.
Valores de retorno
OT_ERROR_NONE
A chave e o índice fornecidos foram encontrados e removidos com sucesso.
OT_ERROR_NOT_FOUND
A chave ou o índice fornecidos não foram encontrados no armazenamento da configuração.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.

otPlatSettingsGet

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

Busca o valor de uma configuração.

Busca o valor da configuração identificada por aKey e o grava na memória apontada por aValue. Em seguida, ele grava o comprimento no número inteiro apontado por aValueLength. O valor inicial de aValueLength é o número máximo de bytes a serem gravados em aValue.

Pode ser usado para verificar a existência de uma chave sem buscar o valor, definindo aValue e aValueLength como NULL. Também é possível verificar o comprimento da configuração sem buscá-la definindo somente aValue como NULL.

Observe que a implementação do armazenamento subjacente não é necessária para manter a ordem das configurações com diversos valores. A ordem desses valores PODE mudar após QUALQUER operação de gravação no armazenamento.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aKey
A chave associada à configuração solicitada.
[in] aIndex
O índice do item específico a ser recebido.
[out] aValue
Um ponteiro para o local onde o valor da configuração precisa ser gravado. Pode ser definido como NULL se apenas testar a presença ou o comprimento de uma configuração.
[in,out] aValueLength
Um ponteiro para o comprimento do valor. Quando chamado, esse ponteiro precisa apontar para um número inteiro que contém o tamanho máximo do valor que pode ser gravado em aValue. Por sua vez, o tamanho real da configuração é escrito. Pode ser definido como NULL se estiver executando uma verificação de presença.
Valores de retorno
OT_ERROR_NONE
A configuração fornecida foi encontrada e buscada com sucesso.
OT_ERROR_NOT_FOUND
A configuração especificada não foi encontrada no armazenamento.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.

otPlatSettingsInit

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

Executa qualquer inicialização para o subsistema de configurações, se necessário.

Também define as chaves sensíveis que precisam ser armazenadas na área segura.

Observe que a memória apontada por aSensitiveKeys não pode ser liberada antes que aInstance seja destruída.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aSensitiveKeys
Um ponteiro para uma matriz que contém a lista de chaves sensíveis. Poderá ser NULL apenas se aSensitiveKeysLength for 0, o que significa que não há chaves confidenciais.
[in] aSensitiveKeysLength
O número de entradas na matriz aSensitiveKeys.

otPlatSettingsSet

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

Define ou substitui o valor de uma configuração.

Define ou substitui o valor de uma configuração identificada por aKey.

Chamar essa função pode fazer com que configurações não relacionadas com valores múltiplos sejam reordenadas.

A pilha do OpenThread garante o uso do método otPlatSettingsSet() para um aKey que foi definido anteriormente usando otPlatSettingsSet() (ou seja, que contém um único valor) ou está vazio e/ou totalmente excluído (não contém valor).

A camada de plataforma pode confiar e usar esse fato para otimizar a implementação.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aKey
A chave associada à configuração a ser alterada.
[in] aValue
Um ponteiro para o local de onde o novo valor da configuração precisa ser lido. NÃO pode ser NULL se aValueLength for diferente de zero.
[in] aValueLength
O comprimento dos dados apontados por aValue. Pode ser zero.
Valores de retorno
OT_ERROR_NONE
a configuração determinada foi alterada ou preparada.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.
OT_ERROR_NO_BUFS
Não há mais espaço para armazenar a configuração especificada.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

Remove todas as configurações do armazenamento de configurações.

Exclui todas as configurações do repositório de configurações, redefinindo-o para o estado inicial de fábrica.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.

Recursos

Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.