رابط زیرساخت

این ماژول شامل انتزاع پلتفرم برای رابط شبکه زیرساخت مجاور است.

خلاصه

کارکرد

otPlatInfraIfDiscoverNat64Prefix (uint32_t aInfraIfIndex)
درخواستی برای کشف پیشوند NAT64 در رابط زیرساخت با aInfraIfIndex ارسال کنید.
otPlatInfraIfDiscoverNat64PrefixDone ( otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix)
void
درایور رابط infra این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که کشف پیشوند NAT64 انجام شده است.
otPlatInfraIfHasAddress (uint32_t aInfraIfIndex, const otIp6Address *aAddress)
bool
نشان می دهد که آیا یک رابط مادون قرمز آدرس IPv6 داده شده را اختصاص داده است یا خیر.
otPlatInfraIfRecvIcmp6Nd ( otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
void
درایور رابط infra این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که پیام ICMPv6 Neighbor Discovery دریافت شده است.
otPlatInfraIfSendIcmp6Nd (uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength)
یک پیام ICMPv6 Neighbor Discovery در رابط زیرساخت داده شده ارسال می کند.
otPlatInfraIfStateChanged ( otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning)
درایور رابط infra این روش را برای اطلاع OpenThread از تغییرات وضعیت رابط فراخوانی می کند.

کارکرد

پیشوند otPlatInfraIfDiscoverNat64

otError otPlatInfraIfDiscoverNat64Prefix(
  uint32_t aInfraIfIndex
)

درخواستی برای کشف پیشوند NAT64 در رابط زیرساخت با aInfraIfIndex ارسال کنید.

OpenThread این روش را به صورت دوره ای فراخوانی می کند تا وجود یا تغییر پیشوند NAT64 را نظارت کند.

جزئیات
مولفه های
[in] aInfraIfIndex
شاخص رابط زیرساخت برای کشف پیشوند NAT64.
ارزش های بازگشتی
OT_ERROR_NONE
درخواست کشف پیشوند NAT64 با موفقیت انجام شد.
OT_ERROR_FAILED
درخواست کشف پیشوند NAT64 انجام نشد.

otPlatInfraIfDiscoverNat64PrefixDone

void otPlatInfraIfDiscoverNat64PrefixDone(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Prefix *aIp6Prefix
)

درایور رابط infra این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که کشف پیشوند NAT64 انجام شده است.

انتظار می رود پس از فراخوانی otPlatInfraIfDiscoverNat64Prefix فراخوانی شود. اگر هیچ پیشوند NAT64 کشف نشد، aIp6Prefix باید به یک پیشوند خالی با طول صفر اشاره کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aInfraIfIndex
شاخص رابط زیرساختی که پیشوند NAT64 بر روی آن کشف شده است.
[in] aIp6Prefix
اشاره گر به پیشوند NAT64.

otPlatInfraIfHasAddress

bool otPlatInfraIfHasAddress(
  uint32_t aInfraIfIndex,
  const otIp6Address *aAddress
)

نشان می دهد که آیا یک رابط مادون قرمز آدرس IPv6 داده شده را اختصاص داده است یا خیر.

جزئیات
مولفه های
[in] aInfraIfIndex
شاخص رابط مادون قرمز.
[in] aAddress
آدرس IPv6
برمی گرداند
اگر رابط زیرفرم آدرس IPv6 اختصاص داده باشد، درست است، در غیر این صورت نادرست است.

otPlatInfraIfRecvIcmp6Nd

void otPlatInfraIfRecvIcmp6Nd(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  const otIp6Address *aSrcAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

درایور رابط infra این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که پیام ICMPv6 Neighbor Discovery دریافت شده است.

RFC 4861 را ببینید: https://tools.ietf.org/html/rfc4861 .

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aInfraIfIndex
شاخص رابط زیرساختی که پیام ICMPv6 روی آن دریافت می شود.
[in] aSrcAddress
آدرس منبع این پیام از آن دریافت شده است.
[in] aBuffer
بافر پیام ICMPv6.
[in] aBufferLength
طول بافر پیام ICMPv6.

otPlatInfraIfSendIcmp6Nd

otError otPlatInfraIfSendIcmp6Nd(
  uint32_t aInfraIfIndex,
  const otIp6Address *aDestAddress,
  const uint8_t *aBuffer,
  uint16_t aBufferLength
)

یک پیام ICMPv6 Neighbor Discovery در رابط زیرساخت داده شده ارسال می کند.

RFC 4861 را ببینید: https://tools.ietf.org/html/rfc4861 .

جزئیات
مولفه های
[in] aInfraIfIndex
نمایه رابط زیرساخت این پیام به آن ارسال می شود.
[in] aDestAddress
آدرس مقصدی که این پیام به آن ارسال می شود.
[in] aBuffer
بافر پیام ICMPv6. جمع چک ICMPv6 صفر است و پلتفرم باید جمع‌بندی چک را محاسبه کند.
[in] aBufferLength
طول بافر پیام
ارزش های بازگشتی
OT_ERROR_NONE
پیام ICMPv6 با موفقیت ارسال شد.
OT_ERROR_FAILED
پیام ICMPv6 ارسال نشد.

otPlatInfraIfStateChanged

otError otPlatInfraIfStateChanged(
  otInstance *aInstance,
  uint32_t aInfraIfIndex,
  bool aIsRunning
)

درایور رابط infra این روش را برای اطلاع OpenThread از تغییرات وضعیت رابط فراخوانی می کند.

حتی زمانی که وضعیت اجرای رابط تغییر نکرده است، برای پلتفرم خوب است که به متد فراخوانی کند. در این حالت، وضعیت Routing Manager تحت تأثیر قرار نمی گیرد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aInfraIfIndex
شاخص رابط زیرساخت.
[in] aIsRunning
یک بولی که نشان می دهد که آیا رابط زیرساخت در حال اجرا است یا خیر.
ارزش های بازگشتی
OT_ERROR_NONE
وضعیت رابط infra با موفقیت به روز شد.
OT_ERROR_INVALID_STATE
Routing Manager مقداردهی اولیه نشده است.
OT_ERROR_INVALID_ARGS
aInfraIfIndex با رابط زیرینی که مدیر مسیریابی با آن مقداردهی اولیه شده است مطابقت ندارد.

منابع

موضوعات مرجع OpenThread API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.