מנהל גבולות גבול

מודול זה כולל הגדרות הקשורות למנהל גבולות גבול.

סיכום

כדי להשתמש בכל הפונקציות במודול הזה, צריך להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Border Routing Manager מטפל בניתוב דו-כיווני בין רשת Thread לבין קישור תשתית סמוך (AIL).

הוא פולט הודעות ICMRv6 ND Router פרסומת (RA) ב-AIL כדי לפרסם תחיליות קישור וניתובים. הוא גם מעבד הודעות RA מהתשתית ומשקף את הקידומות שנמצאו ב-Thread Network Data, כדי להבטיח שמכשירים ברשת Thread יכולים להגיע ל-AIL דרך נתב הגבולות.

מנהל הניתוב מנהל את הקידומת של ניתוב מחוץ לרשת (OMR) בנתוני הרשת של Thread, שמגדירה את מכשירי Thread עם כתובת IPv6 המתאימה לניתוב מחוץ לרשת. היא מודיעה על היכולת להגיע לקידומת הזו ב-AIL על ידי הכללתה בהודעות RA שנפלטו כאפשרות של מסלול IPv6 (RIO).

מנהל הניתוב גם עוקב אחר קידומת הקישור ומוסיף אותה ברשת התשתית. אם נתב ב-AIL כבר מספק הודעות RA שמכילות אפשרות מידע של קידומת IPv6 (PIO), שמאפשרת למכשירי IPv6 בקישור להגדיר באופן עצמאי את כתובת ה-IPv6 של הניתוב שניתן לנתב, הכתובת יכולה לשמש מכשירי Thread כדי להגיע אל AIL. אם נתב גבול לא מוצא הודעת RA כזו ב-AIL, נוצרת לו קידומת ULA בקישור. בעקבות זאת, היא מתפרסמת ב-AIL בהודעות ה-RA המופצות.

מספור

otBorderRoutingDhcp6PdState{
  OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED,
  OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED,
  OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
}
טיפוסים בני מנייה (enum)
המספור הזה מייצג את המצב של הענקת הגישה לקידומת DHCPv6.
otBorderRoutingState{
  OT_BORDER_ROUTING_STATE_UNINITIALIZED,
  OT_BORDER_ROUTING_STATE_DISABLED,
  OT_BORDER_ROUTING_STATE_STOPPED,
  OT_BORDER_ROUTING_STATE_RUNNING
}
טיפוסים בני מנייה (enum)
מייצג את המצב של מנהל גבולות גבול.

סוג שגיאות

otBorderRoutingPrefixTableEntry typedef
מייצג רשומה מטבלת הקידומת שהתגלתה.
otBorderRoutingPrefixTableIterator typedef
מייצג איטרציה כדי לחזור על עצמה דרך טבלת הקידומת שגילתה נתב גבולות.

פונקציות

otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
void
ניקוי ערך העדפה שהוגדר בעבר עבור אפשרויות פרטי מסלול שפורסמו.
otBorderRoutingClearRoutePreference(otInstance *aInstance)
void
ניקוי של ערך העדפה שהוגדר בעבר למסלולים שפורסמו בנתוני הרשת.
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
void
הפעלה / השבתה של האצלת קידומת DHCPv6.
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
קבלת קידומת NAT64 מועדפת.
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
מקבל את קידומת ה-OMR-Routable (OMR) המועדפת כרגע.
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
מקבל את קידומת הקישור הנוכחית המועדפת.
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
מקבלים את קידומת NAT64 המקומית של נתב הגבולות.
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
הוא חוזר על הערכים בטבלת הקידומת שהתגלתה של נתב הגבול.
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
מקבלים את הקידומת המקומית Off-Mesh-Routable (OMR), לדוגמה: fdfc:1ff5:1512:5622::/64.
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
קבלת הקידומת של On-Link המקומית לקישור התשתית הסמוך.
otBorderRoutingGetPdOmrPrefix(otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo)
קבלת קידומת DHCPv6 לקידומת (PD) שסופקה עם קידומת Out-mesh-routable (OMR).
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
קבלת ההעדפה הנוכחית בעת פרסום אפשרויות מידע לגבי המסלול (RIO) בהודעות המודעות של הנתב שנשלחות בקישור לתשתית.
otBorderRoutingGetRoutePreference(otInstance *aInstance)
קבלת ההעדפה הנוכחית למסלולים שפורסמו בנתוני הרשת.
otBorderRoutingGetState(otInstance *aInstance)
מקבל את המצב הנוכחי של מנהל גבולות גבול.
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
מפעיל את מנהל גבולות הגבול בממשק התשתית הנתון.
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
void
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
הפעלה או השבתה של מנהל גבולות הגבולות.
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
void
מגדירה במפורש את ההעדפה לשימוש כאשר מפרסמים אפשרויות מידע על מסלול (RIO) בהודעות פרסומת של הנתב שנשלחות בקישור לתשתית.
otBorderRoutingSetRoutePreference(otInstance *aInstance, otRoutePreference aPreference)
void
מגדירה באופן מפורש את ההעדפה של מסלולים שפורסמו בנתוני הרשת.

מבנים

otBorderRoutingPrefixTableEntry

מייצג רשומה מטבלת הקידומת שהתגלתה.

otBorderRoutingPrefixTableIterator

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

מספור

otBorderRoutingDhcp6PdState

 otBorderRoutingDhcp6PdState

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

מאפיינים
OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED

DHCPv6 PD מושבת בנתב הגבולות.

OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING

DHCPv6 PD מופעל וינסה לבקש ולפרסם קידומת.

OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED

DHCPv6 PD מופעל, אך לא ינסה לבקש ולפרסם קידומת.

OTBorderRoutingState

 otBorderRoutingState

מייצג את המצב של מנהל גבולות גבול.

מאפיינים
OT_BORDER_ROUTING_STATE_DISABLED

מנהל הניתוב הופעל מחדש אבל הושבת.

OT_BORDER_ROUTING_STATE_RUNNING

מנהל הניתוב מופעל, מופעל ומופעל.

OT_BORDER_ROUTING_STATE_STOPPED

מנהל הניתוב הופעל ומופעל, אבל הופסק כרגע.

OT_BORDER_ROUTING_STATE_UNINITIALIZED

מנהל הניתוב לא הופעל.

סוג שגיאות

otBorderRoutingPrefixTableEntry

struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry

מייצג רשומה מטבלת הקידומת שהתגלתה.

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

otBorderRoutingPrefixTableIterator

struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator

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

השדות מהסוג הזה אטומים (לשימוש על ידי ליבה של OpenThreads בלבד), ולכן אין לגשת אליהם או להשתמש בהם.

לפני השימוש באיטרציה, צריך להפעיל אותו באמצעות otBorderRoutingPrefixTableInitIterator().

פונקציות

otBorderRoutingClearRouteInfoOptionהעדפות

void otBorderRoutingClearRouteInfoOptionPreference(
  otInstance *aInstance
)

ניקוי ערך העדפה שהוגדר בעבר עבור אפשרויות פרטי מסלול שפורסמו.

אחרי קריאה לפונקציה הזו, BR ישתמש בתפקיד של מכשיר כדי לקבוע את העדפת ה-RIO: העדפה בינונית בתפקיד נתב/מנהיג ועדיפות נמוכה בתפקיד ילד.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.

otBorderRoutingClearRouteהעדפות

void otBorderRoutingClearRoutePreference(
  otInstance *aInstance
)

ניקוי של ערך העדפה שהוגדר בעבר למסלולים שפורסמו בנתוני הרשת.

אחרי קריאה לפונקציה הזו, BR יקבע את ההעדפה באופן אוטומטי על סמך תפקיד המכשיר ואיכות הקישור (כשהורה פועל כמכשיר קצה).

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.

otBorderRoutingDhcp6PdSetEnabled

void otBorderRoutingDhcp6PdSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

הפעלה / השבתה של האצלת קידומת DHCPv6.

חייבים להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[in] aEnabled
האם לקבל הודעות RA שנוצרו על ידי הפלטפורמה.

otBorderRoutingGetFavoredNat64Prefix

otError otBorderRoutingGetFavoredNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix,
  otRoutePreference *aPreference
)

קבלת קידומת NAT64 מועדפת.

ניתן לגלות את קידומת NAT64 מהקישור של התשתית או שהיא יכולה להיות קידומת NAT64 המקומית של המכשיר הזה.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefix
מצביע לפלט של הקידומת NAT64 המועדפת.
[out] aPreference
מצביע לפלט של ההעדפה שמשויכת לקידומת המועדפת.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NONE
האחזור של NAT64 המועדף בוצע בהצלחה.

otBorderRoutingGetFavoredOmrPrefix

otError otBorderRoutingGetFavoredOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix,
  otRoutePreference *aPreference
)

מקבל את קידומת ה-OMR-Routable (OMR) המועדפת כרגע.

ניתן לגלות את קידומת OMR המועדפת מתוך נתוני רשת או להיות קידומת ה-OMR המקומית במכשיר זה.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefix
מצביע לפלט של קידומת OMR המועדפת.
[out] aPreference
מצביע לפלט של ההעדפה שמשויכת לקידומת המועדפת.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא פועל.
OT_ERROR_NONE
אחזור הקידומת של OMR בוצע בהצלחה.

otBorderRoutingGetFavoredOnLinkPrefix

otError otBorderRoutingGetFavoredOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

מקבל את קידומת הקישור הנוכחית המועדפת.

הקידומת המועדפת היא קידומת על הקישור שאותרה בקישור לתשתית או הקידומת בתווי הקישור המקומי.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefix
מצביעה על המיקום שאליו הקידומת תופנה.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NONE
אחזור הקידומת המועדפת על הקישור בוצע בהצלחה.

otBorderRoutingGetNat64Prefix

otError otBorderRoutingGetNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

מקבלים את קידומת NAT64 המקומית של נתב הגבולות.

אי אפשר לפרסם את הקידומת NAT64 ברשת השרשור.

חייבים להפעיל את OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefix
מצביעה על המיקום שאליו הקידומת תופנה.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NONE
הקידומת NAT64 הושלמה בהצלחה.

otBorderRoutingGetNextPrefixTableEntry

otError otBorderRoutingGetNextPrefixTableEntry(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator,
  otBorderRoutingPrefixTableEntry *aEntry
)

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

פרטים
פרמטרים
[in] aInstance
מופע ה-OpenThread.
[in,out] aIterator
מצביע אל האיטרטור.
[out] aEntry
מצביע אל הערך שיש לאכלס.
ערכי החזרה
OT_ERROR_NONE
בוצעו שינויים בכניסה הבאה, aEntry ו-aIterator עודכנו.
OT_ERROR_NOT_FOUND
אין עוד ערכים בטבלה.

OTBorderRoutingGetOmrPrefix

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

מקבלים את הקידומת המקומית Off-Mesh-Routable (OMR), לדוגמה: fdfc:1ff5:1512:5622::/64.

קידומת OMR היא תחילית אקראית של 64 ביט שמפרסמת ברשת השרשור אם אין כבר קידומת OMR. אפשר להגיע לקידומת הזו מרשת ה-Wi-Fi המקומית או מרשת ה-Ethernet המקומית.

הערה: כאשר DHCPv6 PD מופעל, נתב הגבולות עשוי לפרסם את הקידומת מ-DHCPv6 PD.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefix
מצביעה על המיקום שאליו הקידומת תופנה.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NONE
קידומת ה-OMR אוחזרה בהצלחה.
למידע נוסף:
otBorderRoutingGetPdOmrPrefix

otBorderRoutingGetOnLinkPrefix

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

קבלת הקידומת של On-Link המקומית לקישור התשתית הסמוך.

הקידומת המקומית של הקישור היא קידומת של 64 ביט שמפרסמת בקישור לתשתית, אם אין לפניה קידומת ניתנת לשימוש בקישור.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefix
מצביעה על המיקום שאליו הקידומת תופנה.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NONE
אחזור הקידומת המקומית על הקישור בוצע בהצלחה.

otBorderRoutingGetPdOmrPrefix

otError otBorderRoutingGetPdOmrPrefix(
  otInstance *aInstance,
  otBorderRoutingPrefixTableEntry *aPrefixInfo
)

קבלת קידומת DHCPv6 לקידומת (PD) שסופקה עם קידומת Out-mesh-routable (OMR).

נעשה שימוש רק בשדות mPrefix, mInvalidLifetime ו-mPreferredLifetime בפרטי הקידומת המוחזרת.

חייבים להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[out] aPrefixInfo
מצביעים על היעד שאליו יונפקו פרטי הקידומת.
ערכי החזרה
OT_ERROR_NONE
קידומת ה-OMR אוחזרה בהצלחה.
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NOT_FOUND
אין קידומת PD חוקית ב-BR הזה.
מידע נוסף:
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra

otBorderRoutingGetRouteInfoOptionהעדפות

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

קבלת ההעדפה הנוכחית בעת פרסום אפשרויות מידע לגבי המסלול (RIO) בהודעות המודעות של הנתב שנשלחות בקישור לתשתית.

העדפת ה-RIO נקבעת באופן הבא:

  • אם המשתמש מגדיר את otBorderRoutingSetRouteInfoOptionPreference() באופן מפורש, המערכת תשתמש בהעדפה הנתונה.
  • אחרת, היא נבחרת על סמך התפקיד הנוכחי של המכשיר: העדפה בינונית בתפקיד נתב/מנהיג והעדפה נמוכה בעת שימוש בתפקיד ילד.

פרטים
החזרות
ההעדפה הנוכחית לתכונה 'פרטי מסלול'.

otBorderRoutingGetRouteהעדפות

otRoutePreference otBorderRoutingGetRoutePreference(
  otInstance *aInstance
)

קבלת ההעדפה הנוכחית למסלולים שפורסמו בנתוני הרשת.

ההעדפה נקבעת באופן הבא:

  • אם המשתמש מגדיר את otBorderRoutingSetRoutePreference() באופן מפורש, המערכת תשתמש בהעדפה הנתונה.
  • אחרת, היא נקבעת באופן אוטומטי על ידי RoutingManager בהתאם לתפקיד ולאיכות הקישור של המכשיר.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
החזרות
העדפת המסלול הנוכחית שפורסמה.

otBorderRoutingGetState

otBorderRoutingState otBorderRoutingGetState(
  otInstance *aInstance
)

מקבל את המצב הנוכחי של מנהל גבולות גבול.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
החזרות
המצב הנוכחי של מנהל ניתוב גבול.

OTBorderRoutingInit

otError otBorderRoutingInit(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aInfraIfIsRunning
)

מפעיל את מנהל גבולות הגבול בממשק התשתית הנתון.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[in] aInfraIfIndex
האינדקס של ממשק התשתית.
[in] aInfraIfIsRunning
ערך בוליאני שמציין אם ממשק התשתית פועל.
ערכי החזרה
OT_ERROR_NONE
ניהול הגבולות של גבול הופעל בהצלחה בתשתית הנתונה.
OT_ERROR_INVALID_STATE
מנהל גבולות הגבול נמצא במצב מושבת או לא מופעל.
OT_ERROR_INVALID_ARGS
האינדקס של ממשק התשתית לא חוקי.
OT_ERROR_FAILED
כשל פנימי. לרוב הסיבה לכך היא כשל ביצירת קידומות אקראיות.
מידע נוסף:
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.

otBorderRoutingPrefixTableInitIterator

void otBorderRoutingPrefixTableInitIterator(
  otInstance *aInstance,
  otBorderRoutingPrefixTableIterator *aIterator
)

מפעיל את otBorderRoutingPrefixTableIterator.

יש להשתמש באיטרטור לפני השימוש.

אפשר להפעיל מחדש איטרציה כדי להתחיל מחדש מתחילת הטבלה.

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

פרטים
פרמטרים
[in] aInstance
מופע ה-OpenThread.
[out] aIterator
מצביע אל האיטרציה לאתחול.

otBorderRoutingSetEnabled

otError otBorderRoutingSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

הפעלה או השבתה של מנהל גבולות הגבולות.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[in] aEnabled
ערך בוליאני להפעלה/השבתה של מנהל הניתוב.
ערכי החזרה
OT_ERROR_INVALID_STATE
מנהל גבולות הגבולות עדיין לא הופעל.
OT_ERROR_NONE
הופעל/הושבת בהצלחה מנהל גבולות הגבולות.

otBorderRoutingSetRouteInfoOptionהעדפות

void otBorderRoutingSetRouteInfoOptionPreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

מגדירה במפורש את ההעדפה לשימוש כאשר מפרסמים אפשרויות מידע על מסלול (RIO) בהודעות פרסומת של הנתב שנשלחות בקישור לתשתית.

אחרי הקריאה לפונקציה הזו, מערכת BR תשתמש בהעדפה הנתונה לכל יחידות ה-RIO שפורסמו. אפשר לנקות את ההעדפה באמצעות התקשרות ל-otBorderRoutingClearRouteInfoOptionPreference().

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[in] aPreference
העדפת הנתיב לשימוש.

otBorderRoutingSetRouteהעדפות

void otBorderRoutingSetRoutePreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

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

אחרי הקריאה לפונקציה הזו, מערכת BR תשתמש בהעדפה הנתונה. אפשר לנקות את ההעדפה באמצעות התקשרות ל-otBorderRoutingClearRoutePreference().

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
[in] aPreference
העדפת הנתיב לשימוש.

משאבים

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