nl::इंटरनेट::RawEndPoint

#include <src/inet/RawEndPoint.h>

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

खास जानकारी

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

इनहेरिटेंस

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

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

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

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

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
एंडपॉइंट को किसी इंटरफ़ेस के आईपी पते से बाइंड करें.
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 फ़िल्टर पैरामीटर सेट करें.

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

IPप्रोटो

IPProtocol IPProto

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

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

IPVer (आईपीवी)

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 स्टैक लॉक के साथ कॉल नहीं किया जाना चाहिए.

BindIPv6Linkलोकल

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

रॉ एंडपॉइंट को किसी खास इंटरफ़ेस इंडेक्स के IPv6 लिंक-लोकल स्कोप पते से बाइंड करें.

साथ ही, ऑन-लिंक डेस्टिनेशन पर और उनसे पैकेट भेजने के लिए, सही IPv6 सॉकेट विकल्प सेट करता है.

एंडपॉइंट को intf से दिखाए गए नेटवर्क इंटरफ़ेस के IPv6 लिंक-स्थानीय पते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राइट_STATE नतीजे दिखाता है. एंडपॉइंट को किसी इंटरफ़ेस IPv6 लिंक-लोकल पते से बाइंड करें.

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

बाइंड इंटरफ़ेस

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 स्टैक लॉक के साथ नहीं किया जाना चाहिए.

गेटबाउंड इंटरफ़ेस

InterfaceId GetBoundInterface(
  void
)

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

ब्यौरा
लौटाए गए सामान
इंटरफ़ेसId बाउंड इंटरफ़ेस आईडी.

सुनें

INET_ERROR Listen(
  void
)

ICMP मैसेज पाने के लिए एंडपॉइंट को तैयार करें.

अगर 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 में पूरा 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
डेस्टिनेशन आईपी पता
[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 में पूरा ICMP मैसेज नहीं है.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
कुछ प्लैटफ़ॉर्म पर, ट्रांसमिट करने के लिए msg का सिर्फ़ एक छोटा हिस्सा कतार में रखा गया था.
other
अन्य सिस्टम या प्लैटफ़ॉर्म की गड़बड़ी

setICMPफ़िल्टर

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
एंडपॉइंट IPv6 टाइप नहीं है
INET_ERROR_WRONG_PROTOCOL_TYPE
एंडपॉइंट का प्रकार ICMP6 नहीं है
other
अन्य सिस्टम या प्लैटफ़ॉर्म की गड़बड़ी