NAT64
تتضمن هذه الوحدة دوال ودوال لدالة NAT64 على جهاز التوجيه الحدودي.
ملخّص
لا تتوفّر هذه الدوال إلّا عند تفعيل OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
.
عمليات التعداد |
|
---|---|
otNat64DropReason{
|
تعداد أسباب إسقاط الحِزمة |
otNat64State{
|
تعداد حالات NAT64. |
تحديدات النوع |
|
---|---|
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 aEnabled)
|
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. |
otNat64Counters |
يمثل عدّادات NAT64. |
otNat64ErrorCounters |
يمثل عدادات الحزم التي تم إسقاطها بسبب حدوث أخطاء عند معالجة حزم NAT64. |
otNat64ProtocolCounters |
يمثل عدادات البروتوكولات المتوافقة مع NAT64. |
الاتحادات |
|
---|---|
otIp4Address:: |
عمليات التعداد
otNat64DropReason
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
حالات NAT64.
أماكن إقامة | |
---|---|
OT_NAT64_STATE_ACTIVE
|
ينشر BR حاليًا بادئة NAT64 و/أو ترجمة حِزم البيانات. |
OT_NAT64_STATE_DISABLED
|
آلية NAT64 غير مفعّلة. |
OT_NAT64_STATE_IDLE
|
تم تفعيل NAT64، إلا أنّ غرفة BR هذه ليست نشطة من نوع NAT64 BR. |
OT_NAT64_STATE_NOT_RUNNING
|
تم تفعيل NAT64، لكن هناك تبعية واحدة أو أكثر من NAT64 لا تعمل. |
تحديدات النوع
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
يمثل سجل تعيين العنوان لـ NAT64.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
يُستخدم لتكرار تعيينات عناوين NAT64.
الحقول في هذا النوع معتمة (الغرض منها الاستخدام بواسطة OpenThread الأساسي فقط) وبالتالي يجب ألا يصل إليها المتصل أو يستخدمها.
قبل استخدام المكرر، يجب تهيئته باستخدام otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
يمثل عدادات الحزم التي تم إسقاطها بسبب حدوث أخطاء عند معالجة حزم NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
يمثل عدادات البروتوكولات المتوافقة مع NAT64.
otNat64ReceiveIp4Callback
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
)، سيتم اقتطاع السلسلة، ولكن يتم دائمًا إبقاء قيمة السلسلة فارغة.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otIp4ExtractFromIp6Address
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 متطابقَين.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otIp4NewMessage
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
" مفعّلة.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otNat64GetPrefixManagerState
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
.
"يجب" تهيئة المكرر قبل استخدامه.
يمكن إعداد المكرّر مرة أخرى لإعادة التشغيل من بداية معلومات التعيين.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
لترجمة مخطط بيانات IPv4 إلى مخطط بيانات IPv6 وإرساله عبر واجهة Thread.
ينقل المتصل ملكية aMessage
عند إجراء هذه المكالمة. سيعمل OpenThread على تفريغ aMessage
عند اكتمال المعالجة، بما في ذلك عند عرض قيمة بخلاف OT_ERROR_NONE
.
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
تفعيل دوال 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
otBorderRouterSetReceivedCallback
otNat64SetReceiveIp4Callback
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.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
المرتجعات |
OT_ERROR_NONE تم بنجاح إنشاء عنوان 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. للحصول على مزيد من المعلومات أو للمساهمة في مستنداتنا، يمكنك الاطّلاع على المراجع.