NAT64
این ماژول شامل توابع و ساختارهایی برای عملکرد NAT64 در روتر مرزی است.
خلاصه
این توابع فقط زمانی در دسترس هستند که OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
فعال باشد.
شمارش ها | |
---|---|
otNat64DropReason { | enum دلایل سقوط بسته |
otNat64State { | enum ایالات NAT64. |
Typedefs | |
---|---|
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) | یک رشته CIDR IPv4 قابل خواندن توسط انسان را به یک نمایش باینری تبدیل می کند. |
otIp4CidrToString (const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize) | void IPv4 CIDR را به یک رشته تبدیل می کند. |
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) | IPv4 CIDR را در مترجم 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) | با انجام ترجمه آدرس NAT64 از پیشوند ترجیحی NAT64 و آدرس IPv4 داده شده همانطور که در RFC 6052 مشخص شده است، آدرس IPv6 را تنظیم می کند. |
سازه ها | |
---|---|
آدرس otIp4 | نشان دهنده یک آدرس IPv4 است. |
otIp4Cidr | یک بلوک IPv4 CIDR را نشان می دهد. |
otNat64AddressMapping | یک رکورد نگاشت آدرس برای NAT64 را نشان می دهد. |
otNat64AddressMappingIterator | برای تکرار از طریق نگاشت آدرس NAT64 استفاده می شود. |
شمارنده های otNat64 | شمارنده های NAT64 را نشان می دهد. |
شمارشگر خطا otNat64 | شمارنده بسته های رها شده به دلیل خطا در هنگام مدیریت بسته های NAT64 را نشان می دهد. |
شمارشگرهای پروتکل otNat64 | شمارنده های پروتکل های پشتیبانی شده توسط NAT64 را نشان می دهد. |
اتحادیه ها | |
---|---|
آدرس otIp4:: OT_TOOL_PACKED_FIELD |
شمارش ها
otNat64DropReason
otNat64DropReason
دلایل سقوط بسته
otNat64State
otNat64State
ایالات NAT64.
Typedefs
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
یک رکورد نگاشت آدرس برای NAT64 را نشان می دهد.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
برای تکرار از طریق نگاشت آدرس NAT64 استفاده می شود.
فیلدهای این نوع مات هستند (فقط برای استفاده توسط OpenThread core در نظر گرفته شده است) و بنابراین نباید توسط تماس گیرنده به آنها دسترسی یا استفاده شود.
قبل از استفاده از یک تکرار کننده، باید با استفاده از otNat64AddressMappingIteratorInit()
مقداردهی اولیه شود.
شمارشگر خطا otNat64
struct otNat64ErrorCounters otNat64ErrorCounters
شمارنده بسته های رها شده به دلیل خطا در هنگام مدیریت بسته های NAT64 را نشان می دهد.
شمارشگرهای پروتکل otNat64
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 )
یک رشته CIDR IPv4 قابل خواندن توسط انسان را به یک نمایش باینری تبدیل می کند.
جزئیات | |||||
---|---|---|---|---|---|
مولفه های |
| ||||
ارزش های بازگشتی |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
IPv4 CIDR را به یک رشته تبدیل می کند.
قالب رشته از نماد چهار بایتی در آدرس با طول پیشوند استفاده می کند (به عنوان مثال، "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 در صورتی که هیچ بافر پیامی موجود نباشد یا پارامترها نامعتبر باشند. |
otNat64 ارسال کنید
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
IPv4 CIDR را در مترجم 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
را راه اندازی می کند.
یک تکرار کننده باید قبل از استفاده مقداردهی اولیه شود.
یک تکرار کننده را می توان دوباره برای راه اندازی مجدد از ابتدای اطلاعات نقشه برداری مقداردهی کرد.
جزئیات | |||||
---|---|---|---|---|---|
مولفه های |
|
otNat64 ارسال کنید
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
دیتاگرام IPv4 را به دیتاگرام IPv6 ترجمه می کند و از طریق رابط Thread ارسال می کند.
هنگام برقراری این تماس، تماسگیرنده مالکیت aMessage
را منتقل میکند. OpenThread وقتی پردازش کامل شد، از جمله زمانی که مقداری غیر از OT_ERROR_NONE
برگردانده شد، aMessage
آزاد می کند.
جزئیات | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
مولفه های |
| ||||||||||||
ارزش های بازگشتی |
|
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
فعال است، تنظیم غیرفعال بر روی true جدول نگاشت را در مترجم بازنشانی می کند.
زمانی در دسترس است که 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
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
برای ارائه دیتاگرام های IPv4 دریافتی، یک تماس برگشتی ثبت می کند.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
مولفه های |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
با انجام ترجمه آدرس NAT64 از پیشوند ترجیحی NAT64 و آدرس IPv4 داده شده همانطور که در RFC 6052 مشخص شده است، آدرس IPv6 را تنظیم می کند.
جزئیات | |||||||
---|---|---|---|---|---|---|---|
مولفه های |
| ||||||
برمی گرداند | 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 API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. The OPENTHREAD and related marks are trademarks of the Thread Group and are used under license.
تاریخ آخرین بهروزرسانی 2023-12-01 بهوقت ساعت هماهنگ جهانی.