Impostazioni

Questo modulo include l'astrazione della piattaforma per l'archiviazione non volatile delle impostazioni.

Riepilogo

Enumerazioni

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
}
enum
Questa enumerazione definisce le chiavi delle impostazioni.

Functions

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Aggiunge un valore a un'impostazione.
otPlatSettingsDeinit(otInstance *aInstance)
void
Esegue l'eventuale inizializzazione per il sottosistema di impostazioni, se necessario.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
Rimuove un'impostazione dall'archivio delle impostazioni.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
Visualizza il valore di un'impostazione.
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
Esegue l'inizializzazione per il sottosistema di impostazioni, se necessario.
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Imposta o sostituisce il valore di un'impostazione.
otPlatSettingsWipe(otInstance *aInstance)
void
Rimuove tutte le impostazioni dall'archivio delle impostazioni.

Enumerazioni

enumerazione anonima

 anonymous enum

Questa enumerazione definisce le chiavi delle impostazioni.

Nota: quando aggiungi una nuova chiave delle impostazioni, se le impostazioni corrispondenti alla chiave contengono informazioni sensibili sulla sicurezza, lo sviluppatore DEVE aggiungere la chiave all'array aSensitiveKeys che viene passato in otPlatSettingsInit().

Proprietà
OT_SETTINGS_KEY_ACTIVE_DATASET

Set di dati operativo attivo.

OT_SETTINGS_KEY_BR_ULA_PREFIX

Prefisso BR ULA.

OT_SETTINGS_KEY_CHILD_INFO

Informazioni sul bambino.

OT_SETTINGS_KEY_DAD_INFO

Informazioni sul rilevamento degli indirizzi duplicati (DAD).

OT_SETTINGS_KEY_NETWORK_INFO

Cerca nelle informazioni sulla rete.

OT_SETTINGS_KEY_PARENT_INFO

Informazioni sul genitore.

OT_SETTINGS_KEY_PENDING_DATASET

Set di dati operativi in attesa.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

Chiave SLAAC per generare IID semanticamente opaco.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

Le informazioni sul client SRP (indirizzo del server SRP selezionato).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

Coppia di chiavi pubbliche/private per client ECDSA.

OT_SETTINGS_KEY_SRP_SERVER_INFO

Le informazioni sul server SRP (porta UDP).

Functions

OtPlatSettingsAdd

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

Aggiunge un valore a un'impostazione.

Questa funzione aggiunge il valore a un'impostazione identificata da aKey, senza sostituire i valori esistenti.

Tieni presente che l'implementazione sottostante non è necessaria per mantenere l'ordine degli elementi associati a una chiave specifica. Il valore aggiunto può essere aggiunto alla fine, all'inizio o persino al centro. Anche l'ordine dei valori preesistenti può cambiare.

La chiamata corretta di questa funzione può causare il riordinamento delle impostazioni non correlate con più valori.

Lo stack OpenThread garantisce l'utilizzo del metodo otPlatSettingsAdd() per un aKey gestito in precedenza da otPlatSettingsAdd() (ovvero contenente uno o più elementi) oppure vuoto e/o completamente eliminato (non contiene alcun valore).

Il livello piattaforma può fare affidamento su questo aspetto per ottimizzarne l'implementazione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aKey
La chiave associata all'impostazione da modificare.
[in] aValue
Un puntatore da dove leggere il nuovo valore dell'impostazione. NON DEVE essere NULL se aValueLength è diverso da zero.
[in] aValueLength
La lunghezza dei dati a cui si riferisce aValue. Può essere zero.
Valori di ritorno
OT_ERROR_NONE
L'impostazione specificata è stata aggiunta o graduale.
OT_ERROR_NOT_IMPLEMENTED
Questa funzione non è implementata su questa piattaforma.
OT_ERROR_NO_BUFS
Nessuno spazio rimanente per archiviare l'impostazione specificata.

OtPlatImpostazioniDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

Esegue l'eventuale inizializzazione per il sottosistema di impostazioni, se necessario.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.

otPlatSettingsDelete

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

Rimuove un'impostazione dall'archivio delle impostazioni.

Questa funzione elimina un valore specifico dall'impostazione identificata da aKey dall'archivio impostazioni.

Tieni presente che l'implementazione sottostante non è necessaria per mantenere l'ordine degli elementi associati a una chiave specifica.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aKey
La chiave associata all'impostazione richiesta.
[in] aIndex
Indice del valore da rimuovere. Se impostato su -1, tutti i valori per questo aKey saranno rimossi.
Valori di ritorno
OT_ERROR_NONE
La chiave e l'indice specificati sono stati trovati e rimossi.
OT_ERROR_NOT_FOUND
La chiave o l'indice specificato non è stato trovato nell'archivio impostazioni.
OT_ERROR_NOT_IMPLEMENTED
Questa funzione non è implementata su questa piattaforma.

OtPlatSettingsGet

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

Visualizza il valore di un'impostazione.

Questa funzione recupera il valore dell'impostazione identificata da aKey e la scrive nella memoria che punta a aValue. Quindi, scrive la lunghezza dell'intero numero puntato da aValueLength. Il valore iniziale di aValueLength è il numero massimo di byte da scrivere in aValue.

Questa funzione può essere utilizzata per verificare l'esistenza di una chiave senza recuperare il valore impostando aValue e aValueLength su NULL. Puoi anche controllare la lunghezza dell'impostazione senza recuperarla impostando solo aValue su NULL.

Tieni presente che non è necessaria l'implementazione dello spazio di archiviazione sottostante per mantenere l'ordine delle impostazioni con più valori. L'ordine di tali valori POTREBBE cambiare dopo una qualsiasi operazione di scrittura nello store.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aKey
La chiave associata all'impostazione richiesta.
[in] aIndex
L'indice dell'elemento specifico da ottenere.
[out] aValue
Un puntatore su dove deve essere scritto il valore dell'impostazione. Può essere impostato su NULL se è in corso il test della presenza o della lunghezza di un'impostazione.
[in,out] aValueLength
Un puntatore sulla lunghezza del valore. Quando viene chiamato, questo puntatore deve puntare a un numero intero contenente la dimensione massima che può essere scritta in aValue. Al ritorno, viene scritta la lunghezza effettiva dell'impostazione. Può essere impostato su NULL se si esegue un controllo della presenza di persone.
Valori di ritorno
OT_ERROR_NONE
L'impostazione specificata è stata trovata e recuperata.
OT_ERROR_NOT_FOUND
Impossibile trovare l'impostazione specificata nello store delle impostazioni.
OT_ERROR_NOT_IMPLEMENTED
Questa funzione non è implementata su questa piattaforma.

OtPlatSettingsInit

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

Esegue l'inizializzazione per il sottosistema di impostazioni, se necessario.

Questa funzione imposta anche le chiavi sensibili che devono essere memorizzate nell'area protetta.

Tieni presente che la memoria indicata da aSensitiveKeys DEVE non essere rimossa prima dell'eliminazione di aInstance.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aSensitiveKeys
Un puntatore su un array contenente l'elenco di chiavi sensibili. Può essere NULL solo se aSensitiveKeysLength è 0, il che significa che non ci sono chiavi sensibili.
[in] aSensitiveKeysLength
Il numero di voci nell'array aSensitiveKeys.

OtPlatSettingsSet

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

Imposta o sostituisce il valore di un'impostazione.

Questa funzione imposta o sostituisce il valore di un'impostazione identificata da aKey.

La chiamata corretta di questa funzione può causare il riordinamento delle impostazioni non correlate con più valori.

Lo stack OpenThread garantisce l'utilizzo del metodo otPlatSettingsSet() per un aKey impostato in precedenza tramite otPlatSettingsSet() (ovvero contenente un singolo valore) o vuoto e/o completamente eliminato (non contiene alcun valore).

Il livello piattaforma può fare affidamento su questo aspetto per ottimizzarne l'implementazione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aKey
La chiave associata all'impostazione da modificare.
[in] aValue
Un puntatore da dove leggere il nuovo valore dell'impostazione. NON DEVE essere NULL se aValueLength è diverso da zero.
[in] aValueLength
La lunghezza dei dati a cui indirizza un valore. Può essere zero.
Valori di ritorno
OT_ERROR_NONE
L'impostazione specificata è stata modificata o graduale.
OT_ERROR_NOT_IMPLEMENTED
Questa funzione non è implementata su questa piattaforma.
OT_ERROR_NO_BUFS
Nessuno spazio rimanente per archiviare l'impostazione specificata.

Cancellazione impostazioni

void otPlatSettingsWipe(
  otInstance *aInstance
)

Rimuove tutte le impostazioni dall'archivio delle impostazioni.

Questa funzione elimina tutte le impostazioni dall'archivio impostazioni, ripristinandone lo stato di fabbrica iniziale.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.

Risorse

Gli argomenti di riferimento per l'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per ulteriori informazioni o per contribuire alla nostra documentazione, consulta la sezione Risorse.