Setelan

Modul ini mencakup abstraksi platform untuk penyimpanan setelan non-volatil.

Ringkasan

Enumerasi

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
Menentukan kunci setelan.

Fungsi

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Menambahkan nilai ke setelan.
otPlatSettingsDeinit(otInstance *aInstance)
void
Melakukan de-inisialisasi untuk subsistem setelan, jika perlu.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
Menghapus setelan dari penyimpanan setelan.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
Mengambil nilai setelan.
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
Melakukan inisialisasi untuk subsistem setelan, jika perlu.
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Menetapkan atau mengganti nilai setelan.
otPlatSettingsWipe(otInstance *aInstance)
void
Menghapus semua setelan dari penyimpanan setelan.

Enumerasi

enum anonim

 anonymous enum

Menentukan kunci setelan.

Catatan: Saat menambahkan kunci setelan baru, jika setelan yang sesuai dengan kunci berisi informasi sensitif keamanan, developer HARUS menambahkan kunci ke array aSensitiveKeys yang diteruskan di otPlatSettingsInit().

Properti
OT_SETTINGS_KEY_ACTIVE_DATASET

Set Data Operasional Aktif.

OT_SETTINGS_KEY_BORDER_AGENT_ID

Agen Batas/ID Router Unik.

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

Awalan on-link lokal BR.

OT_SETTINGS_KEY_BR_ULA_PREFIX

Awalan BR ULA.

OT_SETTINGS_KEY_CHILD_INFO

Informasi anak.

OT_SETTINGS_KEY_DAD_INFO

Informasi Deteksi Alamat Duplikat (DAD).

OT_SETTINGS_KEY_NETWORK_INFO

Informasi jaringan thread.

OT_SETTINGS_KEY_PARENT_INFO

Informasi orang tua.

OT_SETTINGS_KEY_PENDING_DATASET

Set Data Operasional Tertunda.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

Kunci SLAAC untuk membuat IID buram secara semantik.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

Info klien SRP (alamat server SRP yang dipilih).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

Pasangan kunci publik/pribadi ECDSA klien SRP.

OT_SETTINGS_KEY_SRP_SERVER_INFO

Info server SRP (port UDP).

Fungsi

otPlatSettingsAdd

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

Menambahkan nilai ke setelan.

Menambahkan nilai ke setelan yang diidentifikasi oleh aKey, tanpa mengganti nilai yang ada.

Perhatikan bahwa implementasi yang mendasarinya tidak diperlukan untuk mempertahankan urutan item yang terkait dengan kunci tertentu. Nilai tambah dapat ditambahkan ke akhir, awal, atau bahkan di tengah-tengah. Urutan nilai yang sudah ada sebelumnya juga dapat berubah.

Berhasil memanggil fungsi ini dapat menyebabkan setelan yang tidak terkait dengan beberapa nilai diurutkan ulang.

Stack OpenThread menjamin menggunakan metode otPlatSettingsAdd() untuk aKey yang sebelumnya dikelola oleh otPlatSettingsAdd() (yaitu, berisi satu atau beberapa item) atau kosong dan/atau dihapus sepenuhnya (tidak berisi nilai).

Lapisan platform dapat mengandalkan dan menggunakan fakta ini untuk mengoptimalkan implementasinya.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aKey
Kunci yang terkait dengan setelan yang akan diubah.
[in] aValue
Pointer ke lokasi nilai baru setelan harus dibaca. HARUS TIDAK NULL jika aValueLength bukan nol.
[in] aValueLength
Panjang data yang ditunjuk oleh aValue. Mungkin nol.
Nilai Pengembalian
OT_ERROR_NONE
Setelan yang ditentukan telah ditambahkan atau bertahap untuk ditambahkan.
OT_ERROR_NOT_IMPLEMENTED
Fungsi ini tidak diterapkan di platform ini.
OT_ERROR_NO_BUFS
Tidak ada ruang yang tersisa untuk menyimpan setelan yang diberikan.

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

Melakukan de-inisialisasi untuk subsistem setelan, jika perlu.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.

otPlatSettingsDelete

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

Menghapus setelan dari penyimpanan setelan.

Menghapus nilai tertentu dari setelan yang diidentifikasi oleh aKey dari penyimpanan setelan.

Perhatikan bahwa implementasi yang mendasarinya tidak diperlukan untuk mempertahankan urutan item yang terkait dengan kunci tertentu.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aKey
Kunci yang terkait dengan setelan yang diminta.
[in] aIndex
Indeks nilai yang akan dihapus. Jika ditetapkan ke -1, semua nilai untuk aKey ini akan dihapus.
Nilai Pengembalian
OT_ERROR_NONE
Kunci dan indeks yang diberikan berhasil ditemukan dan dihapus.
OT_ERROR_NOT_FOUND
Kunci atau indeks yang diberikan tidak ditemukan di penyimpanan setelan.
OT_ERROR_NOT_IMPLEMENTED
Fungsi ini tidak diterapkan di platform ini.

otPlatSettingsGet

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

Mengambil nilai setelan.

Mengambil nilai setelan yang diidentifikasi oleh aKey dan menulisnya ke memori yang ditunjukkan oleh aValue. Kemudian, kode ini akan menulis panjang ke bilangan bulat yang ditunjukkan oleh aValueLength. Nilai awal aValueLength adalah jumlah byte maksimum yang akan ditulis ke aValue.

Dapat digunakan untuk memeriksa keberadaan kunci tanpa mengambil nilai dengan menetapkan aValue dan aValueLength ke NULL. Anda juga dapat memeriksa panjang pengaturan tanpa mengambilnya dengan hanya menetapkan aValue ke NULL.

Perhatikan bahwa implementasi penyimpanan yang mendasarinya tidak diperlukan untuk mempertahankan urutan setelan dengan beberapa nilai. Urutan nilai tersebut DAPAT berubah setelah operasi tulis APA PUN ke toko.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aKey
Kunci yang terkait dengan setelan yang diminta.
[in] aIndex
Indeks item spesifik yang akan didapatkan.
[out] aValue
Pointer tempat nilai setelan harus ditulis. Dapat disetel ke NULL jika hanya menguji ada tidaknya atau lamanya pengaturan.
[in,out] aValueLength
Pointer panjang nilai. Saat dipanggil, pointer ini harus mengarah ke bilangan bulat yang berisi ukuran nilai maksimum yang dapat ditulis ke aValue. Sebagai hasilnya, panjang setelan sebenarnya akan ditulis. Ini dapat ditetapkan ke NULL jika melakukan pemeriksaan kehadiran.
Nilai Pengembalian
OT_ERROR_NONE
Setelan yang diberikan berhasil ditemukan dan diambil.
OT_ERROR_NOT_FOUND
Setelan yang diberikan tidak ditemukan di penyimpanan setelan.
OT_ERROR_NOT_IMPLEMENTED
Fungsi ini tidak diterapkan di platform ini.

otPlatSettingsInit

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

Melakukan inisialisasi untuk subsistem setelan, jika perlu.

Juga menetapkan kunci sensitif yang harus disimpan di area aman.

Perhatikan bahwa memori yang ditunjukkan oleh aSensitiveKeys HARUS tidak dirilis sebelum aInstance dihapus.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aSensitiveKeys
Pointer ke array yang berisi daftar kunci sensitif. Mungkin NULL hanya jika aSensitiveKeysLength adalah 0, yang berarti tidak ada kunci sensitif.
[in] aSensitiveKeysLength
Jumlah entri dalam array aSensitiveKeys.

otPlatSettingsSet

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

Menetapkan atau mengganti nilai setelan.

Menetapkan atau mengganti nilai setelan yang diidentifikasi oleh aKey.

Berhasil memanggil fungsi ini dapat menyebabkan setelan yang tidak terkait dengan beberapa nilai diurutkan ulang.

Stack OpenThread menjamin menggunakan metode otPlatSettingsSet() untuk aKey yang telah ditetapkan sebelumnya menggunakan otPlatSettingsSet() (yaitu, berisi nilai tunggal) atau kosong dan/atau dihapus sepenuhnya (tidak berisi nilai).

Lapisan platform dapat mengandalkan dan menggunakan fakta ini untuk mengoptimalkan implementasinya.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aKey
Kunci yang terkait dengan setelan yang akan diubah.
[in] aValue
Pointer ke lokasi nilai baru setelan harus dibaca. HARUS TIDAK NULL jika aValueLength bukan nol.
[in] aValueLength
Panjang data yang ditunjukkan oleh aValue. Mungkin nol.
Nilai Pengembalian
OT_ERROR_NONE
Setelan yang ditentukan telah diubah atau bertahap.
OT_ERROR_NOT_IMPLEMENTED
Fungsi ini tidak diterapkan di platform ini.
OT_ERROR_NO_BUFS
Tidak ada ruang yang tersisa untuk menyimpan setelan yang diberikan.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

Menghapus semua setelan dari penyimpanan setelan.

Menghapus semua setelan dari penyimpanan setelan, meresetnya ke setelan awal pabrik.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.

Referensi

Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.