NAT64

این ماژول شامل توابع و ساختارهایی برای عملکرد NAT64 در روتر مرزی است.

خلاصه

این توابع فقط زمانی در دسترس هستند که OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE فعال باشد.

شمارش ها

otNat64DropReason {
OT_NAT64_DROP_REASON_UNKNOWN = 0,
OT_NAT64_DROP_REASON_ILLEGAL_PACKET ,
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO ,
OT_NAT64_DROP_REASON_NO_MAPPING
}
enum
دلایل سقوط بسته
otNat64State {
OT_NAT64_STATE_DISABLED = 0,
OT_NAT64_STATE_NOT_RUNNING ,
OT_NAT64_STATE_IDLE ,
OT_NAT64_STATE_ACTIVE
}
enum
ایالات NAT64.

Typedefs

otIp4Address typedef
struct otIp4Address
نشان دهنده یک آدرس IPv4 است.
otIp4Cidr typedef
struct otIp4Cidr
otNat64AddressMapping typedef
یک رکورد نگاشت آدرس برای NAT64 را نشان می دهد.
otNat64AddressMappingIterator typedef
برای تکرار از طریق نگاشت آدرس NAT64 استفاده می شود.
otNat64Counters typedef
شمارنده های NAT64 را نشان می دهد.
otNat64DropReason typedef
دلایل سقوط بسته
otNat64ErrorCounters typedef
شمارنده بسته های رها شده به دلیل خطا در هنگام مدیریت بسته های NAT64 را نشان می دهد.
otNat64ProtocolCounters typedef
شمارنده های پروتکل های پشتیبانی شده توسط NAT64 را نشان می دهد.
otNat64ReceiveIp4Callback )(otMessage *aMessage, void *aContext) typedef
void(*
هنگامی که یک دیتاگرام IPv4 (ترجمه شده توسط مترجم NAT64) دریافت می شود، اشاره گر فراخوانی می شود.

متغیرها

OT_TOOL_PACKED_END

کارکرد

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

دلایل سقوط بسته

خواص
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 در حال اجرا نیستند.

Typedefs

آدرس otIp4

struct otIp4Address otIp4Address

نشان دهنده یک آدرس IPv4 است.

otIp4Cidr

struct otIp4Cidr otIp4Cidr

otNat64AddressMapping

struct otNat64AddressMapping otNat64AddressMapping

یک رکورد نگاشت آدرس برای NAT64 را نشان می دهد.

otNat64AddressMappingIterator

struct otNat64AddressMappingIterator otNat64AddressMappingIterator

برای تکرار از طریق نگاشت آدرس NAT64 استفاده می شود.

فیلدهای این نوع مات هستند (فقط برای استفاده توسط OpenThread core در نظر گرفته شده است) و بنابراین نباید توسط تماس گیرنده به آنها دسترسی یا استفاده شود.

قبل از استفاده از یک تکرار کننده، باید با استفاده از otNat64AddressMappingIteratorInit() مقداردهی اولیه شود.

شمارنده های otNat64

struct otNat64Counters otNat64Counters

شمارنده های NAT64 را نشان می دهد.

otNat64DropReason

enum otNat64DropReason otNat64DropReason

دلایل سقوط بسته

شمارشگر خطا otNat64

struct otNat64ErrorCounters otNat64ErrorCounters

شمارنده بسته های رها شده به دلیل خطا در هنگام مدیریت بسته های NAT64 را نشان می دهد.

شمارشگرهای پروتکل otNat64

struct otNat64ProtocolCounters otNat64ProtocolCounters

شمارنده های پروتکل های پشتیبانی شده توسط NAT64 را نشان می دهد.

otNat64ReceiveIp4Callback

void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)

هنگامی که یک دیتاگرام IPv4 (ترجمه شده توسط مترجم NAT64) دریافت می شود، اشاره گر فراخوانی می شود.

جزئیات
مولفه های
[in] aMessage
یک اشاره گر به بافر پیام حاوی دیتاگرام IPv6 دریافتی. این تابع مالکیت aMessage را به گیرنده تماس برگشتی منتقل می کند. پیام پس از پردازش باید توسط گیرنده پاسخ به تماس آزاد شود.
[in] aContext
اشاره‌ای به زمینه خاص برنامه.

متغیرها

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END

کارکرد

otIp4AddressFromString

otError otIp4AddressFromString(
  const char *aString,
  otIp4Address *aAddress
)

یک رشته آدرس IPv4 قابل خواندن توسط انسان را به یک نمایش باینری تبدیل می کند.

جزئیات
مولفه های
[in] aString
یک اشاره گر به یک رشته با پایان NULL.
[out] aAddress
اشاره گر به آدرس IPv4.
ارزش های بازگشتی
OT_ERROR_NONE
رشته با موفقیت تجزیه شد.
OT_ERROR_INVALID_ARGS
تجزیه رشته انجام نشد.

otIp4AddressToString

void otIp4AddressToString(
  const otIp4Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

آدرس را به رشته تبدیل می کند.

قالب رشته از نماد چهار بایتی در آدرس استفاده می کند (به عنوان مثال، "127.0.0.1").

اگر رشته به دست آمده در aBuffer (در کاراکترهای aSize آن) قرار نگیرد، رشته کوتاه می‌شود اما رشته خروجی همیشه تهی است.

جزئیات
مولفه های
[in] aAddress
اشاره گر به آدرس IPv4 (نباید NULL باشد).
[out] aBuffer
اشاره گر به آرایه char برای خروجی رشته (نباید nullptr باشد).
[in] aSize
اندازه aBuffer (بر حسب بایت).

otIp4CidrFromString

otError otIp4CidrFromString(
  const char *aString,
  otIp4Cidr *aCidr
)

یک رشته CIDR IPv4 قابل خواندن توسط انسان را به یک نمایش باینری تبدیل می کند.

جزئیات
مولفه های
[in] aString
یک اشاره گر به یک رشته با پایان NULL.
[out] aCidr
اشاره گر به IPv4 CIDR.
ارزش های بازگشتی
OT_ERROR_NONE
رشته با موفقیت تجزیه شد.
OT_ERROR_INVALID_ARGS
تجزیه رشته انجام نشد.

otIp4CidrToString

void otIp4CidrToString(
  const otIp4Cidr *aCidr,
  char *aBuffer,
  uint16_t aSize
)

IPv4 CIDR را به یک رشته تبدیل می کند.

قالب رشته از نماد چهار بایتی در آدرس با طول پیشوند استفاده می کند (به عنوان مثال، "127.0.0.1/32").

اگر رشته به دست آمده در aBuffer (در کاراکترهای aSize آن) قرار نگیرد، رشته کوتاه می‌شود اما رشته خروجی همیشه تهی است.

جزئیات
مولفه های
[in] aCidr
اشاره گر به IPv4 CIDR (نباید NULL باشد).
[out] aBuffer
اشاره گر به آرایه char برای خروجی رشته (نباید nullptr باشد).
[in] aSize
اندازه aBuffer (بر حسب بایت).

otIp4ExtractFromIp6Address

void otIp4ExtractFromIp6Address(
  uint8_t aPrefixLength,
  const otIp6Address *aIp6Address,
  otIp4Address *aIp4Address
)

aIp4Address با انجام ترجمه آدرس NAT64 از aIp6Address همانطور که در RFC 6052 مشخص شده است، تنظیم کنید.

NAT64 aPrefixLength باید یکی از مقادیر زیر باشد: 32، 40، 48، 56، 64 یا 96، در غیر این صورت رفتار این روش تعریف نشده است.

جزئیات
مولفه های
[in] aPrefixLength
طول پیشوند مورد استفاده برای ترجمه IPv4/IPv6.
[in] aIp6Address
اشاره گر به آدرس IPv6.
[out] aIp4Address
اشاره گر برای خروجی آدرس IPv4.

otIp4IsAddressEqual

bool otIp4IsAddressEqual(
  const otIp4Address *aFirst,
  const otIp4Address *aSecond
)

تست کنید که آیا دو آدرس IPv4 یکسان هستند یا خیر.

جزئیات
مولفه های
[in] aFirst
اشاره گر به اولین آدرس IPv4 برای مقایسه.
[in] aSecond
اشاره گر به آدرس IPv4 دوم برای مقایسه.
ارزش های بازگشتی
TRUE
دو آدرس IPv4 یکسان هستند.
FALSE
دو آدرس IPv4 یکسان نیستند.

otIp4NewMessage

otMessage * otIp4NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

یک بافر پیام جدید برای ارسال پیام IPv4 به مترجم NAT64 اختصاص دهید.

بافرهای پیام تخصیص داده شده توسط این تابع دارای 20 بایت (تفاوت بین اندازه سرصفحه های IPv6 و اندازه سرصفحه IPv4) ذخیره شده خواهند بود.

زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aSettings
یک اشاره گر به تنظیمات پیام یا NULL برای تنظیم تنظیمات پیش فرض.
برمی گرداند
یک اشاره گر به بافر پیام یا NULL در صورتی که هیچ بافر پیامی موجود نباشد یا پارامترها نامعتبر باشند.
همچنین ببینید:
otNat64 ارسال کنید

otNat64GetCidr

otError otNat64GetCidr(
  otInstance *aInstance,
  otIp4Cidr *aCidr
)

IPv4 CIDR را در مترجم NAT64 پیکربندی می کند.

زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[out] aCidr
اشاره گر به otIp4Cidr . جایی که CIDR پر می شود.

otNat64GetCounters

void otNat64GetCounters(
  otInstance *aInstance,
  otNat64ProtocolCounters *aCounters
)

شمارنده های مترجم NAT64 را دریافت می کند.

شمارشگر از زمانی که نمونه اولیه شد شمارش می شود.

زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[out] aCounters
یک اشاره گر به یک otNat64Counters که شمارنده های مترجم NAT64 در آن قرار می گیرند.

otNat64GetErrorCounters

void otNat64GetErrorCounters(
  otInstance *aInstance,
  otNat64ErrorCounters *aCounters
)

شمارشگر خطای مترجم NAT64 را دریافت می کند.

هنگامی که نمونه OpenThread مقداردهی اولیه شود شمارنده ها به صفر مقداردهی می شوند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[out] aCounters
یک اشاره گر به یک otNat64Counters که شمارنده های مترجم NAT64 در آن قرار می گیرند.

otNat64GetNextAddressMapping

otError otNat64GetNextAddressMapping(
  otInstance *aInstance,
  otNat64AddressMappingIterator *aIterator,
  otNat64AddressMapping *aMapping
)

اطلاعات AddressMapping بعدی را دریافت می کند (با استفاده از یک تکرار کننده).

زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in,out] aIterator
اشاره گر به تکرار کننده. در صورت موفقیت، تکرارکننده به‌روزرسانی می‌شود تا به رکورد بعدی نقشه‌برداری آدرس NAT64 اشاره کند. برای دریافت اولین ورودی، تکرارکننده باید روی OT_NAT64_ADDRESS_MAPPING_ITERATOR_INIT تنظیم شود.
[out] aMapping
اشاره گر به otNat64AddressMapping که در آن اطلاعات رکورد بعدی نقشه برداری آدرس NAT64 قرار می گیرد (در صورت موفقیت).
ارزش های بازگشتی
OT_ERROR_NONE
اطلاعات نگاشت آدرس NAT64 بعدی با موفقیت یافت شد ( aMapping با موفقیت به روز شد).
OT_ERROR_NOT_FOUND
هیچ اطلاعات نقشه‌برداری آدرس NAT64 بعدی یافت نشد.

otNat64GetPrefixManagerState

otNat64State otNat64GetPrefixManagerState(
  otInstance *aInstance
)

وضعیت مدیر پیشوند NAT64 را دریافت می کند.

زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
ارزش های بازگشتی
OT_NAT64_STATE_DISABLED
مدیر پیشوند NAT64 غیرفعال است.
OT_NAT64_STATE_NOT_RUNNING
مدیر پیشوند NAT64 فعال است، اما در حال اجرا نیست (زیرا مدیر مسیریابی در حال اجرا نیست).
OT_NAT64_STATE_IDLE
مدیر پیشوند NAT64 فعال است، اما پیشوند NAT64 را منتشر نمی کند. معمولاً وقتی روتر مرزی دیگری وجود دارد که پیشوند NAT64 را با اولویت بالاتر منتشر می کند.
OT_NAT64_STATE_ACTIVE
مدیر پیشوند NAT64 فعال است و در حال انتشار پیشوند NAT64 در شبکه Thread است.

otNat64GetTranslatorState

otNat64State otNat64GetTranslatorState(
  otInstance *aInstance
)

حالت مترجم NAT64 را دریافت می کند.

زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
ارزش های بازگشتی
OT_NAT64_STATE_DISABLED
مترجم NAT64 غیرفعال است.
OT_NAT64_STATE_NOT_RUNNING
مترجم NAT64 فعال است، اما مترجم با پیشوند معتبر NAT64 و CIDR پیکربندی نشده است.
OT_NAT64_STATE_ACTIVE
مترجم NAT64 فعال است و در حال ترجمه بسته ها است.

otNat64InitAddressMappingIterator

void otNat64InitAddressMappingIterator(
  otInstance *aInstance,
  otNat64AddressMappingIterator *aIterator
)

یک otNat64AddressMappingIterator را راه اندازی می کند.

یک تکرار کننده باید قبل از استفاده مقداردهی اولیه شود.

یک تکرار کننده را می توان دوباره برای راه اندازی مجدد از ابتدای اطلاعات نقشه برداری مقداردهی کرد.

جزئیات
مولفه های
[in] aInstance
نمونه OpenThread.
[out] aIterator
یک اشاره گر به تکرار کننده برای مقداردهی اولیه.

otNat64 ارسال کنید

otError otNat64Send(
  otInstance *aInstance,
  otMessage *aMessage
)

دیتاگرام IPv4 را به دیتاگرام IPv6 ترجمه می کند و از طریق رابط Thread ارسال می کند.

هنگام برقراری این تماس، تماس‌گیرنده مالکیت aMessage را منتقل می‌کند. OpenThread وقتی پردازش کامل شد، از جمله زمانی که مقداری غیر از OT_ERROR_NONE برگردانده شد، aMessage آزاد می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aMessage
اشاره گر به بافر پیام حاوی دیتاگرام IPv4.
ارزش های بازگشتی
OT_ERROR_NONE
پیام با موفقیت پردازش شد.
OT_ERROR_DROP
پیام به خوبی شکل گرفته بود اما به دلیل قوانین پردازش بسته به طور کامل پردازش نشد.
OT_ERROR_NO_BUFS
هنگام پردازش دیتاگرام، بافرهای پیام لازم تخصیص داده نشد.
OT_ERROR_NO_ROUTE
عدم وجود مسیر به میزبان.
OT_ERROR_INVALID_SOURCE_ADDRESS
آدرس منبع نامعتبر است، به عنوان مثال یک آدرس anycast یا یک آدرس چندپخشی.
OT_ERROR_PARSE
هنگام پردازش پیام با سرصفحه نادرست مواجه شدیم.

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 فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aEnabled
یک بولی برای فعال/غیرفعال کردن توابع NAT64
همچنین ببینید:
otNat64GetTranslatorState
otNat64GetPrefixManagerState

otNat64SetIp4Cidr

otError otNat64SetIp4Cidr(
  otInstance *aInstance,
  const otIp4Cidr *aCidr
)

CIDR مورد استفاده هنگام تنظیم آدرس منبع بسته های IPv4 ترجمه شده خروجی را تنظیم می کند.

فقط زمانی در دسترس است که OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aCidr
اشاره گر به otIp4Cidr برای بلوک IPv4 CIDR برای NAT64.
ارزش های بازگشتی
OT_ERROR_INVALID_ARGS
CIDR داده شده یک IPv4 CIDR معتبر برای NAT64 نیست.
OT_ERROR_NONE
CIDR برای NAT64 با موفقیت تنظیم شد.
همچنین ببینید:
otBorderRouterSend
otBorderRouterSetReceiveCallback

otNat64SetReceiveIp4Callback

void otNat64SetReceiveIp4Callback(
  otInstance *aInstance,
  otNat64ReceiveIp4Callback aCallback,
  void *aContext
)

برای ارائه دیتاگرام های IPv4 دریافتی، یک تماس برگشتی ثبت می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aCallback
اشاره گر به تابعی که هنگام دریافت دیتاگرام IPv4 فراخوانی می شود یا برای غیرفعال کردن پاسخ به تماس NULL فراخوانی می شود.
[in] aContext
اشاره‌ای به زمینه خاص برنامه.

otNat64SynthesizeIp6Address

otError otNat64SynthesizeIp6Address(
  otInstance *aInstance,
  const otIp4Address *aIp4Address,
  otIp6Address *aIp6Address
)

با انجام ترجمه آدرس NAT64 از پیشوند ترجیحی NAT64 و آدرس IPv4 داده شده همانطور که در RFC 6052 مشخص شده است، آدرس IPv6 را تنظیم می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aIp4Address
یک اشاره گر به آدرس IPv4 برای ترجمه به IPv6.
[out] aIp6Address
اشاره گر به آدرس 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 سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.