مدير توجيه الحدود
تتضمن هذه الوحدة تعريفات ذات صلة بمدير توجيه الحدود.
ملخّص
تتطلب جميع الدوال في هذه الوحدة تفعيل OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
.
تتعامل ميزة "إدارة توجيه الحدود" مع التوجيه ثنائي الاتجاه بين شبكة Thread ورابط البنية المجاورة (AIL).
وهي تصدر رسائل ICMRv6 ND Routing الرعلية (RA) على AIL للإعلان عن بادئات الرابط أو المسار. وتعالج أيضًا الرسائل التي يتم اكتسابها مؤخرًا من البنية الأساسية ومرايا البادئات التي تم اكتشافها على بيانات شبكة Thread لضمان وصول الأجهزة على الشبكة المتداخلة إلى AIL من خلال جهاز توجيه الحدود.
يدير "مدير التوجيه" البادئة غير القابلة للتوجيه (OMR) على بيانات Thread Network التي تضبط أجهزة سلسلة المحادثات باستخدام عنوان IPv6 مناسب خارج البروتوكول. يُعلن عن إمكانية الوصول إلى هذه البادئة على AIL من خلال تضمينها في رسائل الحسابات التي يتم اكتسابها مؤخرًا بصفتها خيار معلومات مسار IPv6 (RIO).
وتراقب "مدير التوجيه" أيضًا البادئة على الرابط وتضيفها على شبكة البنية الأساسية. إذا كان جهاز التوجيه على AIL يوفّر حاليًا رسائل يتم اكتسابها مؤخرًا تحتوي على خيار معلومات بادئة IPv6 (PIO)، يتيح لأجهزة IPv6 على الرابط ضبط عنوان IPv6 القابل التوجيه القابل للتخصيص الخاص به، ويمكن استخدام هذا العنوان من خلال أجهزة Thread للوصول إلى AIL. إذا لم يعثر جهاز توجيه الحدود على أي رسالة RA هذه على AIL، يُنشئ بادئة ULA على الرابط والتي يُعلِن عنها بعد ذلك في AIL في رسائل الحسابات التي يتم اكتسابها مؤخرًا.
التعدادات |
|
---|---|
otBorderRoutingState{
|
تعداد يمثل حالة مدير توجيه الحدود. |
أنواع المحددات |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef يمثل إدخالاً من جدول البادئة التي تم اكتشافها. |
otBorderRoutingPrefixTableIterator
|
typedef يمثل مكرِّرًا وتكراره من خلال جدول البادئة الذي تم اكتشافه في جهاز توجيه الحدود. |
الدوال |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
يمحو قيمة الإعدادات المفضّلة التي تم ضبطها سابقًا لخيارات معلومات المسار المُعلَن عنها.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
الحصول على بادئة NAT64 المفضّلة حاليًا
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
للحصول على البادئة المُفضّلة حاليًا وغير القابلة للتوجيه (OMR)
|
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
الحصول على البادئة "على الرابط" المفضّلة حاليًا
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
للحصول على بادئة NAT64 المحلية لجهاز توجيه الحدود.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
ويتم تكرار الإدخالات في جدول البادئة التي تم اكتشافها في جهاز توجيه الحدود.
|
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
للحصول على البادئة المحلية التي لا يمكن التعامل معها (OMR) على سبيل المثال،
fdfc:1ff5:1512:5622::/64 |
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
للحصول على بادئة "الرابط على الصفحة" المحلية لرابط البنية الأساسية المجاورة.
|
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
|
للحصول على الخيار المفضّل الحالي عند الإعلان عن خيارات معلومات المسار (RIO) في رسائل إعلانات أجهزة التوجيه التي يتم إرسالها عبر رابط البنية الأساسية.
|
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) في رسائل إعلانات جهاز التوجيه التي يتم إرسالها عبر رابط البنية الأساسية.
|
هياكل |
|
---|---|
otBorderRedirectPrefixTableEntry |
يمثل إدخالاً من جدول البادئة التي تم اكتشافها. |
otBorderRoutingPrefixTableererator |
يمثل مكرِّرًا وتكراره من خلال جدول البادئة الذي تم اكتشافه في جهاز توجيه الحدود. |
التعدادات
otBorderRoutingState
otBorderRoutingState
يمثل حالة مدير توجيه الحدود.
أماكن إقامة | |
---|---|
OT_BORDER_ROUTING_STATE_DISABLED
|
تم إعداد "مدير التوجيه" ولكن تم إيقافه. |
OT_BORDER_ROUTING_STATE_RUNNING
|
تم إعداد مدير التوجيه وتفعيله وتشغيله. |
OT_BORDER_ROUTING_STATE_STOPPED
|
تم إعداد ميزة "مدير التوجيه" في البداية ومفعّلة ولكنها متوقفة حاليًا. |
OT_BORDER_ROUTING_STATE_UNINITIALIZED
|
لم يتم إعداد مدير التوجيه. |
أنواع المحددات
إدخال otBorderRoutingPrefixTable
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
يمثل إدخالاً من جدول البادئة التي تم اكتشافها.
تعمل الإدخالات في الجدول الذي تم اكتشافه على تتبع خيارات معلومات البادئة/المسار في رسائل إعلانات جهاز التوجيه التي تم تلقيها من أجهزة التوجيه الأخرى على رابط البنية الأساسية.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
يمثل مكرِّرًا وتكراره من خلال جدول البادئة الذي تم اكتشافه في جهاز توجيه الحدود.
الحقول من هذا النوع مبهمة (عن طريق الاستخدام عبر نواة OpenThread فقط)، وبالتالي يجب ألا يتم الوصول إليها أو استخدامها من قِبل المتّصل.
قبل استخدام مكرّر، يجب إعداده باستخدام otBorderRoutingPrefixTableInitIterator()
.
الدوال
otBorderRoutingClearPathInfoOptionPreferences
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
يمحو قيمة الإعدادات المفضّلة التي تم ضبطها سابقًا لخيارات معلومات المسار المُعلَن عنها.
بعد استدعاء هذه الوظيفة، سيستخدم BR الدور في الجهاز لتحديد تفضيل RIO: الوسيط المتوسط عندما يكون في دور جهاز التوجيه/القائد وأولوية منخفضة عندما يكون دوره ثانويًا.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
otBorderRoutingGetFavoredNat64بادئة
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
الحصول على بادئة NAT64 المفضّلة حاليًا
يمكن اكتشاف بادئة NAT64 المفضّلة من خلال رابط البنية الأساسية أو يمكن أن تكون بادئة NAT64 المحلية على هذا الجهاز.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otBorderRoutingGetFavoredOmrبادئة
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
للحصول على البادئة المُفضّلة حاليًا وغير القابلة للتوجيه (OMR)
يمكن العثور على بادئة OMR المفضّلة من بيانات الشبكة أو يمكن أن تكون بادئة OMR محلية على هذا الجهاز.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
الحصول على البادئة "على الرابط" المفضّلة حاليًا
البادئة المفضلة هي إما بادئة على الرابط تم اكتشافها على رابط البنية الأساسية أو بادئة الرابط المحلي.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
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 )
ويتم تكرار الإدخالات في جدول البادئة التي تم اكتشافها في جهاز توجيه الحدود.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otBorderRoutingGetOmrبادئة
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
للحصول على البادئة المحلية التي لا يمكن التعامل معها (OMR) على سبيل المثال، fdfc:1ff5:1512:5622::/64
بادئة OMR هي بادئة 64 بت يتم إنشاؤها عشوائيًا ويتم نشرها في شبكة Thread في حال عدم توفّر بادئة OMR. ويمكن الوصول إلى هذه البادئة من شبكة Wi-Fi أو إيثرنت محلية.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBorderRoutingGetOnLinkبادئة
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
للحصول على بادئة "الرابط على الصفحة" المحلية لرابط البنية الأساسية المجاورة.
بادئة "الرابط على الرابط" المحلية هي بادئة على شكل 64 بت يتم الإعلان عنها على رابط البنية الأساسية إذا لم تتوفّر بادئة رابط قابلة للاستخدام على الرابط يتم الإعلان عنها.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBorderRoutingGetPathInfoOptionPreferences
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
للحصول على الخيار المفضّل الحالي عند الإعلان عن خيارات معلومات المسار (RIO) في رسائل إعلانات أجهزة التوجيه التي يتم إرسالها عبر رابط البنية الأساسية.
يتم تحديد تفضيل RIO على النحو التالي:
- إذا اختار المستخدم صراحةً الاتصال بالرقم
otBorderRoutingSetRouteInfoOptionPreference()
، سيتم استخدام الخيار المفضّل المحدّد. - بخلاف ذلك، يتم تحديده بناءً على الدور الحالي للجهاز: الوسيط المفضّل عندما يكون في دور جهاز التوجيه/القائد وأولوية منخفضة عندما يكون في الدور الثانوي.
التفاصيل | |
---|---|
المرتجعات |
الخيار الحالي للخيار "معلومات المسار"
|
otBorderRoutingGetState
otBorderRoutingState otBorderRoutingGetState( otInstance *aInstance )
للحصول على الحالة الحالية لمدير توجيه الحدود.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
الحالة الراهنة لمدير توجيه الحدود
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
إعداد مدير توجيه الحدود في واجهة البنية الأساسية المحددة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otPlatInfraIfStateChanged.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
لإعداد otBorderRoutingPrefixTableIterator
.
يجب إعداد المكرِّر قبل استخدامه.
يمكن إعداد التكرار مرة أخرى لإعادة التشغيل من بداية الجدول.
عند تكرار الإدخالات في الجدول، يتم الحرص على توفُّر أوقات تحديث mMsecSinceLastUpdate
من الإدخالات بالنسبة إلى وقت إعداد التكرار.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
تتيح هذه السياسة تفعيل أو إيقاف مدير توجيه الحدود.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBorderRoutingSetSetInfoInfoPreferences
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
يحدِّد صراحةً الخيار المفضّل للاستخدام عند الإعلان عن خيارات معلومات المسار (RIO) في رسائل إعلانات جهاز التوجيه التي يتم إرسالها عبر رابط البنية الأساسية.
بعد استدعاء هذه الوظيفة، ستستخدم البرازيلية الخيار المفضّل المحدّد لجميع طلبات الإدراج التي تحدّدها الشركة. يمكن محو الإعداد المفضّل عن طريق الاتصال بـ otBorderRoutingClearRouteInfoOptionPreference()
.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
الموارد
تبدأ مواضيع مراجع واجهة برمجة تطبيقات OpenThread من رمز المصدر، وهو متاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.