מנהל גבולות גבול
מודול זה כולל הגדרות הקשורות למנהל גבולות גבול.
סיכום
כדי להשתמש בכל הפונקציות במודול הזה, צריך להפעיל את 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{
|
טיפוסים בני מנייה (enum) המספור הזה מייצג את המצב של הענקת הגישה לקידומת DHCPv6. |
otBorderRoutingState{
|
טיפוסים בני מנייה (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
מפעיל את
otBorderRoutingPrefixTableIterator . |
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: העדפה בינונית בתפקיד נתב/מנהיג ועדיפות נמוכה בתפקיד ילד.
פרטים | |||
---|---|---|---|
פרמטרים |
|
otBorderRoutingClearRouteהעדפות
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
ניקוי של ערך העדפה שהוגדר בעבר למסלולים שפורסמו בנתוני הרשת.
אחרי קריאה לפונקציה הזו, BR יקבע את ההעדפה באופן אוטומטי על סמך תפקיד המכשיר ואיכות הקישור (כשהורה פועל כמכשיר קצה).
פרטים | |||
---|---|---|---|
פרמטרים |
|
otBorderRoutingDhcp6PdSetEnabled
void otBorderRoutingDhcp6PdSetEnabled( otInstance *aInstance, bool aEnabled )
הפעלה / השבתה של האצלת קידומת DHCPv6.
חייבים להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otBorderRoutingGetFavoredNat64Prefix
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
קבלת קידומת NAT64 מועדפת.
ניתן לגלות את קידומת NAT64 מהקישור של התשתית או שהיא יכולה להיות קידומת NAT64 המקומית של המכשיר הזה.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכי החזרה |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
מקבל את קידומת ה-OMR-Routable (OMR) המועדפת כרגע.
ניתן לגלות את קידומת OMR המועדפת מתוך נתוני רשת או להיות קידומת ה-OMR המקומית במכשיר זה.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכי החזרה |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
מקבל את קידומת הקישור הנוכחית המועדפת.
הקידומת המועדפת היא קידומת על הקישור שאותרה בקישור לתשתית או הקידומת בתווי הקישור המקומי.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
מקבלים את קידומת NAT64 המקומית של נתב הגבולות.
אי אפשר לפרסם את הקידומת NAT64 ברשת השרשור.
חייבים להפעיל את OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
הוא חוזר על הערכים בטבלת הקידומת שהתגלתה של נתב הגבול.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכי החזרה |
|
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.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otBorderRoutingGetPdOmrPrefix
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
קבלת הקידומת של On-Link המקומית לקישור התשתית הסמוך.
הקידומת המקומית של הקישור היא קידומת של 64 ביט שמפרסמת בקישור לתשתית, אם אין לפניה קידומת ניתנת לשימוש בקישור.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otBorderRoutingGetPdOmrPrefix
otError otBorderRoutingGetPdOmrPrefix( otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo )
קבלת קידומת DHCPv6 לקידומת (PD) שסופקה עם קידומת Out-mesh-routable (OMR).
נעשה שימוש רק בשדות mPrefix, mInvalidLifetime ו-mPreferredLifetime בפרטי הקידומת המוחזרת.
חייבים להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכי החזרה |
|
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra
otBorderRoutingGetRouteInfoOptionהעדפות
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
קבלת ההעדפה הנוכחית בעת פרסום אפשרויות מידע לגבי המסלול (RIO) בהודעות המודעות של הנתב שנשלחות בקישור לתשתית.
העדפת ה-RIO נקבעת באופן הבא:
- אם המשתמש מגדיר את
otBorderRoutingSetRouteInfoOptionPreference()
באופן מפורש, המערכת תשתמש בהעדפה הנתונה. - אחרת, היא נבחרת על סמך התפקיד הנוכחי של המכשיר: העדפה בינונית בתפקיד נתב/מנהיג והעדפה נמוכה בעת שימוש בתפקיד ילד.
פרטים | |
---|---|
החזרות |
ההעדפה הנוכחית לתכונה 'פרטי מסלול'.
|
otBorderRoutingGetRouteהעדפות
otRoutePreference otBorderRoutingGetRoutePreference( otInstance *aInstance )
קבלת ההעדפה הנוכחית למסלולים שפורסמו בנתוני הרשת.
ההעדפה נקבעת באופן הבא:
- אם המשתמש מגדיר את
otBorderRoutingSetRoutePreference()
באופן מפורש, המערכת תשתמש בהעדפה הנתונה. - אחרת, היא נקבעת באופן אוטומטי על ידי
RoutingManager
בהתאם לתפקיד ולאיכות הקישור של המכשיר.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
העדפת המסלול הנוכחית שפורסמה.
|
otBorderRoutingGetState
otBorderRoutingState otBorderRoutingGetState( otInstance *aInstance )
מקבל את המצב הנוכחי של מנהל גבולות גבול.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
המצב הנוכחי של מנהל ניתוב גבול.
|
OTBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
מפעיל את מנהל גבולות הגבול בממשק התשתית הנתון.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
ערכי החזרה |
|
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
מפעיל את otBorderRoutingPrefixTableIterator
.
יש להשתמש באיטרטור לפני השימוש.
אפשר להפעיל מחדש איטרציה כדי להתחיל מחדש מתחילת הטבלה.
כשמבצעים חזרה על רשומות בטבלה, כדי להבטיח שזמני העדכון של mMsecSinceLastUpdate
רשומות יהיו עקביים, הם יינתנו ביחס למועד שבו הופעל האיטרציה.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
הפעלה או השבתה של מנהל גבולות הגבולות.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otBorderRoutingSetRouteInfoOptionהעדפות
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
מגדירה במפורש את ההעדפה לשימוש כאשר מפרסמים אפשרויות מידע על מסלול (RIO) בהודעות פרסומת של הנתב שנשלחות בקישור לתשתית.
אחרי הקריאה לפונקציה הזו, מערכת BR תשתמש בהעדפה הנתונה לכל יחידות ה-RIO שפורסמו. אפשר לנקות את ההעדפה באמצעות התקשרות ל-otBorderRoutingClearRouteInfoOptionPreference()
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otBorderRoutingSetRouteהעדפות
void otBorderRoutingSetRoutePreference( otInstance *aInstance, otRoutePreference aPreference )
מגדירה באופן מפורש את ההעדפה של מסלולים שפורסמו בנתוני הרשת.
אחרי הקריאה לפונקציה הזו, מערכת BR תשתמש בהעדפה הנתונה. אפשר לנקות את ההעדפה באמצעות התקשרות ל-otBorderRoutingClearRoutePreference()
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
משאבים
הנושאים של קובצי העזר של OpenThread API מגיעים מקוד המקור, והם זמינים ב-GitHub. למידע נוסף או כדי לתרום למסמכי התיעוד שלנו, יש לעיין בקטע משאבים.