TREL - प्लैटफ़ॉर्म
इस मॉड्यूल में, डीएनएस-एसडी और यूडीपी/IPv6 का इस्तेमाल करके थ्रेड रेडियो एनकैप्सुलेशन लिंक (TREL) के लिए प्लैटफ़ॉर्म ऐब्स्ट्रैक्शन को शामिल किया गया है.
खास जानकारी
टाइपडीफ़ |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
"_trel._udp" सेवा के नाम पर डीएनएस-एसडी ब्राउज़ का इस्तेमाल करके खोजी गई TREL पीयर की जानकारी दिखाता है. |
फ़ंक्शन |
|
---|---|
otPlatTrelDisable(otInstance *aInstance)
|
void
TREL प्लैटफ़ॉर्म लेयर को बंद करता है.
|
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
|
void
TREL प्लैटफ़ॉर्म लेयर को शुरू और चालू करता है.
|
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
|
void
यह प्लैटफ़ॉर्म लेयर से मिला कॉलबैक फ़ंक्शन है, ताकि TREL पीयर की खोजी गई जानकारी को रिपोर्ट किया जा सके.
|
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
|
void
यह प्लैटफ़ॉर्म से मिलने वाले TREL यूडीपी पैकेट के बारे में सूचना देने के लिए कॉलबैक किया जाता है.
|
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
|
void
डीएनएस-एसडी [RFC6763] का इस्तेमाल करके विज्ञापन में दिखाई जाने वाली नई सेवा को रजिस्टर करता है.
|
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
|
void
किसी दिए गए डेस्टिनेशन पर भेजने के लिए, TREL यूडीपी पैकेट का अनुरोध करता है.
|
संरचना |
|
---|---|
otPlatTrelPeerInfo |
"_trel._udp" सेवा के नाम पर डीएनएस-एसडी ब्राउज़ का इस्तेमाल करके खोजी गई TREL पीयर की जानकारी दिखाता है. |
टाइपडीफ़
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
"_trel._udp" सेवा के नाम पर डीएनएस-एसडी ब्राउज़ का इस्तेमाल करके खोजी गई TREL पीयर की जानकारी दिखाता है.
फ़ंक्शन
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
TREL प्लैटफ़ॉर्म लेयर को बंद करता है.
इस कॉल के बाद, प्लैटफ़ॉर्म लेयर को "_trel._udp" सेवा के नाम पर डीएनएस-एसडी ब्राउज़ को रोकना होगा, otPlatTrelRegisterService()
से TREL की डीएनएस-एसडी सेवा का विज्ञापन दिखाना बंद करना होगा, और TREL मैसेज पाने के लिए इस्तेमाल किए जाने वाले यूडीपी सॉकेट को बंद करना होगा.
[in] aइंस्टेंस The OpenThread इंस्टेंस.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
TREL प्लैटफ़ॉर्म लेयर को शुरू और चालू करता है.
इस कॉल के दौरान, प्लैटफ़ॉर्म लेयर को ये काम करना ज़रूरी है:
1) TREL के मैसेज सुनने और उनसे TREL मैसेज पाने के लिए, TREL प्लैटफ़ॉर्म लेयर के लिए यूडीपी सॉकेट खोलना ज़रूरी है. सॉकेट, प्लैटफ़ॉर्म लेयर से चुने गए इफ़ेमरल पोर्ट नंबर से जुड़ा होता है. पोर्ट नंबर को aUdpPort
में लौटाया जाना चाहिए. यह सॉकेट ऐसे नेटवर्क इंटरफ़ेस से भी जुड़ा होता है जिन पर TREL का इस्तेमाल किया जा सकता है. TREL के चालू होने पर, सॉकेट और चुना गया पोर्ट मान्य रहना चाहिए.
2) प्लैटफ़ॉर्म लेयर को TREL के साथ काम करने वाले अन्य डिवाइसों को खोजने के लिए, लोकल ब्राउज़िंग डोमेन में सेवा नाम "_trel._udp" पर चल रहे डीएनएस-एसडी ब्राउज़ को शुरू करना ज़रूरी है. चल रहा ब्राउज़ दो अलग-अलग तरह के इवेंट बनाएगा: "जोड़ें" इवेंट और "हटाएं" इवेंट. ब्राउज़ शुरू होने पर, इसे नेटवर्क पर मौजूद हर TREL पीयर के लिए "जोड़ें" इवेंट बनाना चाहिए. जब भी कोई TREL पीयर ऑफ़लाइन हो, तो "हटाएं" इवेंट बनाया जाना चाहिए. हालांकि, "हटाएं" इवेंट की कोई गारंटी नहीं होती है. TREL सेवा के इंस्टेंस का पता लगने पर, AAAA रिकॉर्ड के लिए चल रही नई DNS-SD क्वेरी, खोजे गए इंस्टेंस के SRV रिकॉर्ड में बताए गए होस्टनेम पर शुरू होनी चाहिए. अगर किसी पीयर के लिए, एक से ज़्यादा होस्ट आईपीवी6 पते खोजे जाते हैं, तो सभी पतों में से सबसे ज़्यादा स्कोप वाले आईपी पते की रिपोर्ट की जानी चाहिए. अगर एक ही स्कोप में एक से ज़्यादा पते मौजूद हैं, तो किसी एक को रैंडम तरीके से चुना जाना चाहिए.
TREL प्लैटफ़ॉर्म को otPlatTrelHandleDiscoveredPeerInfo()
कॉलबैक का इस्तेमाल करके, खोजी गई मिलते-जुलते ऐप्लिकेशन की जानकारी का जवाब देना ज़रूरी है. नए पीयर के खोजे जाने पर, किसी मौजूदा एंट्री में कोई बदलाव (जैसे, नया TXT रिकॉर्ड या नया पोर्ट नंबर या नया IPv6 पता) होने पर या पीयर को हटा देने पर, इस कॉलबैक को शुरू करना ज़रूरी है.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
यह प्लैटफ़ॉर्म लेयर से मिला कॉलबैक फ़ंक्शन है, ताकि TREL पीयर की खोजी गई जानकारी को रिपोर्ट किया जा सके.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
यह प्लैटफ़ॉर्म से मिलने वाले TREL यूडीपी पैकेट के बारे में सूचना देने के लिए कॉलबैक किया जाता है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
डीएनएस-एसडी [RFC6763] का इस्तेमाल करके विज्ञापन में दिखाई जाने वाली नई सेवा को रजिस्टर करता है.
सेवा का नाम "_trel._udp" है. प्लैटफ़ॉर्म को अपना होस्टनेम इस्तेमाल करना चाहिए, जिसे सेवा के नाम और लोकल डीएनएस-एसडी डोमेन नेम के साथ जोड़ने पर, सेवा के पूरे इंस्टेंस का नाम बनेगा. उदाहरण के लिए, "example-host._trel._udp.local.".
mडीएनएस के लिए सेवा इंस्टेंस का नाम, 'लोकल' होगा. यह डोमेन, बिना mडीएनएस लोकल डीएनएस-एसडी सेवा के मामले में सेवा के रजिस्ट्रेशन के लिए इस्तेमाल किया जाएगा.
इस फ़ंक्शन के लिए बाद में किया जाने वाला कॉल, पिछली सेवा को अपडेट कर देता है. इसका इस्तेमाल TXT रिकॉर्ड के डेटा और/या पोर्ट नंबर को अपडेट करने के लिए किया जाता है.
इस फ़ंक्शन से वापस मिलने के बाद, aTxtData
बफ़र बरकरार नहीं रहता है. प्लैटफ़ॉर्म लेयर में पॉइंटर को नहीं रखना चाहिए. इसके बजाय, ज़रूरत पड़ने पर कॉन्टेंट को कॉपी किया जाना चाहिए.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
किसी दिए गए डेस्टिनेशन पर भेजने के लिए, TREL यूडीपी पैकेट का अनुरोध करता है.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
संसाधन
OpenThread API के रेफ़रंस के विषय, सोर्स कोड से मिलते हैं. यह सोर्स GitHub पर उपलब्ध है. ज़्यादा जानकारी या हमारे दस्तावेज़ में योगदान देने के लिए, संसाधन देखें.