مدیر مسیریابی مرزی
این ماژول شامل تعاریف مربوط به Border Routing Manager می باشد.
خلاصه
همه توابع در این ماژول نیاز به فعال کردن OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
دارند.
Border Routing Manager مسیریابی دو جهته بین شبکه Thread و پیوند زیرساخت مجاور (AIL) را مدیریت می کند.
این پیامهای ICMRv6 ND Router Advertisement (RA) را در AIL منتشر میکند تا پیشوندهای روی پیوند و مسیر را تبلیغ کند. همچنین پیامهای RA دریافتی از زیرساخت را پردازش میکند و پیشوندهای کشفشده را روی دادههای شبکه Thread منعکس میکند تا مطمئن شود دستگاههای روی Thread mesh میتوانند از طریق مسیریاب مرزی به AIL برسند.
Routing Manager پیشوند Off-Mesh Routable (OMR) را روی دادههای شبکه Thread مدیریت میکند که دستگاههای Thread را با آدرس IPv6 قابل مسیریابی Off-Mesh مناسب پیکربندی میکند. دسترسی به این پیشوند را در AIL با گنجاندن آن در پیام های RA منتشر شده به عنوان گزینه اطلاعات مسیر IPv6 (RIO) اعلام می کند.
Routing Manager همچنین پیشوند پیوندی را در شبکه زیرساخت نظارت و اضافه می کند. اگر روتر روی AIL در حال حاضر پیامهای RA حاوی گزینه اطلاعات پیشوند IPv6 (PIO) ارائه میدهد که دستگاههای IPv6 روی پیوند را قادر میسازد تا آدرس IPv6 unicast قابل مسیریابی خود را پیکربندی کنند، این آدرس میتواند توسط دستگاههای Thread برای دسترسی به AIL استفاده شود. اگر Border Router چنین پیام RA را در AIL پیدا نکند، یک پیشوند ULA on-link ایجاد می کند که سپس در پیام های RA منتشر شده در AIL تبلیغ می کند.
شمارش ها | |
---|---|
otBorderRoutingDhcp6PdState { | enum این شمارش وضعیت Delegation State Prefix DHCPv6 را نشان می دهد. |
otBorderRoutingState { | enum نشان دهنده وضعیت مدیر مسیریابی مرزی است. |
Typedefs | |
---|---|
otBorderRoutingPrefixTableEntry | typedef یک ورودی از جدول پیشوند کشف شده را نشان می دهد. |
otBorderRoutingPrefixTableIterator | typedef یک تکرار کننده را برای تکرار از طریق جدول پیشوند کشف شده Border Router نشان می دهد. |
otBorderRoutingRouterEntry | typedefstruct otBorderRoutingRouterEntry نشان دهنده یک روتر کشف شده در پیوند زیرساخت است. |
otPdProcessedRaInfo | typedefstruct otPdProcessedRaInfo نشان دهنده گروهی از داده های پیام های RA تولید شده توسط پلت فرم پردازش شده است. |
کارکرد | |
---|---|
otBorderRoutingClearRouteInfoOptionPreference ( otInstance *aInstance) | void یک مقدار ترجیحی تنظیم شده قبلی را برای گزینههای اطلاعات مسیر تبلیغ شده پاک میکند. |
otBorderRoutingClearRoutePreference ( otInstance *aInstance) | void یک مقدار ترجیحی تنظیم شده قبلی را برای مسیرهای منتشر شده در Network Data پاک می کند. |
otBorderRoutingDhcp6PdGetState ( otInstance *aInstance) | وضعیت فعلی Delegation پیشوند DHCPv6 را دریافت می کند. |
otBorderRoutingDhcp6PdSetEnabled ( otInstance *aInstance, bool aEnabled) | void Delegation پیشوند 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) | روی ورودی های جدول پیشوند کشف شده Border Router تکرار می شود. |
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 (PD) ارائه شده با قابلیت مسیریابی خارج از شبکه (OMR) را دریافت می کند. |
otBorderRoutingGetPdProcessedRaInfo ( otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo) | داده های پیام RA تولید شده توسط پلت فرم را پردازش می کند. |
otBorderRoutingGetRouteInfoOptionPreference ( otInstance *aInstance) | ترجیحات فعلی مورد استفاده را هنگام تبلیغ گزینههای اطلاعات مسیر (RIO) در پیامهای تبلیغاتی روتر که از طریق پیوند زیرساخت ارسال میشوند، دریافت میکند. |
otBorderRoutingGetRoutePreference ( otInstance *aInstance) | اولویت فعلی مورد استفاده برای مسیرهای منتشر شده در Network Data را دریافت می کند. |
otBorderRoutingGetState ( otInstance *aInstance) | وضعیت فعلی Border Routing Manager را دریافت می کند. |
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 | یک تکرار کننده را برای تکرار از طریق جدول پیشوند کشف شده Border Router نشان می دهد. |
otBorderRoutingRouterEntry | نشان دهنده یک روتر کشف شده در پیوند زیرساخت است. |
otPdProcessedRaInfo | نشان دهنده گروهی از داده های پیام های RA تولید شده توسط پلت فرم پردازش شده است. |
شمارش ها
otBorderRoutingDhcp6PdState
otBorderRoutingDhcp6PdState
این شمارش وضعیت Delegation State Prefix DHCPv6 را نشان می دهد.
otBorderRoutingState
otBorderRoutingState
نشان دهنده وضعیت مدیر مسیریابی مرزی است.
Typedefs
otBorderRoutingPrefixTableEntry
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
یک ورودی از جدول پیشوند کشف شده را نشان می دهد.
ورودیهای جدول کشفشده، گزینههای اطلاعات پیشوند/مسیر را در پیامهای تبلیغاتی روتر دریافتی از مسیریابهای دیگر در پیوند زیرساخت دنبال میکنند.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
یک تکرار کننده را برای تکرار از طریق جدول پیشوند کشف شده Border Router نشان می دهد.
فیلدهای این نوع مات هستند (فقط برای استفاده توسط OpenThread core در نظر گرفته شده است) و بنابراین نباید توسط تماس گیرنده به آنها دسترسی یا استفاده شود.
قبل از استفاده از یک تکرار کننده، باید با استفاده از otBorderRoutingPrefixTableInitIterator()
مقداردهی اولیه شود.
otBorderRoutingRouterEntry
struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry
نشان دهنده یک روتر کشف شده در پیوند زیرساخت است.
otPdProcessedRaInfo
struct otPdProcessedRaInfo otPdProcessedRaInfo
نشان دهنده گروهی از داده های پیام های RA تولید شده توسط پلت فرم پردازش شده است.
کارکرد
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
یک مقدار ترجیحی تنظیم شده قبلی را برای گزینههای اطلاعات مسیر تبلیغ شده پاک میکند.
پس از فراخوانی این عملکرد، BR از نقش دستگاه برای تعیین اولویت RIO استفاده میکند: اولویت متوسط در نقش روتر/رهبر و اولویت پایین در نقش فرزند.
جزئیات | |||
---|---|---|---|
مولفه های |
|
otBorderRoutingClearRoutePreference
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
یک مقدار ترجیحی تنظیم شده قبلی را برای مسیرهای منتشر شده در Network Data پاک می کند.
پس از تماس با این عملکرد، BR به طور خودکار بر اساس نقش دستگاه و کیفیت پیوند (به والد هنگام عمل به عنوان دستگاه نهایی) اولویت را تعیین می کند.
جزئیات | |||
---|---|---|---|
مولفه های |
|
otBorderRoutingDhcp6PdGetState
otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState( otInstance *aInstance )
وضعیت فعلی Delegation پیشوند DHCPv6 را دریافت می کند.
برای فعال کردن OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
نیاز دارد.
جزئیات | |||
---|---|---|---|
مولفه های |
| ||
برمی گرداند | وضعیت فعلی انتقال پیشوند DHCPv6. |
otBorderRoutingDhcp6PdSetEnabled
void otBorderRoutingDhcp6PdSetEnabled( otInstance *aInstance, bool aEnabled )
Delegation پیشوند DHCPv6 را فعال / غیرفعال می کند.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
باید فعال باشد.
جزئیات | |||||
---|---|---|---|---|---|
مولفه های |
|
پیشوند otBorderRoutingGetFavoredNat64
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 مورد علاقه فعلی را دریافت می کند.
پیشوند مورد علاقه یا یک پیشوند on-link کشف شده در پیوند زیرساخت یا پیشوند محلی on-link است.
جزئیات | |||||
---|---|---|---|---|---|
مولفه های |
| ||||
ارزش های بازگشتی |
|
پیشوند otBorderRoutingGetNat64
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
پیشوند محلی NAT64 روتر مرزی را دریافت می کند.
ممکن است پیشوند NAT64 در شبکه Thread تبلیغ نشود.
OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
باید فعال باشد.
جزئیات | |||||
---|---|---|---|---|---|
مولفه های |
| ||||
ارزش های بازگشتی |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
روی ورودی های جدول پیشوند کشف شده Border Router تکرار می شود.
ورودی های پیشوند مرتبط با همان روتر کشف شده در پیوند زیرساخت تضمین می شود که با هم گروه بندی شوند (بازیابی پشت سر هم).
جزئیات | |||||||
---|---|---|---|---|---|---|---|
مولفه های |
| ||||||
ارزش های بازگشتی |
|
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 (PD) ارائه شده با قابلیت مسیریابی خارج از شبکه (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 )
اولویت فعلی مورد استفاده برای مسیرهای منتشر شده در Network Data را دریافت می کند.
اولویت به شرح زیر تعیین می شود:
- اگر به صراحت توسط کاربر با فراخوانی
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 سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.