Einstellungen

Dieses Modul enthält die Plattformabstraktion zum nichtflüchtigen Speichern von Einstellungen.

Zusammenfassung

Aufzählungen

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
Definiert die Schlüssel der Einstellungen.

Funktionen

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Fügt einer Einstellung einen Wert hinzu.
otPlatSettingsDeinit(otInstance *aInstance)
void
Führt gegebenenfalls eine Deinitialisierung des Einstellungssubsystems durch.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
Entfernt eine Einstellung aus dem Einstellungsspeicher.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
Ruft den Wert einer Einstellung ab.
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
Führt gegebenenfalls eine Initialisierung für das Einstellungssubsystem durch.
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Legt den Wert einer Einstellung fest oder ersetzt ihn.
otPlatSettingsWipe(otInstance *aInstance)
void
Alle Einstellungen werden aus dem Einstellungsspeicher entfernt.

Aufzählungen

Anonyme Aufzählung

 anonymous enum

Definiert die Schlüssel der Einstellungen.

Hinweis: Wenn beim Hinzufügen eines neuen Einstellungsschlüssels die entsprechenden Einstellungen sicherheitsrelevante Informationen enthalten, MUSS der Entwickler den Schlüssel dem Array aSensitiveKeys hinzufügen, das in otPlatSettingsInit() übergeben wird.

Attribute
OT_SETTINGS_KEY_ACTIVE_DATASET

Aktives operatives Dataset.

OT_SETTINGS_KEY_BORDER_AGENT_ID

Eindeutige Border-Agent-/Router-ID.

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

Lokale On-Link-Präfixe für BR.

OT_SETTINGS_KEY_BR_ULA_PREFIX

BR ULA-Präfix.

OT_SETTINGS_KEY_CHILD_INFO

Informationen zum untergeordneten Element.

OT_SETTINGS_KEY_DAD_INFO

Informationen zur Duplicate Address Detection (DAD)

OT_SETTINGS_KEY_NETWORK_INFO

Informationen zum Thread-Netzwerk.

OT_SETTINGS_KEY_PARENT_INFO

Informationen zu übergeordneten Elementen.

OT_SETTINGS_KEY_PENDING_DATASET

Ausstehendes operatives Dataset.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

SLAAC-Schlüssel zum Generieren einer semantisch intransparenten IID.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

Die SRP-Clientinformationen (ausgewählte SRP-Serveradresse).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

Paar aus öffentlichem/privatem ECDSA-Client für den SRP-Client.

OT_SETTINGS_KEY_SRP_SERVER_INFO

Die SRP-Serverinformationen (UDP-Port).

Funktionen

otPlatSettingsAdd

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

Fügt einer Einstellung einen Wert hinzu.

Fügt den Wert einer durch aKey angegebenen Einstellung hinzu, ohne vorhandene Werte zu ersetzen.

Die zugrunde liegende Implementierung ist nicht erforderlich, um die Reihenfolge der mit einem bestimmten Schlüssel verknüpften Elemente beizubehalten. Der Mehrwert kann am Ende, am Anfang oder sogar irgendwo in der Mitte eingefügt werden. Auch die Reihenfolge vorhandener Werte kann sich ändern.

Ein erfolgreicher Aufruf dieser Funktion kann dazu führen, dass Einstellungen ohne Bezug mit mehreren Werten neu angeordnet werden.

Der OpenThread-Stack garantiert die Verwendung der otPlatSettingsAdd()-Methode für eine aKey, die entweder zuvor von otPlatSettingsAdd() verwaltet wurde (d.h. enthält ein oder mehrere Elemente) oder leer und/oder vollständig gelöscht ist (enthält keinen Wert).

Auf der Plattformebene kann diese Information zur Optimierung der Implementierung herangezogen werden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aKey
Der Schlüssel, der mit der zu ändernden Einstellung verknüpft ist.
[in] aValue
Ein Zeiger, aus dem der neue Wert der Einstellung gelesen werden soll. DARF NICHT NULL sein, wenn aValueLength ungleich null ist.
[in] aValueLength
Die Länge der Daten, auf die aValue zeigt. Kann null sein.
Rückgabewerte
OT_ERROR_NONE
Die angegebene Einstellung wurde hinzugefügt oder für die Staging-Phase hinzugefügt.
OT_ERROR_NOT_IMPLEMENTED
Diese Funktion ist auf dieser Plattform nicht implementiert.
OT_ERROR_NO_BUFS
Zum Speichern der Einstellung ist kein Speicherplatz mehr verfügbar.

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

Führt gegebenenfalls eine Deinitialisierung des Einstellungssubsystems durch.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.

otPlatSettingsDelete

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

Entfernt eine Einstellung aus dem Einstellungsspeicher.

Löscht einen bestimmten Wert aus der Einstellung, die durch einen Schlüssel aus dem Einstellungsspeicher identifiziert wird.

Die zugrunde liegende Implementierung ist nicht erforderlich, um die Reihenfolge der mit einem bestimmten Schlüssel verknüpften Elemente beizubehalten.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aKey
Der Schlüssel, der mit der angeforderten Einstellung verknüpft ist.
[in] aIndex
Der Index des zu entfernenden Werts. Wenn die Richtlinie auf -1 gesetzt ist, werden alle Werte für aKey entfernt.
Rückgabewerte
OT_ERROR_NONE
Der angegebene Schlüssel und Index wurde gefunden und entfernt.
OT_ERROR_NOT_FOUND
Der angegebene Schlüssel oder Index wurde im Einstellungsspeicher nicht gefunden.
OT_ERROR_NOT_IMPLEMENTED
Diese Funktion ist auf dieser Plattform nicht implementiert.

otPlatSettingsGet

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

Ruft den Wert einer Einstellung ab.

Ruft den Wert der durch aKey identifizierten Einstellung ab und schreibt ihn in den Speicher, auf den ein Wert verweist. Die Länge wird dann in die Ganzzahl geschrieben, auf die aValueLength verweist. Der Anfangswert von aValueLength ist die maximale Anzahl von Byte, die in aValue geschrieben werden sollen.

Kann verwendet werden, um zu prüfen, ob ein Schlüssel vorhanden ist, ohne den Wert abzurufen, indem aValue und aValueLength auf NULL gesetzt werden. Sie können die Länge der Einstellung auch prüfen, ohne sie abzurufen, indem Sie nur aValue auf NULL setzen.

Beachten Sie, dass die zugrunde liegende Speicherimplementierung nicht erforderlich ist, um die Reihenfolge der Einstellungen mit mehreren Werten beizubehalten. Die Reihenfolge dieser Werte KANN sich nach JEDEM Schreibvorgang in den Speicher ändern.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aKey
Der Schlüssel, der mit der angeforderten Einstellung verknüpft ist.
[in] aIndex
Index des abzurufenden Elements
[out] aValue
Ein Zeiger auf die Stelle, an der der Wert der Einstellung geschrieben werden soll. Kann auf NULL gesetzt werden, wenn nur das Vorhandensein oder die Länge einer Einstellung getestet wird.
[in,out] aValueLength
Ein Zeiger auf die Länge des Werts. Wenn dieser Zeiger aufgerufen wird, sollte er auf eine Ganzzahl verweisen, die die maximale Wertgröße enthält, die in aValue geschrieben werden kann. Zurückgegeben wird die tatsächliche Länge der Einstellung. Dieser kann bei einer Anwesenheitsprüfung auf NULL gesetzt werden.
Rückgabewerte
OT_ERROR_NONE
Die angegebene Einstellung wurde gefunden und abgerufen.
OT_ERROR_NOT_FOUND
Die angegebene Einstellung wurde im Einstellungsspeicher nicht gefunden.
OT_ERROR_NOT_IMPLEMENTED
Diese Funktion ist auf dieser Plattform nicht implementiert.

otPlatSettingsInit

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

Führt gegebenenfalls eine Initialisierung für das Einstellungssubsystem durch.

Außerdem werden die vertraulichen Schlüssel festgelegt, die im sicheren Bereich aufbewahrt werden sollen.

Der von aSensitiveKeys angegebene Arbeitsspeicher DARF nicht freigegeben werden, bevor aInstance zerstört wurde.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aSensitiveKeys
Ein Zeiger auf ein Array, das die Liste sensibler Schlüssel enthält. Kann nur NULL sein, wenn aSensitiveKeysLength 0 ist, was bedeutet, dass keine sensiblen Schlüssel vorhanden sind.
[in] aSensitiveKeysLength
Die Anzahl der Einträge im Array aSensitiveKeys.

otPlatSettingsSet

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

Legt den Wert einer Einstellung fest oder ersetzt ihn.

Legt den Wert einer durch aKey identifizierten Einstellung fest oder ersetzt ihn.

Ein erfolgreicher Aufruf dieser Funktion kann dazu führen, dass Einstellungen ohne Bezug mit mehreren Werten neu angeordnet werden.

Der OpenThread-Stack garantiert die Verwendung der otPlatSettingsSet()-Methode für eine aKey, die entweder zuvor mit otPlatSettingsSet() festgelegt wurde (d.h., sie enthält einen einzelnen Wert) oder leer und/oder vollständig gelöscht ist (enthält keinen Wert).

Auf der Plattformebene kann diese Information zur Optimierung der Implementierung herangezogen werden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aKey
Der Schlüssel, der mit der zu ändernden Einstellung verknüpft ist.
[in] aValue
Ein Zeiger, aus dem der neue Wert der Einstellung gelesen werden soll. DARF NICHT NULL sein, wenn aValueLength ungleich null ist.
[in] aValueLength
Die Länge der Daten, auf die ein Wert zeigt. Kann null sein.
Rückgabewerte
OT_ERROR_NONE
Die angegebene Einstellung wurde geändert oder bereitgestellt.
OT_ERROR_NOT_IMPLEMENTED
Diese Funktion ist auf dieser Plattform nicht implementiert.
OT_ERROR_NO_BUFS
Zum Speichern der Einstellung ist kein Speicherplatz mehr verfügbar.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

Alle Einstellungen werden aus dem Einstellungsspeicher entfernt.

Dadurch werden alle Einstellungen aus dem Einstellungsspeicher gelöscht und das Gerät auf die Werkseinstellungen zurückgesetzt.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.