معيار N64
تتضمّن هذه الوحدة وظائف وبنيات لدالة NAT64 على جهاز توجيه الحدود.
ملخّص
لا تتوفر هذه الدوال إلا عند تفعيل OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
التعدادات |
|
---|---|
otNat64DropReason{
|
تعداد أسباب إسقاط الحزمة. |
otNat64State{
|
تعداد الولايات التي تفرض هيئة حماية البيئة (N64). |
أنواع المحددات |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
يمثّل عنوان IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
يمثّل سجلّ ربط العناوين لجهاز NAT64. |
otNat64AddressMappingIterator
|
typedef يُستخدم للتكرار من خلال عمليات ربط العناوين عبر NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
يمثّل العدادات في NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
أسباب إسقاط الحزمة. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
يقدم عدادات حِزم البيانات التي تم إسقاطها بسبب أخطاء عند التعامل مع حِزم NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
تمثل عدادات البروتوكولات المتوافقة مع NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
يتم طلب المؤشر عند تلقّي مخطّط بيانات IPv4 (المترجم من خلال الترجمة من خلال NAT64). |
المتغيّرات |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
الدوال |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
تحوِّل سلسلة عنوان IPv4 يمكن للمستخدم قراءتها إلى تمثيل ثنائي.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
لتحويل العنوان إلى سلسلة.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
تحوِّل سلسلة IPv4 CIDR سهلة القراءة للمستخدم إلى تمثيل ثنائي.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
لتحويل معرّف CIDR لبروتوكول IPv4 إلى سلسلة.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
يمكنك ضبط
aIp4Address من خلال إجراء ترجمة لعناوين NAT64 من aIp6Address كما هو محدَّد في معيار RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
اختبِر ما إذا كان عنوانَا IPv4 متطابقَين.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
خصِّص ذاكرة تخزين مؤقت جديدة للرسائل لإرسال رسالة IPv4 إلى مترجِم الترجمة عبر NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
الحصول على معرّف CIDR لبروتوكول IPv4 الذي تم إعداده في أداة الترجمة بمعيار NAT64
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
الحصول على عدّادات المترجمين في NAT64
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
يتم عرض عدّادات أخطاء المترجم لدى NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
الحصول على معلومات AddressMapping التالية (باستخدام مكرر)
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
الحصول على حالة مدير بادئة NAT64
|
otNat64GetTranslatorState(otInstance *aInstance)
|
الحصول على حالة مترجم NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
لإعداد
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
ترجمة مخطط بيانات IPv4 إلى مخطط بيانات IPv6 وإرساله عبر واجهة Thread.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnable)
|
void
تفعيل دوال NAT64 أو إيقافها
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
لضبط CIDR المستخدم عند إعداد عنوان المصدر لحِزم IPv4 المترجمة.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
تسجّل معاودة الاتصال لتقديم مخططات بيانات IPv4 مُستلَمة.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
تضبط عنوان IPv6 من خلال إجراء ترجمة لعنوان NAT64 من بادئة NAT64 المفضّلة وعنوان IPv4 المحدّد، كما هو محدّد في RFC 6052.
|
هياكل |
|
---|---|
otIp4Address |
يمثّل عنوان IPv4. |
otIp4Cidr |
يمثّل حظر CIDR لبروتوكول IPv4. |
otNat64AddressMapping |
يمثّل سجلّ ربط العناوين لجهاز NAT64. |
otNat64AddressMappingIterator |
يُستخدم للتكرار من خلال عمليات ربط العناوين عبر NAT64. |
otNat64عدّادات |
يمثّل العدادات في NAT64. |
otNat64ErrorCounters |
يقدم عدادات حِزم البيانات التي تم إسقاطها بسبب أخطاء عند التعامل مع حِزم NAT64. |
otNat64ProtocolCounters |
تمثل عدادات البروتوكولات المتوافقة مع NAT64. |
الاتحادات |
|
---|---|
otIp4العنوان:: |
التعدادات
otNat64إفلات السبب
otNat64DropReason
أسباب إسقاط الحزمة.
أماكن إقامة | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
انخفاض حِزمة البيانات بسبب تعذُّر تحليل مخطط البيانات. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
انخفاض حِزمة البيانات بسبب عدم العثور على عمليات ربط أو بسبب نفاد مجموعة الخرائط. |
OT_NAT64_DROP_REASON_UNKNOWN
|
انخفاض في حزمة الحزمة لأسباب غير معروفة. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
انخفاض حِزمة البيانات بسبب بروتوكول IP غير متوافق. |
otNat64State
otNat64State
الولايات التي تفرض هيئة حماية البيئة (N64).
أماكن إقامة | |
---|---|
OT_NAT64_STATE_ACTIVE
|
تنشر البرازيل بادئة NAT64 و/أو تُترجم الحِزم. |
OT_NAT64_STATE_DISABLED
|
تم إيقاف NAT64. |
OT_NAT64_STATE_IDLE
|
تم تفعيل NAT64، ولكن قيمة BR هذه ليست نشطة في NAT64. |
OT_NAT64_STATE_NOT_RUNNING
|
تم تفعيل NAT64، ولكن لا تعمل واحدة أو أكثر من اعتماديات NAT64. |
أنواع المحددات
OtIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
يمثّل سجلّ ربط العناوين لجهاز NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
يُستخدم للتكرار من خلال عمليات ربط العناوين عبر NAT64.
الحقول من هذا النوع مبهمة (عن طريق الاستخدام عبر نواة OpenThread فقط)، وبالتالي يجب ألا يتم الوصول إليها أو استخدامها من قِبل المتّصل.
قبل استخدام مكرّر، يجب إعداده باستخدام otNat64AddressMappingIteratorInit()
.
otNat64خطأCountCounts
struct otNat64ErrorCounters otNat64ErrorCounters
يقدم عدادات حِزم البيانات التي تم إسقاطها بسبب أخطاء عند التعامل مع حِزم NAT64.
otNat64ProtocolCounts
struct otNat64ProtocolCounters otNat64ProtocolCounters
تمثل عدادات البروتوكولات المتوافقة مع NAT64.
otNat64تلقي المكالمات{3}
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
يتم طلب المؤشر عند تلقّي مخطّط بيانات IPv4 (المترجم من خلال الترجمة من خلال NAT64).
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
المتغيّرات
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
الدوال
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
تحوِّل سلسلة عنوان IPv4 يمكن للمستخدم قراءتها إلى تمثيل ثنائي.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
لتحويل العنوان إلى سلسلة.
يستخدم تنسيق السلسلة ترميزًا رباعي التربيع لأربعة بايت في العنوان (على سبيل المثال، "127.0.0.1".
إذا كانت السلسلة الناتجة لا تناسب aBuffer
(خلال aSize
من الأحرف)، سيتم اقتطاع السلسلة ولكن يتم دائمًا إنهاء السلسلة التي يتم إخراجها.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
تحوِّل سلسلة IPv4 CIDR سهلة القراءة للمستخدم إلى تمثيل ثنائي.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
لتحويل معرّف CIDR لبروتوكول IPv4 إلى سلسلة.
يستخدم تنسيق السلسلة ترميزًا رباعي التربيع لأربعة بايت في العنوان مع طول البادئة (على سبيل المثال، "127.0.0.1/32".
إذا كانت السلسلة الناتجة لا تناسب aBuffer
(خلال aSize
من الأحرف)، سيتم اقتطاع السلسلة ولكن يتم دائمًا إنهاء السلسلة التي يتم إخراجها.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otIp4استخراج من العنوانp6
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
يمكنك ضبط aIp4Address
من خلال إجراء ترجمة لعناوين NAT64 من aIp6Address
كما هو محدَّد في معيار RFC 6052.
يجب أن تكون قيمة NAT64 aPrefixLength
إحدى القيم التالية: 32 أو 40 أو 48 أو 56 أو 64 أو 96، وإلا لن يكون سلوك هذه الطريقة محدّدًا.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
اختبِر ما إذا كان عنوانَا IPv4 متطابقَين.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otIp4رسالة جديدة
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
خصِّص ذاكرة تخزين مؤقت جديدة للرسائل لإرسال رسالة IPv4 إلى مترجِم الترجمة عبر NAT64.
ستكون للمخازن المؤقتة للرسائل التي خصصتها هذه الدالة 20 بايت (الفرق بين حجم رؤوس IPv6 وأحجام عناوين IPv4).
متاحة عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
المرتجعات |
إشارة إلى المخزن المؤقت للرسائل أو إلى NULL إذا لم تتوفر أي مخازن رسائل مؤقتة أو كانت المعلمات غير صالحة.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
الحصول على معرّف CIDR لبروتوكول IPv4 الذي تم إعداده في أداة الترجمة بمعيار NAT64
متاحة عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
الحصول على عدّادات المترجمين في NAT64
يتم احتساب العدّاد منذ بدء المثيل.
متاحة عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
يتم عرض عدّادات أخطاء المترجم لدى NAT64.
يتم إعداد العدّادات على صفر عند إعداد مثيل OpenThread.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
الحصول على معلومات AddressMapping التالية (باستخدام مكرر)
متاحة عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otNat64GetGetManagerManager
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
الحصول على حالة مدير بادئة NAT64
متاحة عند تفعيل OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
الحصول على حالة مترجم NAT64.
متاحة عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
لإعداد otNat64AddressMappingIterator
.
يجب إعداد المكرِّر قبل استخدامه.
يمكن إعداد المكرِّر مرة أخرى لإعادة التشغيل من بداية معلومات الربط.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
إرسال otNat64
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
ترجمة مخطط بيانات IPv4 إلى مخطط بيانات IPv6 وإرساله عبر واجهة Thread.
المتّصل ينقل ملكية aMessage
عند إجراء هذه المكالمة. سيفتح OpenThread aMessage
عند اكتمال المعالجة، بما في ذلك عند عرض قيمة أخرى غير OT_ERROR_NONE
.
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnable )
تفعيل دوال NAT64 أو إيقافها
ملاحظة: يتضمن ذلك مترجم NAT64 (عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
) ومدير البادئة NAT64 (عند تفعيل OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
).
عند تفعيل OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
، يؤدي ضبط السياسة على "صحيح" إلى إعادة ضبط جدول الخرائط في المترجم.
متاحة عند تفعيل السياسة OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
أو OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
لضبط CIDR المستخدم عند إعداد عنوان المصدر لحِزم IPv4 المترجمة.
متاح فقط عند تفعيل OPENThread_CONFIG_NAT64_TRANSLATOR_ENABLE.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBorderrouterSend
otBorderrouterSetSetCallback
otNat64SetSetIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
تسجّل معاودة الاتصال لتقديم مخططات بيانات IPv4 مُستلَمة.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
تضبط عنوان IPv6 من خلال إجراء ترجمة لعنوان NAT64 من بادئة NAT64 المفضّلة وعنوان IPv4 المحدّد، كما هو محدّد في RFC 6052.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
المرتجعات |
تم تجميع عنوان IPv6 من بادئة NAT64 وعنوان IPv4.
|
||||||
المرتجعات |
OT_ERROR_INVALID_STATE لا تتوفر بادئة NAT64 صالحة في بيانات الشبكة.
|
وحدات ماكرو
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
حجم عنوان IPv4 (بالبايت)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
طول 000.000.000.000 بالإضافة إلى لاحقة NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
طول 000.000.000.000/00 بالإضافة إلى لاحقة NUL.
الموارد
تبدأ مواضيع مراجع واجهة برمجة تطبيقات OpenThread من رمز المصدر، وهو متاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.