مدير توجيه الحدود

تتضمن هذه الوحدة تعريفات ذات صلة بمدير توجيه الحدود.

ملخّص

تتطلب جميع الدوال في هذه الوحدة تفعيل 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{
  OT_BORDER_ROUTING_STATE_UNINITIALIZED,
  OT_BORDER_ROUTING_STATE_DISABLED,
  OT_BORDER_ROUTING_STATE_STOPPED,
  OT_BORDER_ROUTING_STATE_RUNNING
}
تعداد
يمثل حالة مدير توجيه الحدود.

أنواع المحددات

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: الوسيط المتوسط عندما يكون في دور جهاز التوجيه/القائد وأولوية منخفضة عندما يكون دوره ثانويًا.

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.

otBorderRoutingGetFavoredNat64بادئة

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 المفضّلة بنجاح.

otBorderRoutingGetFavoredOmrبادئة

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

للحصول على البادئة المُفضّلة حاليًا وغير القابلة للتوجيه (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
تم بنجاح استرداد البادئة على الرابط المفضّلة.

otBorderRoutingGetNat64بادئة

otError otBorderRoutingGetNat64Prefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

للحصول على بادئة NAT64 المحلية لجهاز توجيه الحدود.

لا يجوز الإعلان عن بادئة NAT64 في شبكة Thread.

يجب تفعيل 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
ما مِن إدخالات أخرى في الجدول.

otBorderRoutingGetOmrبادئة

otError otBorderRoutingGetOmrPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

للحصول على البادئة المحلية التي لا يمكن التعامل معها (OMR) على سبيل المثال، fdfc:1ff5:1512:5622::/64

بادئة OMR هي بادئة 64 بت يتم إنشاؤها عشوائيًا ويتم نشرها في شبكة Thread في حال عدم توفّر بادئة OMR. ويمكن الوصول إلى هذه البادئة من شبكة Wi-Fi أو إيثرنت محلية.

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[out] aPrefix
يشير إلى المؤشر الذي سيتم إخراج البادئة إليه.
قيم الإرجاع
OT_ERROR_INVALID_STATE
لم يتم إعداد "إدارة توجيه الحدود" حتى الآن.
OT_ERROR_NONE
تم استرداد بادئة OMR بنجاح.

otBorderRoutingGetOnLinkبادئة

otError otBorderRoutingGetOnLinkPrefix(
  otInstance *aInstance,
  otIp6Prefix *aPrefix
)

للحصول على بادئة "الرابط على الصفحة" المحلية لرابط البنية الأساسية المجاورة.

بادئة "الرابط على الرابط" المحلية هي بادئة على شكل 64 بت يتم الإعلان عنها على رابط البنية الأساسية إذا لم تتوفّر بادئة رابط قابلة للاستخدام على الرابط يتم الإعلان عنها.

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[out] aPrefix
يشير إلى المؤشر الذي سيتم إخراج البادئة إليه.
قيم الإرجاع
OT_ERROR_INVALID_STATE
لم يتم إعداد "إدارة توجيه الحدود" حتى الآن.
OT_ERROR_NONE
تم استرداد البادئة المحلية على الرابط بنجاح.

otBorderRoutingGetPathInfoOptionPreferences

otRoutePreference otBorderRoutingGetRouteInfoOptionPreference(
  otInstance *aInstance
)

للحصول على الخيار المفضّل الحالي عند الإعلان عن خيارات معلومات المسار (RIO) في رسائل إعلانات أجهزة التوجيه التي يتم إرسالها عبر رابط البنية الأساسية.

يتم تحديد تفضيل RIO على النحو التالي:

  • إذا اختار المستخدم صراحةً الاتصال بالرقم otBorderRoutingSetRouteInfoOptionPreference()، سيتم استخدام الخيار المفضّل المحدّد.
  • بخلاف ذلك، يتم تحديده بناءً على الدور الحالي للجهاز: الوسيط المفضّل عندما يكون في دور جهاز التوجيه/القائد وأولوية منخفضة عندما يكون في الدور الثانوي.

التفاصيل
المرتجعات
الخيار الحالي للخيار "معلومات المسار"

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.

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
تم تفعيل/إيقاف "مدير توجيه الحدود" بنجاح.

otBorderRoutingSetSetInfoInfoPreferences

void otBorderRoutingSetRouteInfoOptionPreference(
  otInstance *aInstance,
  otRoutePreference aPreference
)

يحدِّد صراحةً الخيار المفضّل للاستخدام عند الإعلان عن خيارات معلومات المسار (RIO) في رسائل إعلانات جهاز التوجيه التي يتم إرسالها عبر رابط البنية الأساسية.

بعد استدعاء هذه الوظيفة، ستستخدم البرازيلية الخيار المفضّل المحدّد لجميع طلبات الإدراج التي تحدّدها الشركة. يمكن محو الإعداد المفضّل عن طريق الاتصال بـ otBorderRoutingClearRouteInfoOptionPreference().

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aPreference
تفضيل المسار المطلوب استخدامه.

الموارد

تبدأ مواضيع مراجع واجهة برمجة تطبيقات OpenThread من رمز المصدر، وهو متاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.