מנהל ניתוב גבולות
המודול הזה כולל הגדרות הקשורות ל'מנהל ניתוב הגבול'.
סיכום
כדי להשתמש בכל הפונקציות במודול הזה צריך להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
מנהל ניתוב הגבולות מטפל בניתוב דו-כיווני בין רשת Thread לבין קישור תשתית סמוך (AIL).
הוא פולט הודעות ICMRv6 ND Router פרסומת (RA) ב-AIL לפרסום קידומות קישור וקידומות של מסלולים. בנוסף, הוא מעבד הודעות RA מהתשתית ומשקף את הקידומות שהתגלו בנתוני Thread Network Data כדי להבטיח שמכשירים ב-Thread mesh יוכלו להגיע ל-AIL דרך נתב הגבולות.
Routing Manager מנהל את הקידומת Off-Mesh Routable (OMR) בנתוני ה-Thread Network. כדי להגדיר את מכשירי Thread עם כתובת ה-IPv6 המתאימה ל-Out-Mesh Routable, צריך להגדיר את המכשירים. היא מודיעה על יכולת ההגעה של הקידומת הזו ב-AIL על ידי הכללתה בהודעות ה-RA שנפלטו כאפשרות פרטי מסלול של IPv6 (RIO).
בנוסף, מנהל הניתוב עוקב אחר רשת התשתית ומוסיפים לה קידומת on-link. אם נתב ב-AIL כבר מספק הודעות RA שמכילות אפשרות פרטי קידומת (PIO) של IPv6 שמאפשרת למכשירי IPv6 להגדיר באופן עצמאי כתובת IPv6 מסוג unicast שניתן לנתב בעצמם, מכשירי Thread יכולים להשתמש בכתובת הזו כדי להגיע ל-AIL. אם נתב Border Router לא מוצא הודעת RA כזו ב-AIL, הוא יוצר קידומת ULA בקישור אשר לאחר מכן היא מפרסמת ב-AIL בהודעות ה-RA שנשלחו.
ספירות |
|
---|---|
otBorderRoutingDhcp6PdState{
|
טיפוסים בני מנייה (enum) המספור הזה מייצג את המצב של 'מצב הענקת גישה לקידומת DHCPv6'. |
otBorderRoutingState{
|
טיפוסים בני מנייה (enum) מייצג את המצב של מנהל ניתוב הגבול. |
ערכי דף |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef מייצג ערך מטבלת הקידומות שהתגלתה. |
otBorderRoutingPrefixTableIterator
|
typedef מייצג איטרטור שחוזר על עצמו דרך טבלת הקידומתים שהתגלתה נתב הגבול. |
otBorderRoutingRouterEntry
|
typedefstruct otBorderRoutingRouterEntry
מייצג נתב שהתגלה בקישור לתשתית. |
otPdProcessedRaInfo
|
typedefstruct otPdProcessedRaInfo
מייצג קבוצת נתונים של הודעות RA שנוצרו על ידי פלטפורמה שעובדו. |
פונקציות |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
פעולה זו מנקה ערך העדפה שהוגדר קודם לכן עבור אפשרויות פרטי נתיב שפורסמו.
|
otBorderRoutingClearRoutePreference(otInstance *aInstance)
|
void
פעולה זו מנקה ערך העדפה שהוגדר קודם לנתיבים שפורסמו בנתוני רשת.
|
otBorderRoutingDhcp6PdGetState(otInstance *aInstance)
|
הפונקציה מקבלת את המצב הנוכחי של הענקת תחילית DHCPv6.
|
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
הפעלה / השבתה של הקצאת קידומת DHCPv6.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
הפונקציה מקבלת את קידומת NAT64 המועדפת כרגע.
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
הפונקציה מקבלת את הקידומת המועדפת כיום של Off-Mesh-Routable (OMR).
|
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
קבלת קידומת On-Link המועדפת כרגע.
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
מקבל את קידומת NAT64 המקומית של נתב הגבול.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
חוזר על הערכים בטבלת התחילית של נתב הגבול שאותרה.
|
otBorderRoutingGetNextRouterEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *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 Prefix Delegation (PD) שסופקה off-mesh-routable (OMR).
|
otBorderRoutingGetPdProcessedRaInfo(otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo)
|
מקבל את הנתונים של הודעת RA שנוצרה בפלטפורמה.
|
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 |
מייצג איטרטור שחוזר על עצמו דרך טבלת הקידומתים שהתגלתה נתב הגבול. |
otBorderRoutingRouterEntry |
מייצג נתב שהתגלה בקישור לתשתית. |
otPdProcessedRaInfo |
מייצג קבוצת נתונים של הודעות RA שנוצרו על ידי פלטפורמה שעובדו. |
ספירות
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
מייצג איטרטור שחוזר על עצמו דרך טבלת הקידומתים שהתגלתה נתב הגבול.
השדות בסוג הזה אטומים (מיועדים לשימוש על ידי ליבת OpenThread בלבד) ולכן מבצע הקריאה החוזרת (caller) לא יכול לגשת אליהם או להשתמש בהם.
לפני השימוש באיטרטור, הוא חייב להיות מופעל באמצעות otBorderRoutingPrefixTableInitIterator()
.
otBorderRoutingRouterEntry
struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry
מייצג נתב שהתגלה בקישור לתשתית.
otPdProcessedRaInfo
struct otPdProcessedRaInfo otPdProcessedRaInfo
מייצג קבוצת נתונים של הודעות RA שנוצרו על ידי פלטפורמה שעובדו.
פונקציות
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
פעולה זו מנקה ערך העדפה שהוגדר קודם לכן עבור אפשרויות פרטי נתיב שפורסמו.
לאחר קריאה לפונקציה הזו, BR ישתמש בתפקיד המכשיר כדי לקבוע את העדפת ה-RIO: העדפה בינונית במהלך תפקיד הנתב/מנהיג והעדפה נמוכה בתפקיד צאצא.
פרטים | |||
---|---|---|---|
פרמטרים |
|
otBorderRoutingClearRoutePreference
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
פעולה זו מנקה ערך העדפה שהוגדר קודם לנתיבים שפורסמו בנתוני רשת.
לאחר קריאה לפונקציה הזו, BR יקבע את ההעדפה באופן אוטומטי על סמך תפקיד המכשיר ואיכות הקישור (להורה כשהוא פועל כמכשיר קצה).
פרטים | |||
---|---|---|---|
פרמטרים |
|
otBorderRoutingDhcp6PdGetState
otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState( otInstance *aInstance )
הפונקציה מקבלת את המצב הנוכחי של הענקת תחילית DHCPv6.
צריך להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
המצב הנוכחי של הקצאת קידומת DHCPv6.
|
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 )
הפונקציה מקבלת את הקידומת המועדפת כיום של Off-Mesh-Routable (OMR).
ניתן לגלות את קידומת ה-OMR המועדפת מנתוני רשת, או שהיא יכולה להיות קידומת ה-OMR המקומית של המכשיר.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
קבלת קידומת On-Link המועדפת כרגע.
התחילית המועדפת היא קידומת שהתגלתה בקישור לתשתית או קידומת מקומית בקישור.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכים מוחזרים |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
מקבל את קידומת NAT64 המקומית של נתב הגבול.
יכול להיות שקידומת NAT64 לא מפורסמת ברשת Thread.
חובה להפעיל את OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכים מוחזרים |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
חוזר על הערכים בטבלת התחילית של נתב הגבול שאותרה.
מובטחות שרשומות קידומת שמשויכות לאותו נתב שהתגלה בקישור לתשתית יקובצו יחד (יאוחזרו בזה אחר זה).
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otBorderRoutingGetNextRouterEntry
otError otBorderRoutingGetNextRouterEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry )
מתבצע איטרציה של הרשומות של הנתב שזוהו בקישור לתשתית.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otBorderRoutingGetOmrPrefix
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
הפונקציה מקבלת את הקידומת המקומית Off-Mesh-Routable (OMR) המקומית, לדוגמה fdfc:1ff5:1512:5622::/64
.
קידומת OMR היא קידומת של 64 ביט שנוצרת באופן אקראי ומתפרסמת ברשת Thread, אם אין עדיין קידומת OMR. אפשר להגיע לקידומת הזו מרשת ה-Wi-Fi או האתרנט המקומית.
הערה: כאשר DHCPv6 PD מופעל, נתב הגבולות עשוי לפרסם את הקידומת מ-DHCPv6 PD.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכים מוחזרים |
|
otBorderRoutingGetPdOmrPrefix
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
הפונקציה מקבלת את הקידומת המקומית On-Link עבור קישור התשתית הצמוד.
הקידומת המקומית On-Link היא קידומת של 64 ביט שמפורסמת בקישור התשתית, אם עדיין לא פורסמה קידומת בקישור שניתנת לשימוש.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכים מוחזרים |
|
otBorderRoutingGetPdOmrPrefix
otError otBorderRoutingGetPdOmrPrefix( otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo )
הפונקציה מקבלת את הקידומת DHCPv6 Prefix Delegation (PD) שסופקה off-mesh-routable (OMR).
רק השדות mPrefix, mValidLifetime ו-mPreferredLifetime משמשים בפרטי הקידומת שמוחזרת.
חובה להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra
otBorderRoutingGetPdProcessedRaInfo
otError otBorderRoutingGetPdProcessedRaInfo( otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo )
מקבל את הנתונים של הודעת RA שנוצרה בפלטפורמה.
חובה להפעיל את OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
קבלת ההעדפה הנוכחית שנעשה בה שימוש בעת פרסום 'אפשרויות מידע על המסלול' (RIO) בהודעות הפרסומת של הנתב שנשלחות דרך הקישור לתשתית.
העדפת ה-RIO נקבעת כך:
- אם המשתמש הגדיר במפורש את ההרשאה באמצעות
otBorderRoutingSetRouteInfoOptionPreference()
, המערכת תשתמש בהעדפה הנתונה. - אחרת, היא נקבעת על סמך התפקיד הנוכחי של המכשיר: העדפה בינונית במסגרת תפקיד הנתב/המנהיג והעדפה נמוכה בתפקיד הצאצא.
פרטים | |
---|---|
החזרות |
ההעדפה הנוכחית של האפשרות 'פרטי נתיב'.
|
otBorderRoutingGetRoutePreference
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 )
מפעילה או משביתה את 'מנהל ניתוב הגבולות'.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכים מוחזרים |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
המדיניות הזו מגדירה באופן מפורש את ההעדפה לשימוש בזמן פרסום של אפשרויות מידע על המסלול (RIO) בהודעות הפרסומת של הנתב שנשלחות דרך הקישור לתשתית.
לאחר קריאה לפונקציה הזו, BR ישתמש בהעדפה הנתונה בכל ה-RIO שהיא מפרסמת. אפשר להתקשר אל otBorderRoutingClearRouteInfoOptionPreference()
כדי לבטל את ההעדפה.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otBorderRoutingSetRoutePreference
void otBorderRoutingSetRoutePreference( otInstance *aInstance, otRoutePreference aPreference )
המדיניות מגדירה באופן מפורש את ההעדפה של נתיבים שפורסמו בנתוני הרשת.
לאחר קריאה לפונקציה הזו, BR ישתמש בהעדפה הנתונה. אפשר להתקשר אל otBorderRoutingClearRoutePreference()
כדי לבטל את ההעדפה.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
מקורות מידע
המקור של נושאי העזר של OpenThread API הוא קוד המקור, שזמין ב-GitHub. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.