NAT64
इस मॉड्यूल में, बॉर्डर राऊटर पर NAT64 फ़ंक्शन के लिए फ़ंक्शन और निर्देश शामिल हैं.
खास जानकारी
ये फ़ंक्शन सिर्फ़ तब उपलब्ध होते हैं, जब OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
चालू होता है.
गिनती |
|
---|---|
otNat64DropReason{
|
enum पैकेट कम होने की वजहें. |
otNat64State{
|
enum NAT64 राज्य. |
टाइपडीफ़ |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
आईपीवी4 पता दिखाता है. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
NAT64 के लिए पता मैपिंग रिकॉर्ड को दिखाता है. |
otNat64AddressMappingIterator
|
typedef इसका इस्तेमाल, NAT64 पते की मैपिंग की मदद से बार-बार करने के लिए किया जाता है. |
otNat64Counters
|
typedefstruct otNat64Counters
NAT64 के काउंटर का प्रतिनिधित्व करता है. |
otNat64DropReason
|
typedefenum otNat64DropReason
पैकेट कम होने की वजहें. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
यह NAT64 पैकेट को हैंडल करते समय होने वाली गड़बड़ियों की वजह से, छोड़े गए पैकेट के काउंटर दिखाता है. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
उन प्रोटोकॉल के काउंटर के बारे में बताता है जो NAT64 पर काम करते हैं. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
आईपीवी4 डेटाग्राम (NAT64 अनुवादक ने अनुवाद किया है) मिलने पर पॉइंटर को कॉल किया जाता है. |
वैरिएबल |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
फ़ंक्शन |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
इंसान के पढ़े जा सकने वाले IPv4 पता स्ट्रिंग को बाइनरी प्रज़ेंटेशन में बदलता है.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
पते को स्ट्रिंग में बदलता है.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
इंसान के पढ़े जा सकने वाले IPv4 सीआईडीआर स्ट्रिंग को बाइनरी प्रज़ेंटेशन में बदलता है.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
आईपीवी4 सीआईडीआर को स्ट्रिंग में बदलता है.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
RFC 6052 में बताए गए तरीके से,
aIp6Address से NAT64 पते का अनुवाद करके aIp4Address सेट करें. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
जांचें कि दो IPv4 पते एक ही हैं या नहीं.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
NAT64 अनुवादक को IPv4 मैसेज भेजने के लिए, नया मैसेज बफ़र असाइन करें.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
NAT64 अनुवादक में कॉन्फ़िगर किया गया IPv4 सीआईडीआर मिलता है.
|
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)
|
यह सुविधा, अनुवाद किए गए आउटगोइंग आईपीवी4 पैकेट का सोर्स पता सेट करते समय इस्तेमाल किया जाने वाला सीआईडीआर सेट करती है.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
मिले हुए IPv4 डेटाग्राम देने के लिए, कॉलबैक को रजिस्टर करता है.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
RFC 6052 में बताए गए आईपीवी4 पते और पसंदीदा NAT64 प्रीफ़िक्स से NAT64 पते का अनुवाद करके, आईपीवी6 पता सेट करता है.
|
संरचना |
|
---|---|
otIp4Address |
आईपीवी4 पता दिखाता है. |
otIp4Cidr |
आईपीवी4 सीआईडीआर ब्लॉक के बारे में बताता है. |
otNat64AddressMapping |
NAT64 के लिए पता मैपिंग रिकॉर्ड को दिखाता है. |
otNat64AddressMappingIterator |
इसका इस्तेमाल, NAT64 पते की मैपिंग की मदद से बार-बार करने के लिए किया जाता है. |
otNat64Counters |
NAT64 के काउंटर का प्रतिनिधित्व करता है. |
otNat64ErrorCounters |
यह NAT64 पैकेट को हैंडल करते समय होने वाली गड़बड़ियों की वजह से, छोड़े गए पैकेट के काउंटर दिखाता है. |
otNat64ProtocolCounters |
उन प्रोटोकॉल के काउंटर के बारे में बताता है जो NAT64 पर काम करते हैं. |
यूनियन |
|
---|---|
otIp4Address:: |
गिनती
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
|
काम न करने वाले आईपी प्रोटोकॉल की वजह से पैकेट ड्रॉप. |
otNat64State
otNat64State
NAT64 राज्य.
प्रॉपर्टी | |
---|---|
OT_NAT64_STATE_ACTIVE
|
ब्राज़ील, NAT64 प्रीफ़िक्स और/या पैकेट का अनुवाद कर रहा है. |
OT_NAT64_STATE_DISABLED
|
NAT64 को बंद कर दिया गया है. |
OT_NAT64_STATE_IDLE
|
NAT64 चालू है, लेकिन यह BR एक सक्रिय NAT64 BR है. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 चालू है, लेकिन NAT64 की एक या उससे ज़्यादा डिपेंडेंसी काम नहीं कर रही हैं. |
टाइपडीफ़
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMapping
struct otNat64AddressMapping otNat64AddressMapping
NAT64 के लिए पता मैपिंग रिकॉर्ड को दिखाता है.
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
इसका इस्तेमाल, NAT64 पते की मैपिंग की मदद से बार-बार करने के लिए किया जाता है.
इस तरह के फ़ील्ड ओपेक होते हैं (इसका मकसद सिर्फ़ OpenThread कोर पर इस्तेमाल करना है) इसलिए, कॉलर को इन्हें ऐक्सेस या इस्तेमाल नहीं करना चाहिए.
इटरेटर का इस्तेमाल करने से पहले, इसे otNat64AddressMappingIteratorInit()
की मदद से शुरू करना ज़रूरी है.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
यह NAT64 पैकेट को हैंडल करते समय होने वाली गड़बड़ियों की वजह से, छोड़े गए पैकेट के काउंटर दिखाता है.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
उन प्रोटोकॉल के काउंटर के बारे में बताता है जो NAT64 पर काम करते हैं.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
आईपीवी4 डेटाग्राम (NAT64 अनुवादक ने अनुवाद किया है) मिलने पर पॉइंटर को कॉल किया जाता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
वैरिएबल
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
फ़ंक्शन
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
इंसान के पढ़े जा सकने वाले IPv4 पता स्ट्रिंग को बाइनरी प्रज़ेंटेशन में बदलता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
पते को स्ट्रिंग में बदलता है.
स्ट्रिंग फ़ॉर्मैट, पते में चार बाइट के क्वाड-डॉट नोटेशन का इस्तेमाल करता है (उदाहरण के लिए, "127.0.0.1").
अगर नतीजे में मिलने वाली स्ट्रिंग, aBuffer
(इसके aSize
वर्णों के अंदर) में फ़िट नहीं होती है, तो स्ट्रिंग को छोटा कर दिया जाएगा. हालांकि, आउटपुट स्ट्रिंग हमेशा खाली रहेगी.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
इंसान के पढ़े जा सकने वाले IPv4 सीआईडीआर स्ट्रिंग को बाइनरी प्रज़ेंटेशन में बदलता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
आईपीवी4 सीआईडीआर को स्ट्रिंग में बदलता है.
स्ट्रिंग फ़ॉर्मैट, प्रीफ़िक्स की लंबाई वाले पते में चार बाइट के क्वाड-डॉट नोटेशन का इस्तेमाल करता है (उदाहरण के लिए, "127.0.0.1/32").
अगर नतीजे में मिलने वाली स्ट्रिंग, aBuffer
(इसके aSize
वर्णों के अंदर) में फ़िट नहीं होती है, तो स्ट्रिंग को छोटा कर दिया जाएगा. हालांकि, आउटपुट स्ट्रिंग हमेशा खाली रहेगी.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
RFC 6052 में बताए गए तरीके से, aIp6Address
से NAT64 पते का अनुवाद करके aIp4Address
सेट करें.
NAT64 aPrefixLength
को इनमें से कोई एक वैल्यू होनी चाहिए: 32, 40, 48, 56, 64 या 96. ऐसा न होने पर, इस तरीके का व्यवहार तय नहीं होता.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
जांचें कि दो IPv4 पते एक ही हैं या नहीं.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
NAT64 अनुवादक को IPv4 मैसेज भेजने के लिए, नया मैसेज बफ़र असाइन करें.
इस फ़ंक्शन के लिए असाइन किए गए मैसेज बफ़र में 20 बाइट (IPv6 हेडर और IPv4 हेडर साइज़ में अंतर) रिज़र्व होंगे.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
चालू होने पर उपलब्ध होगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
अगर कोई मैसेज बफ़र उपलब्ध नहीं है या पैरामीटर अमान्य है, तो मैसेज बफ़र या शून्य का पॉइंटर.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
NAT64 अनुवादक में कॉन्फ़िगर किया गया IPv4 सीआईडीआर मिलता है.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
चालू होने पर उपलब्ध होगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
NAT64 अनुवादक काउंटर उपलब्ध हैं.
इंस्टेंस शुरू होने के बाद से काउंटर को गिना जाता है.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
चालू होने पर उपलब्ध होगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
NAT64 अनुवादक गड़बड़ी काउंटर मिलता है.
OpenThread इंस्टेंस को शुरू करने पर, काउंटर की वैल्यू शून्य से शुरू होती है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
यह पता दोहराए जाने वाले (इटरेटर का इस्तेमाल करके) की मदद से, अगली addressMapping जानकारी हासिल करता है.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
चालू होने पर उपलब्ध होगा.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
NAT64 प्रीफ़िक्स मैनेजर की स्थिति की जानकारी मिलती है.
OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
चालू होने पर उपलब्ध होगा.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
NAT64 अनुवादक की स्थिति की जानकारी देता है.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
चालू होने पर उपलब्ध होगा.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
otNat64AddressMappingIterator
शुरू करता है.
इटरेटर का इस्तेमाल करने से पहले, उसे शुरू करना ज़रूरी है.
मैपिंग की जानकारी की शुरुआत से रीस्टार्ट करने के लिए, इटरेटर को फिर से शुरू किया जा सकता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
IPv4 डेटाग्राम को IPv6 डेटाग्राम में अनुवाद करता है और Thread इंटरफ़ेस की मदद से भेजता है.
यह कॉल करते समय, कॉल करने वाला, aMessage
का मालिकाना हक ट्रांसफ़र करता है. प्रोसेसिंग पूरी होने पर, OpenThread aMessage
को खाली कर देगा. ऐसा तब भी होगा, जब OT_ERROR_NONE
के अलावा कोई अन्य वैल्यू दी जाए.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
रिटर्न वैल्यू |
|
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
चालू होता है, तो 'सही है' पर सेट करने से अनुवादक में मैपिंग टेबल रीसेट हो जाती है.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
या OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
चालू होने पर उपलब्ध होता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
यह सुविधा, अनुवाद किए गए आउटगोइंग आईपीवी4 पैकेट का सोर्स पता सेट करते समय इस्तेमाल किया जाने वाला सीआईडीआर सेट करती है.
यह तब ही उपलब्ध होता है, जबOPEN \t_CONFIG_NAT64_TRANSLATOR_ENABLE चालू होता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
को
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
मिले हुए IPv4 डेटाग्राम देने के लिए, कॉलबैक को रजिस्टर करता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
RFC 6052 में बताए गए आईपीवी4 पते और पसंदीदा NAT64 प्रीफ़िक्स से NAT64 पते का अनुवाद करके, आईपीवी6 पता सेट करता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए गए सामान |
OT_ERROR_NONE NAT64 प्रीफ़िक्स और IPv4 पते से IPv6 पते को पूरा किया गया.
|
||||||
लौटाए गए सामान |
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 पर उपलब्ध है. ज़्यादा जानकारी या हमारे दस्तावेज़ में योगदान देने के लिए, संसाधन देखें.