TREL - প্ল্যাটফর্ম
এই মডিউলটিতে DNS-SD এবং UDP/IPv6 ব্যবহার করে থ্রেড রেডিও এনক্যাপসুলেশন লিংক (TREL)-এর প্ল্যাটফর্ম বিমূর্ততা অন্তর্ভুক্ত রয়েছে।
সারসংক্ষেপ
Typedefs | |
---|---|
otPlatTrelPeerInfo | typedefstruct otPlatTrelPeerInfo পরিষেবার নাম "_trel._udp"-এ DNS-SD ব্রাউজ ব্যবহার করে আবিষ্কৃত 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 UDP প্যাকেটের বিজ্ঞপ্তি দেওয়ার জন্য প্ল্যাটফর্ম থেকে একটি কলব্যাক৷ |
otPlatTrelRegisterService ( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength) | void DNS-SD [RFC6763] ব্যবহার করে বিজ্ঞাপন দেওয়ার জন্য একটি নতুন পরিষেবা নিবন্ধন করে৷ |
otPlatTrelSend ( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr) | void একটি প্রদত্ত গন্তব্যে পাঠানোর জন্য একটি TREL UDP প্যাকেটের অনুরোধ করে৷ |
কাঠামো | |
---|---|
otPlatTrelPeerInfo | পরিষেবার নাম "_trel._udp"-এ DNS-SD ব্রাউজ ব্যবহার করে আবিষ্কৃত TREL পিয়ার তথ্যের প্রতিনিধিত্ব করে। |
Typedefs
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
পরিষেবার নাম "_trel._udp"-এ DNS-SD ব্রাউজ ব্যবহার করে আবিষ্কৃত TREL পিয়ার তথ্যের প্রতিনিধিত্ব করে।
ফাংশন
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
TREL প্ল্যাটফর্ম স্তর অক্ষম করে।
এই কলের পরে, প্ল্যাটফর্ম স্তরটিকে অবশ্যই "_trel._udp" পরিষেবার নামটিতে DNS-SD ব্রাউজ করা বন্ধ করতে হবে, TREL DNS-SD পরিষেবার বিজ্ঞাপন বন্ধ করতে হবে ( otPlatTrelRegisterService()
থেকে ) এবং TREL বার্তাগুলি পাওয়ার জন্য ব্যবহৃত UDP সকেট বন্ধ করতে হবে৷
[in] একটি দৃষ্টান্ত OpenThread উদাহরণ.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
TREL প্ল্যাটফর্ম স্তর শুরু এবং সক্ষম করে।
এই কলে, প্ল্যাটফর্ম স্তরটি অবশ্যই নিম্নলিখিতগুলি সম্পাদন করবে:
1) TREL প্ল্যাটফর্ম স্তরটি সহকর্মীদের কাছ থেকে TREL বার্তাগুলি শুনতে এবং গ্রহণ করতে একটি UDP সকেট খুলতে হবে৷ সকেটটি প্ল্যাটফর্ম স্তর দ্বারা নির্বাচিত একটি ক্ষণস্থায়ী পোর্ট নম্বরের সাথে আবদ্ধ। পোর্ট নম্বরটি অবশ্যই aUdpPort
এ ফেরত দিতে হবে। সকেটটি নেটওয়ার্ক ইন্টারফেস(গুলি) এর সাথেও আবদ্ধ যার উপর TREL সমর্থিত হবে। TREL সক্রিয় থাকাকালীন সকেট এবং নির্বাচিত পোর্ট বৈধ থাকতে হবে।
2) TREL-কে সমর্থনকারী অন্যান্য ডিভাইসগুলি আবিষ্কার করতে প্ল্যাটফর্ম স্তরকে অবশ্যই স্থানীয় ব্রাউজিং ডোমেনের মধ্যে "_trel._udp" পরিষেবার একটি চলমান DNS-SD ব্রাউজ শুরু করতে হবে৷ চলমান ব্রাউজ দুটি ভিন্ন ধরনের ইভেন্ট তৈরি করবে: ইভেন্ট "যোগ করুন" এবং ইভেন্ট "সরান"। যখন ব্রাউজ শুরু করা হয়, তখন এটি নেটওয়ার্কে উপস্থিত প্রতিটি TREL পিয়ারের জন্য একটি "অ্যাড" ইভেন্ট তৈরি করবে৷ যখনই একটি TREL পিয়ার অফলাইনে যায়, একটি "রিমুভ" ইভেন্ট তৈরি করা উচিত৷ যাইহোক, ইভেন্টগুলি "সরান" নিশ্চিত করা হয় না। যখন একটি TREL পরিষেবার উদাহরণ আবিষ্কৃত হয়, তখন একটি AAAA রেকর্ডের জন্য একটি নতুন চলমান DNS-SD ক্যোয়ারী আবিষ্কৃত উদাহরণের SRV রেকর্ডে নির্দেশিত হোস্টনামে শুরু করা উচিত। যদি একজন পিয়ারের জন্য একাধিক হোস্ট IPv6 অ্যাড্রেস আবিষ্কৃত হয়, তবে সমস্ত অ্যাড্রেসের মধ্যে সর্বোচ্চ স্কোপ সহ একটিকে অবশ্যই রিপোর্ট করতে হবে (যদি একই সুযোগে একাধিক ঠিকানা থাকে, তবে একটিকে এলোমেলোভাবে নির্বাচন করতে হবে)।
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 UDP প্যাকেটের বিজ্ঞপ্তি দেওয়ার জন্য প্ল্যাটফর্ম থেকে একটি কলব্যাক৷
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
DNS-SD [RFC6763] ব্যবহার করে বিজ্ঞাপন দেওয়ার জন্য একটি নতুন পরিষেবা নিবন্ধন করে৷
পরিষেবার নাম "_trel._udp"। প্ল্যাটফর্মের নিজস্ব হোস্টনাম ব্যবহার করা উচিত, যা পরিষেবার নাম এবং স্থানীয় DNS-SD ডোমেন নামের সাথে মিলিত হলে সম্পূর্ণ পরিষেবার উদাহরণের নাম তৈরি করবে, উদাহরণস্বরূপ "example-host._trel._udp.local"৷
যে ডোমেনের অধীনে পরিষেবার দৃষ্টান্তের নাম প্রদর্শিত হবে তা হবে mDNS-এর জন্য 'স্থানীয়', এবং একটি নন-mDNS স্থানীয় DNS-SD পরিষেবার ক্ষেত্রে পরিষেবা নিবন্ধনের জন্য যে ডোমেন ব্যবহার করা হয় তা হবে৷
এই ফাংশনে একটি পরবর্তী কল পূর্ববর্তী পরিষেবা আপডেট করে। এটি TXT রেকর্ড ডেটা এবং/অথবা পোর্ট নম্বর আপডেট করতে ব্যবহৃত হয়।
এই ফাংশন থেকে রিটার্ন করার পরে aTxtData
বাফার টিকে থাকে না। প্ল্যাটফর্ম স্তরটি অবশ্যই পয়েন্টার রাখবে না এবং প্রয়োজনে বিষয়বস্তু অনুলিপি করবে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
একটি প্রদত্ত গন্তব্যে পাঠানোর জন্য একটি TREL UDP প্যাকেটের অনুরোধ করে৷
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
সম্পদ
OpenThread API রেফারেন্স বিষয়গুলি উৎস কোড থেকে উদ্ভূত হয়, যা GitHub- এ উপলব্ধ। আরও তথ্যের জন্য, বা আমাদের ডকুমেন্টেশনে অবদান রাখতে, সম্পদ দেখুন।