nl:: اینت:: RawEndPoint

#include <src/inet/RawEndPoint.h>

اشیاء این کلاس نشان دهنده نقاط پایانی شبکه IP خام هستند.

خلاصه

Nest Inet Layer روش‌هایی را برای تعامل با نقاط پایانی شبکه IP (سوکت‌های SOCK_RAW در لینوکس و سیستم‌های مشتق‌شده از BSD) یا بلوک‌های کنترل پروتکل خام LwIP کپسوله می‌کند، همانطور که سیستم بر این اساس پیکربندی می‌شود.

وراثت

از: nl::Inet::IPEndPointBasis ارث می برد

صفات عمومی

IPProto
IPProtocol
نسخه پروتکل پیام کنترل اینترنت (ICMP)
IPVer
IPVersion
نسخه پروتکل اینترنت

توابع عمومی

Bind (IPAddressType addrType, IPAddress addr, InterfaceId intfId)
نقطه پایانی را به یک آدرس IP رابط متصل کنید.
BindIPv6LinkLocal (InterfaceId intf, IPAddress addr)
نقطه پایانی خام را به یک آدرس دامنه پیوندی IPv6 در نمایه رابط مشخص شده متصل کنید.
BindInterface (IPAddressType addrType, InterfaceId intf)
نقطه پایانی را به یک رابط شبکه متصل کنید.
Close (void)
void
نقطه پایانی را ببندید.
Free (void)
void
نقطه پایانی را ببندید و حافظه آن را بازیافت کنید.
GetBoundInterface (void)
InterfaceId
رابط محدود را در این نقطه پایانی دریافت کنید.
Listen (void)
نقطه پایانی را برای دریافت پیام های ICMP آماده کنید.
SendMsg (const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
یک پیام ICMP به مقصد مشخص شده ارسال کنید.
SendTo ( IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
مترادف SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) .
SendTo ( IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
یک پیام ICMP به آدرس مقصد مشخص شده ارسال کنید.
SetICMPFilter (uint8_t numICMPTypes, const uint8_t *aICMPTypes)
پارامترهای فیلتر ICMP6 را در پشته شبکه تنظیم کنید.

صفات عمومی

IPProto

IPProtocol IPProto

نسخه پروتکل پیام کنترل اینترنت (ICMP)

در حالی که این فیلد یک متغیر کلاس قابل تغییر است، اما تغییر ناپذیر کلاس است.

IPVer

IPVersion IPVer

نسخه پروتکل اینترنت

در حالی که این فیلد یک متغیر کلاس قابل تغییر است، اما تغییر ناپذیر کلاس است.

توابع عمومی

بستن

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

نقطه پایانی را به یک آدرس IP رابط متصل کنید.

نقطه پایانی را به آدرس IP رابط شبکه مشخص شده متصل می کند.

جزئیات
مولفه های
[in] addrType
نسخه پروتکل آدرس IP
[in] addr
آدرس IP (باید یک آدرس رابط باشد)
[in] intfId
یک نشانگر اختیاری رابط شبکه
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: نقطه پایانی ملزم به آدرس است
INET_ERROR_INCORRECT_STATE
نقطه پایانی قبلاً محدود شده است
INET_NO_MEMORY
حافظه کافی برای نقطه پایانی
INET_ERROR_UNKNOWN_INTERFACE
در برخی از پلتفرم‌ها، رابط انتخابی مشخص شده وجود ندارد.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType با IPVer مطابقت ندارد.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType kIPAddressType_Any است یا نوع addr برابر با addrType نیست.
other
یک خطای سیستم یا پلتفرم دیگر

در LwIP، این روش نباید با قفل پشته LwIP از قبل به دست آمده فراخوانی شود.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

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

همچنین گزینه‌های مختلف سوکت IPv6 را برای انتقال بسته‌ها به و از مقصدهای روی پیوند تنظیم می‌کند.

نقطه پایانی را به IPv6 addr آدرس محلی در رابط شبکه که با intf نشان داده شده است متصل می کند.

جزئیات
مولفه های
[in] intf
یک InterfaceId برای شناسایی محدوده آدرس.
[in] addr
یک شیء آدرس IPv6 با دامنه محلی پیوند .
مولفه های
[in] intf
نشانگر رابط شبکه
[in] addr
آدرس IP (باید یک آدرس رابط باشد)
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: نقطه پایانی ملزم به آدرس است
INET_ERROR_INCORRECT_STATE
نقطه پایانی قبلاً محدود شده است
INET_NO_MEMORY
حافظه کافی برای نقطه پایانی
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType با IPVer مطابقت ندارد.
INET_ERROR_WRONG_ADDRESS_TYPE
addr یک پیوند IPv6 نیست - آدرس محلی یا intf INET_NULL_INTERFACEID است.
other
یک خطای سیستم یا پلتفرم دیگر
برمی گرداند
INET_NO_ERROR در مورد موفقیت، یا یک خطای نقشه‌برداری شده سیستم عامل در هنگام شکست. لیست پارامترهای نامعتبر می تواند منجر به INET_ERROR_WRONG_ADDRESS_TYPE شود. اگر نقطه پایانی خام قبلاً محدود شده باشد یا در حال گوش دادن است، INET_ERROR_INCORRECT_STATE را برمی‌گرداند. نقطه پایانی را به یک رابط IPv6 پیوند آدرس محلی متصل کنید.

در LwIP، این روش نباید با قفل پشته LwIP از قبل به دست آمده فراخوانی شود.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

نقطه پایانی را به یک رابط شبکه متصل کنید.

نقطه پایانی را به آدرس IP رابط شبکه مشخص شده متصل می کند.

جزئیات
مولفه های
[in] addrType
نسخه پروتکل آدرس IP
[in] intf
نشانگر رابط شبکه
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: نقطه پایانی ملزم به آدرس است
INET_NO_MEMORY
حافظه کافی برای نقطه پایانی
INET_ERROR_NOT_IMPLEMENTED
پیاده سازی سیستم کامل نیست
INET_ERROR_UNKNOWN_INTERFACE
در برخی از سیستم عامل ها، رابط وجود ندارد.
other
یک خطای سیستم یا پلتفرم دیگر

در LwIP، این روش نباید با قفل پشته LwIP از قبل به دست آمده فراخوانی شود.

بستن

void Close(
  void
)

نقطه پایانی را ببندید.

اگر mState != kState_Closed ، سپس نقطه پایانی را می بندد و آن را از مجموعه نقاط پایانی واجد شرایط برای رویدادهای ارتباطی حذف می کند.

در سیستم های LwIP، این روش نباید با قفل پشته LwIP که قبلاً به دست آمده است فراخوانی شود.

رایگان

void Free(
  void
)

نقطه پایانی را ببندید و حافظه آن را بازیافت کنید.

متد Close را فراخوانی می‌کند، سپس متد InetLayerBasis::Release فراخوانی می‌کند تا شیء را به مخزن حافظه خود بازگرداند.

در سیستم های LwIP، این روش نباید با قفل پشته LwIP که قبلاً به دست آمده است فراخوانی شود.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

رابط محدود را در این نقطه پایانی دریافت کنید.

جزئیات
برمی گرداند
InterfaceId شناسه رابط محدود.

گوش بده

INET_ERROR Listen(
  void
)

نقطه پایانی را برای دریافت پیام های ICMP آماده کنید.

اگر mState از قبل kState_Listening باشد، هیچ عملیاتی انجام نمی‌شود، در غیر این صورت mState روی kState_Listening تنظیم می‌شود و نقطه پایانی برای دریافت پیام‌های ICMPv6، با توجه به معنایی پلتفرم، آماده می‌شود.

جزئیات
ارزش های بازگشتی
INET_NO_ERROR
همیشه برمی گشت

در LwIP، این روش نباید با قفل پشته LwIP از قبل به دست آمده فراخوانی شود

ارسال پیام

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

یک پیام ICMP به مقصد مشخص شده ارسال کنید.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

جزئیات
مولفه های
[in] pktInfo
اطلاعات مقصد برای پیام
[in] msg
بافر بسته حاوی پیام UDP
[in] sendFlags
پرچم های گزینه انتقال اختیاری
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: msg برای ارسال در صف است.
INET_ERROR_NOT_SUPPORTED
سیستم از عملیات درخواستی پشتیبانی نمی کند.
INET_ERROR_WRONG_ADDRESS_TYPE
آدرس مقصد و آدرس رابط محدود نسخه‌های پروتکل یا نوع آدرس منطبق را ندارند.
INET_ERROR_MESSAGE_TOO_LONG
msg شامل کل پیام ICMP نیست.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
در برخی از پلتفرم‌ها، فقط یک بخش کوتاه شده از msg برای ارسال در صف قرار می‌گرفت.
other
یک خطای سیستم یا پلتفرم دیگر

فرستادن به

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

مترادف SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) .

فرستادن به

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

یک پیام ICMP به آدرس مقصد مشخص شده ارسال کنید.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

جزئیات
مولفه های
[in] addr
آدرس IP مقصد
[in] intfId
یک نشانگر اختیاری رابط شبکه
[in] msg
بافر بسته حاوی پیام UDP
[in] sendFlags
پرچم های گزینه انتقال اختیاری
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: msg برای ارسال در صف است.
INET_ERROR_NOT_SUPPORTED
سیستم از عملیات درخواستی پشتیبانی نمی کند.
INET_ERROR_WRONG_ADDRESS_TYPE
آدرس مقصد و آدرس رابط محدود نسخه‌های پروتکل یا نوع آدرس منطبق را ندارند.
INET_ERROR_MESSAGE_TOO_LONG
msg شامل کل پیام ICMP نیست.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
در برخی از پلتفرم‌ها، فقط یک بخش کوتاه شده از msg برای ارسال در صف قرار می‌گرفت.
other
یک خطای سیستم یا پلتفرم دیگر

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

پارامترهای فیلتر ICMP6 را در پشته شبکه تنظیم کنید.

پارامترهای فیلتر ICMPv6 را برای کدهای موجود در aICMPTypes در نقطه پایانی در پشته شبکه سیستم اعمال کنید.

جزئیات
مولفه های
[in] numICMPTypes
طول آرایه در aICMPTypes
[in] aICMPTypes
مجموعه ای از کدهای نوع ICMPv6 برای فیلتر کردن.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: پارامترهای فیلتر تنظیم شده است
INET_ERROR_NOT_IMPLEMENTED
سیستم اجرا نمی شود
INET_ERROR_WRONG_ADDRESS_TYPE
نقطه پایانی نه از نوع IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
نقطه پایانی نه از نوع ICMP6
other
یک خطای سیستم یا پلتفرم دیگر