O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Configurações

Este módulo inclui a abstração de 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
}
tipo enumerado
Essa enumeração define as chaves das configurações.

Funções

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Adiciona um valor a uma configuração.
otPlatSettingsDeinit(otInstance *aInstance)
void
Realiza qualquer inicialização do subsistema de configurações, se necessário.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
Remove uma configuração do armazenamento de configurações.
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 do 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

Essa enumeração define as chaves das configurações.

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

Propriedades
OT_SETTINGS_KEY_ACTIVE_DATASET

Conjunto de dados operacional ativo.

OT_SETTINGS_KEY_BORDER_AGENT_ID

ID de roteador/agente de borda exclusivo.

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

Prefixos locais do link BR.

OT_SETTINGS_KEY_BR_ULA_PREFIX

BR ULA.

OT_SETTINGS_KEY_CHILD_INFO

Informações filhas.

OT_SETTINGS_KEY_DAD_INFO

Informações de detecção de endereço duplicado (DAD).

OT_SETTINGS_KEY_NETWORK_INFO

Informações da rede Thread.

OT_SETTINGS_KEY_PARENT_INFO

Informações do responsável.

OT_SETTINGS_KEY_PENDING_DATASET

Conjunto de dados operacional pendente.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

Chave SLAAC para gerar IID semanticamente opaca.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

As 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).

Funções

Configurações de adição de configurações

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

Adiciona um valor a uma configuração.

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

A implementação não é necessária para manter a ordem dos itens associados a uma chave específica. O valor adicionado pode ser adicionado ao final, ao início ou até mesmo no meio. A ordem dos valores preexistentes também pode mudar.

Chamar essa função pode fazer com que configurações não relacionadas com vários valores sejam reordenadas.

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

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

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aKey
A chave associada à configuração que será alterada.
[in] aValue
Um ponteiro para ler o novo valor da configuração. NÃO DEVE ser NULL se aValueLength for diferente de zero.
[in] aValueLength
O tamanho dos dados apontados por aValue. Pode ser zero.
Valores de retorno
OT_ERROR_NONE
A configuração especificada 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á espaço disponível para armazenar a configuração especificada.

OtPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

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

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

OpPlatSettingsDelete

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

Remove uma configuração do armazenamento de configurações.

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

A implementação 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 aKey serão removidos.
Valores de retorno
OT_ERROR_NONE
A chave e o índice fornecidos foram encontrados e removidos.
OT_ERROR_NOT_FOUND
A chave ou o índice especificado não foi encontrado no armazenamento de configurações.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.

Configurações de otPlatSettingsGet

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

Busca o valor de uma configuração.

Essa função busca o valor da configuração identificada por aKey e a 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.

Essa função pode ser usada 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 apenas aValue para NULL.

A implementação de armazenamento subjacente não é necessária para manter a ordem das configurações com vários 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 onde o valor da configuração deve ser escrito. Pode ser definido como NULL se for testar apenas a presença ou duração 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 contendo o tamanho máximo de valor que pode ser gravado em aValue. No retorno, a duração real da configuração é gravada. Isso pode ser definido como NULL se uma verificação de presença for realizada.
Valores de retorno
OT_ERROR_NONE
A configuração especificada foi encontrada e recuperada.
OT_ERROR_NOT_FOUND
A configuração especificada não foi encontrada no armazenamento de configurações.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.

OpPlatSettingsInit

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

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

Essa função também define as chaves confidenciais que precisam ser armazenadas na área segura.

A memória apontada por aSensitiveKeys NÃO PODE ser liberada antes que aInstance seja destruído.

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

Configuração de configurações otPlat

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

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

Essa funçã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 vários valores sejam reordenadas.

A pilha do OpenThread garante o uso do método otPlatSettingsSet() para um aKey que foi definido anteriormente usando otPlatSettingsSet() (ou seja, 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 sua implementação.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aKey
A chave associada à configuração que será alterada.
[in] aValue
Um ponteiro para ler o novo valor da configuração. NÃO DEVE ser NULL se aValueLength for diferente de zero.
[in] aValueLength
O tamanho dos dados apontados por aValue. Pode ser zero.
Valores de retorno
OT_ERROR_NONE
A configuração especificada foi alterada ou testada.
OT_ERROR_NOT_IMPLEMENTED
Esta função não está implementada nesta plataforma.
OT_ERROR_NO_BUFS
Não há espaço disponível para armazenar a configuração especificada.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

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

Essa função exclui todas as configurações do armazenamento de configurações, redefinindo-a 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.