nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

इस क्लास के ऑब्जेक्ट, रॉ आईपी नेटवर्क एंडपॉइंट को दिखाते हैं.

खास जानकारी

Nest Inet लेयर, आईपी नेटवर्क एंडपॉइंट (Linux पर SOCK_RAW सॉकेट और Linux और BSD से जुड़े सिस्टम पर SOCK_RAW सॉकेट) या LwIP रॉ प्रोटोकॉल कंट्रोल ब्लॉक से इंटरैक्ट करने के तरीकों को इनकैप्सुलेट करता है. ऐसा इसलिए, क्योंकि सिस्टम को इसके हिसाब से कॉन्फ़िगर किया जाता है.

इनहेरिटेंस

इनसे इनहेरिट किया जाता है: nl::Inet::IPEndPointBasis

सार्वजनिक विशेषताएं

IPProto
IPProtocol
इंटरनेट कंट्रोल मैसेज प्रोटोकॉल (आईसीएमपी) का वर्शन
IPVer
IPVersion
इंटरनेट प्रोटोकॉल का वर्शन.

सार्वजनिक फ़ंक्शन

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
एंडपॉइंट को किसी इंटरफ़ेस आईपी पते से बाइंड करें.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
रॉ एंडपॉइंट को बताए गए इंटरफ़ेस इंडेक्स पर, आईपीवी6 लिंक-लोकल स्कोप पते से बाइंड करें.
BindInterface(IPAddressType addrType, InterfaceId intf)
एंडपॉइंट को नेटवर्क इंटरफ़ेस से बाइंड करें.
Close(void)
void
एंडपॉइंट को बंद करें.
Free(void)
void
एंडपॉइंट को बंद करें और उसकी मेमोरी को रीसाइकल करें.
GetBoundInterface(void)
InterfaceId
इस एंडपॉइंट पर बाउंड इंटरफ़ेस पाएं.
Listen(void)
आईसीएमपी मैसेज पाने के लिए, एंडपॉइंट तैयार करें.
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)
तय किए गए डेस्टिनेशन पते पर आईसीएमपी मैसेज भेजें.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
नेटवर्क स्टैक में ICMP6 फ़िल्टर पैरामीटर सेट करें.

सार्वजनिक विशेषताएं

IPProto

IPProtocol IPProto

इंटरनेट कंट्रोल मैसेज प्रोटोकॉल (आईसीएमपी) का वर्शन

यह फ़ील्ड एक बदला जा सकने वाला क्लास वैरिएबल है, लेकिन यह क्लास का एक ऐसा इन-वैरिएंट है जिसमें बदलाव नहीं किया जा सकता.

आईपीवीर

IPVersion IPVer

इंटरनेट प्रोटोकॉल का वर्शन.

यह फ़ील्ड एक बदला जा सकने वाला क्लास वैरिएबल है, लेकिन यह क्लास का एक ऐसा इन-वैरिएंट है जिसमें बदलाव नहीं किया जा सकता.

सार्वजनिक फ़ंक्शन

बाइंड

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

एंडपॉइंट को किसी इंटरफ़ेस आईपी पते से बाइंड करें.

एंडपॉइंट को बताए गए नेटवर्क इंटरफ़ेस के आईपी पते से बाइंड करता है.

ब्यौरा
पैरामीटर
[in] addrType
आईपी पते का प्रोटोकॉल वर्शन
[in] addr
आईपी पता (इंटरफ़ेस पता होना चाहिए)
[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
)

रॉ एंडपॉइंट को बताए गए इंटरफ़ेस इंडेक्स पर, आईपीवी6 लिंक-लोकल स्कोप पते से बाइंड करें.

साथ ही, यह अलग-अलग आईपीवी6 सॉकेट विकल्प भी सेट करता है, जो लिंक पर मौजूद डेस्टिनेशन पर पैकेट भेजने और वहां से भेजने के लिए सही होते हैं.

intf में बताए गए नेटवर्क इंटरफ़ेस पर, एंडपॉइंट को आईपीवी6 लिंक-लोकल पते addr से बाइंड करता है.

ब्यौरा
पैरामीटर
[in] intf
पते के दायरे की पहचान करने के लिए InterfaceId.
[in] addr
IPv6 लिंक-लोकल स्कोप IPAddress ऑब्जेक्ट.
पैरामीटर
[in] intf
नेटवर्क इंटरफ़ेस का इंडिकेटर
[in] addr
आईपी पता (इंटरफ़ेस पता होना चाहिए)
रिटर्न वैल्यू
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, या विफल होने पर मैप की गई OS गड़बड़ी. किसी अमान्य पैरामीटर सूची का नतीजा INET_ERROR_WRONG_ADDRESS_TYPE हो सकता है. अगर रॉ एंडपॉइंट पहले से ही बाउंड है या सुन रहा है, तो INET_ERROR_IN सही_स्टेट फ़ंक्शन के साथ नतीजे दिखाता है. एंडपॉइंट को किसी इंटरफ़ेस IPv6 लिंक-लोकल पते से बाइंड करें.

LwIP पर, इस तरीके को पहले से हासिल किए गए LwIP स्टैक लॉक के साथ कॉल नहीं किया जाना चाहिए.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

एंडपॉइंट को नेटवर्क इंटरफ़ेस से बाइंड करें.

एंडपॉइंट को बताए गए नेटवर्क इंटरफ़ेस के आईपी पते से बाइंड करता है.

ब्यौरा
पैरामीटर
[in] addrType
आईपी पते का प्रोटोकॉल वर्शन.
[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
)

इस एंडपॉइंट पर बाउंड इंटरफ़ेस पाएं.

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
इंटरफ़ेस आईडी बाउंड इंटरफ़ेस आईडी.

सुनें

INET_ERROR Listen(
  void
)

आईसीएमपी मैसेज पाने के लिए, एंडपॉइंट तैयार करें.

अगर mState पहले से kState_Listening पर सेट है, तो कोई कार्रवाई नहीं की जाएगी. ऐसा न होने पर, mState को kState_Listening पर सेट किया जाता है. साथ ही, प्लैटफ़ॉर्म के सिमैंटिक के हिसाब से एंडपॉइंट को ICMPv6 मैसेज पाने के लिए तैयार किया जाता है.

ब्यौरा
रिटर्न वैल्यू
INET_NO_ERROR
हमेशा लौटाया जाता है.

LwIP पर, इस तरीके को पहले से हासिल किए गए LwIP स्टैक लॉक के साथ कॉल नहीं किया जाना चाहिए

SendMsg

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
पैकेट बफ़र में यूडीपी मैसेज है
[in] sendFlags
वैकल्पिक ट्रांसमिट करने के विकल्प के फ़्लैग
रिटर्न वैल्यू
INET_NO_ERROR
पूरा हुआ: msg, ट्रांसमिट करने के लिए सूची में है.
INET_ERROR_NOT_SUPPORTED
सिस्टम, अनुरोध की गई कार्रवाई की सुविधा नहीं देता.
INET_ERROR_WRONG_ADDRESS_TYPE
डेस्टिनेशन पते और बाउंड इंटरफ़ेस पते में, मिलते-जुलते प्रोटोकॉल वर्शन या पता टाइप नहीं हैं.
INET_ERROR_MESSAGE_TOO_LONG
msg में पूरा आईसीएमपी मैसेज शामिल नहीं है.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
कुछ प्लैटफ़ॉर्म पर, msg का सिर्फ़ छोटा सा हिस्सा ही भेजने के लिए लाइन में था.
other
सिस्टम या प्लैटफ़ॉर्म की कोई दूसरी गड़बड़ी

SendTo

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

SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) का समानार्थी शब्द.

SendTo

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

तय किए गए डेस्टिनेशन पते पर आईसीएमपी मैसेज भेजें.

 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
डेस्टिनेशन का आईपी पता
[in] intfId
वैकल्पिक नेटवर्क इंटरफ़ेस इंडिकेटर
[in] msg
पैकेट बफ़र में यूडीपी मैसेज है
[in] sendFlags
वैकल्पिक ट्रांसमिट करने के विकल्प के फ़्लैग
रिटर्न वैल्यू
INET_NO_ERROR
पूरा हुआ: msg, ट्रांसमिट करने के लिए सूची में है.
INET_ERROR_NOT_SUPPORTED
सिस्टम, अनुरोध की गई कार्रवाई की सुविधा नहीं देता.
INET_ERROR_WRONG_ADDRESS_TYPE
डेस्टिनेशन पते और बाउंड इंटरफ़ेस पते में, मिलते-जुलते प्रोटोकॉल वर्शन या पता टाइप नहीं हैं.
INET_ERROR_MESSAGE_TOO_LONG
msg में पूरा आईसीएमपी मैसेज शामिल नहीं है.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
कुछ प्लैटफ़ॉर्म पर, msg का सिर्फ़ छोटा सा हिस्सा ही भेजने के लिए लाइन में था.
other
सिस्टम या प्लैटफ़ॉर्म की कोई दूसरी गड़बड़ी

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

नेटवर्क स्टैक में ICMP6 फ़िल्टर पैरामीटर सेट करें.

aICMPTypes में मौजूद कोड के लिए, सिस्टम नेटवर्किंग स्टैक के एंडपॉइंट में ICMPv6 फ़िल्टर करने वाले पैरामीटर लागू करें.

ब्यौरा
पैरामीटर
[in] numICMPTypes
aICMPTypes में कलेक्शन की लंबाई
[in] aICMPTypes
फ़िल्टर करने के लिए ICMPv6 टाइप कोड का सेट.
रिटर्न वैल्यू
INET_NO_ERROR
सफलता: फ़िल्टर पैरामीटर सेट
INET_ERROR_NOT_IMPLEMENTED
सिस्टम लागू नहीं करता
INET_ERROR_WRONG_ADDRESS_TYPE
एंडपॉइंट आईपीवी6 टाइप नहीं है
INET_ERROR_WRONG_PROTOCOL_TYPE
एंडपॉइंट का टाइप, ICMP6 टाइप नहीं है
other
सिस्टम या प्लैटफ़ॉर्म की कोई दूसरी गड़बड़ी