הגדרות

המודול הזה כולל את הפשטת הפלטפורמה לצורך אחסון הגדרות לא תנודתי.

סיכום

ספירות

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)
מגדירה את מפתחות ההגדרות.

פונקציות

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
הוספת ערך להגדרה.
otPlatSettingsDeinit(otInstance *aInstance)
void
אם צריך, מתבצע ביטול אתחול של מערכת המשנה של ההגדרות.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
מסירה הגדרה ממאגר ההגדרות.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
מאחזרת את הערך של הגדרה.
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
אם יש צורך, יבצע אתחול כלשהו עבור מערכת המשנה של ההגדרות.
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
מגדירה או מחליפה ערך של הגדרה.
otPlatSettingsWipe(otInstance *aInstance)
void
כל ההגדרות יוסרו ממאגר ההגדרות.

ספירות

טיפוסים אנונימיים

 anonymous enum

מגדירה את מפתחות ההגדרות.

הערה: כשמוסיפים מפתח הגדרות חדש, אם ההגדרות שתואמות למפתח מכילות מידע רגיש לאבטחה, המפתח חייב להוסיף את המפתח למערך aSensitiveKeys שמועבר ב-otPlatSettingsInit().

תכונות
OT_SETTINGS_KEY_ACTIVE_DATASET

מערך נתונים תפעולי פעיל.

OT_SETTINGS_KEY_BORDER_AGENT_ID

מזהה סוכן גבול/נתב ייחודי.

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

תחיליות מקומיות בקישור ב-BR.

OT_SETTINGS_KEY_BR_ULA_PREFIX

קידומת BR ULA.

OT_SETTINGS_KEY_CHILD_INFO

מידע על ילדים.

OT_SETTINGS_KEY_DAD_INFO

מידע על זיהוי כתובות כפולות (DAD).

OT_SETTINGS_KEY_NETWORK_INFO

נתוני הרשת של Thread.

OT_SETTINGS_KEY_PARENT_INFO

פרטי ההורה.

OT_SETTINGS_KEY_PENDING_DATASET

מערך נתונים תפעולי בהמתנה.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

מפתח SLAAC כדי ליצור IID אטום סמנטי.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

פרטי לקוח ה-SRP (כתובת שרת ה-SRP שנבחרה).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

זוג מפתחות ציבורי/פרטי ECDSA של לקוח SRP.

OT_SETTINGS_KEY_SRP_SERVER_INFO

פרטי שרת ה-SRP (יציאת UDP).

פונקציות

otPlatSettingsAdd

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

הוספת ערך להגדרה.

מוסיף את הערך להגדרה שזוהתה על ידי aKey, בלי להחליף ערכים קיימים.

הערה: ההטמעה הבסיסית לא נדרשת כדי לשמור על סדר הפריטים שמשויכים למפתח ספציפי. הערך המוסף יכול להתווסף לסוף, להתחלה או אפילו במקום כלשהו באמצע. גם הסדר של ערכים קיימים עשוי להשתנות.

קריאה תקינה לפונקציה הזו עלולה לגרום לסידור מחדש של הגדרות לא קשורות, עם ערכים מרובים.

מקבץ OpenThread מבטיח להשתמש בשיטת otPlatSettingsAdd() עבור aKey שנוהל בעבר על ידי otPlatSettingsAdd() (כלומר מכיל פריט אחד או יותר), או שהוא ריק ו/או נמחק במלואו (לא מכיל ערך).

שכבת הפלטפורמה יכולה להסתמך על עובדה זו ולהשתמש בה לצורך אופטימיזציה של ההטמעה.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aKey
המפתח שמשויך להגדרה כדי לשנות אותה.
[in] aValue
המצביע על המקום שממנו צריך לקרוא את הערך החדש של ההגדרה. הערך לא חייב להיות NULL אם aValueLength אינו אפס.
[in] aValueLength
אורך הנתונים שאליהם מפנה aValue. יכול להיות אפס.
ערכים מוחזרים
OT_ERROR_NONE
ההגדרה הנתונה נוספה או מדורגת להוספה.
OT_ERROR_NOT_IMPLEMENTED
הפונקציה הזו לא מוטמעת בפלטפורמה הזו.
OT_ERROR_NO_BUFS
לא נותר מקום באחסון של ההגדרה הנתונה.

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

אם צריך, מתבצע ביטול אתחול של מערכת המשנה של ההגדרות.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.

otPlatSettingsDelete

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

מסירה הגדרה ממאגר ההגדרות.

מוחקת ערך ספציפי מההגדרה שזוהתה על ידי aKey ממאגר ההגדרות.

הערה: ההטמעה הבסיסית לא נדרשת כדי לשמור על סדר הפריטים שמשויכים למפתח ספציפי.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aKey
המפתח שמשויך להגדרה המבוקשת.
[in] aIndex
האינדקס של הערך שיש להסיר. אם הוא מוגדר ל-1-, כל הערכים של aKey יוסרו.
ערכים מוחזרים
OT_ERROR_NONE
המפתח והאינדקס הנתונים נמצאו והוסרו בהצלחה.
OT_ERROR_NOT_FOUND
המפתח או האינדקס הנתונים לא נמצאו במאגר ההגדרות.
OT_ERROR_NOT_IMPLEMENTED
הפונקציה הזו לא מוטמעת בפלטפורמה הזו.

otPlatSettingsGet

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

מאחזרת את הערך של הגדרה.

מאחזרת את הערך של ההגדרה שזוהתה על ידי aKey וכותב אותו בזיכרון שאליו מפנה aValue. לאחר מכן היא כותבת את האורך למספר השלם שאליו מפנה aValueLength. הערך הראשוני של aValueLength הוא מספר הבייטים המרבי שיש לכתוב ל-aValue.

אפשר להשתמש בתכונה הזו כדי לבדוק אם מפתח קיים, בלי לאחזר את הערך. לשם כך צריך להגדיר את aValue ואת aValueLength כ-NULL. אפשר גם לבדוק את אורך ההגדרה בלי לאחזר אותה, על ידי הגדרת הערך NULL בלבד ל-aValue.

הערה: ההטמעה של האחסון הבסיסי לא נדרשת לשמירה על סדר ההגדרות עם ערכים מרובים. סדר הערכים האלה עשוי להשתנות לאחר פעולת כתיבה כלשהי בחנות.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aKey
המפתח שמשויך להגדרה המבוקשת.
[in] aIndex
האינדקס של הפריט הספציפי לקבל.
[out] aValue
מצביע למקום שבו צריך לכתוב את ערך ההגדרה. אפשר להגדיר אותו ל-NULL רק כדי לבדוק את הנוכחות או את האורך של הגדרה.
[in,out] aValueLength
מצביע על אורך הערך. כשמתבצעת קריאה, המצביע הזה צריך להצביע על מספר שלם שמכיל את גודל הערך המקסימלי שניתן לכתוב ל-aValue. בחזרה, נכתב האורך בפועל של ההגדרה. אם מבצעים בדיקת נוכחות, אפשר להגדיר את הערך כ-NULL.
ערכים מוחזרים
OT_ERROR_NONE
ההגדרה הנתונה נמצאה ואוחזרה בהצלחה.
OT_ERROR_NOT_FOUND
ההגדרה הנתונה לא נמצאה במאגר ההגדרות.
OT_ERROR_NOT_IMPLEMENTED
הפונקציה הזו לא מוטמעת בפלטפורמה הזו.

otPlatSettingsInit

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

אם יש צורך, יבצע אתחול כלשהו עבור מערכת המשנה של ההגדרות.

מגדירה גם את המפתחות הרגישים שיש לאחסן באזור המאובטח.

חשוב לשים לב שאין לשחרר את הזיכרון שעליו ציינה aSensitiveKeys לפני השמדת aInstance.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aSensitiveKeys
מצביע למערך שמכיל את רשימת המפתחות הרגישים. יכול להיות הערך NULL רק אם הערך של aSensitiveKeysLength הוא 0. כלומר, אין מפתחות רגישים.
[in] aSensitiveKeysLength
מספר הרשומות במערך aSensitiveKeys.

otPlatSettingsSet

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

מגדירה או מחליפה ערך של הגדרה.

המערכת מגדירה או מחליפה את הערך של הגדרה שזוהתה על ידי aKey.

קריאה תקינה לפונקציה הזו עלולה לגרום לסידור מחדש של הגדרות לא קשורות, עם ערכים מרובים.

מקבץ OpenThread מבטיח להשתמש בשיטת otPlatSettingsSet() עבור aKey שהוגדר בעבר באמצעות otPlatSettingsSet() (כלומר מכיל ערך יחיד) או שהוא ריק ו/או נמחק במלואו (לא מכיל ערך).

שכבת הפלטפורמה יכולה להסתמך על עובדה זו ולהשתמש בה לצורך אופטימיזציה של ההטמעה.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aKey
המפתח שמשויך להגדרה כדי לשנות אותה.
[in] aValue
המצביע על המקום שממנו צריך לקרוא את הערך החדש של ההגדרה. הערך לא חייב להיות NULL אם aValueLength אינו אפס.
[in] aValueLength
אורך הנתונים ש-aValue מפנה אליהם. יכול להיות אפס.
ערכים מוחזרים
OT_ERROR_NONE
ההגדרה הנתונה שונתה או הועברה לשלב.
OT_ERROR_NOT_IMPLEMENTED
הפונקציה הזו לא מוטמעת בפלטפורמה הזו.
OT_ERROR_NO_BUFS
לא נותר מקום באחסון של ההגדרה הנתונה.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

כל ההגדרות יוסרו ממאגר ההגדרות.

מוחק את כל ההגדרות ממאגר ההגדרות ומאפס אותו להגדרות היצרן המקוריות שלו.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.

מקורות מידע

המקור של נושאי העזר של OpenThread API הוא קוד המקור, שזמין ב-GitHub. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.