बेहतर सुविधाएं लागू करना

GitHub पर सोर्स देखें

कुछ ऐडवांस सुविधाएं इस्तेमाल करना ज़रूरी नहीं है. यह इस बात पर निर्भर करता है कि वे इस्तेमाल की जा रही हैं या नहीं टारगेट हार्डवेयर प्लैटफ़ॉर्म पर काम करता है.

ऑटो फ़्रेमिंग सुविधा को मंज़ूरी मिलना बाकी है

आईईईई 802.15.4 के मुताबिक, पैरंट और चाइल्ड: डायरेक्ट ट्रांसमिशन और इनडायरेक्ट ट्रांसमिशन. बाद वाले को इस तरह डिज़ाइन किया गया है कि यह सुविधा मुख्य रूप से, ऐसे एंड डिवाइसों (एसईडी) के लिए काम करती है जो ज़्यादातर समय सोते हैं. सूची में मौजूद डेटा के लिए, समय-समय पर पैरंट को पोल करने के लिए जागना करते हैं.

  • डायरेक्ट ट्रांसमिशन — माता-पिता सीधे एंड डिवाइस पर डेटा फ़्रेम भेजता है डायरेक्ट ट्रांसमिशन

  • सीधे पता न चलने वाला ट्रांसमिशन — माता-पिता के पास तब तक डेटा सेव रहता है, जब तक असली डिवाइस से अनुरोध नहीं किया जाता डायरेक्ट ट्रांसमिशन

सीधे तौर पर न होने वाले मामले में, किसी चाइल्ड एंड डिवाइस को पहले माता-पिता से पोल करना होगा, ताकि यह तय किया जा सके कि कोई डेटा उपलब्ध है या नहीं. ऐसा करने के लिए, बच्चा एक डेटा भेजता है जिसे माता-पिता स्वीकार करते हैं. इसके बाद, माता-पिता तय करते हैं कि जिसमें बच्चे के डिवाइस का कोई डेटा हो; अगर ऐसा है, तो यह बच्चे को एक डेटा पैकेट भेजता है डिवाइस, जो डेटा मिलने की पुष्टि करता है.

यदि रेडियो आउटगोइंग में फ़्रेम लंबित बिट को डायनेमिक रूप से सेट करने का समर्थन करता है एसईडी के लिए स्वीकार की गई शर्तों के मुताबिक, ड्राइवरों को सोर्स के पते का मिलान हुआ एपीआई का इस्तेमाल करें. OpenThread, इस एपीआई का इस्तेमाल करके, रेडियो को यह बताता है कि SEDs, जिसके लिए फ़्रेम की मंज़ूरी बाकी है.

यदि रेडियो गतिशील रूप से फ़्रेम लंबित बिट को सेट करने का समर्थन नहीं करता है, तो ऐसा हो सकता है कि रेडियो, सोर्स ऐड्रेस मैच एपीआई को OT_ERROR_NOT_IMPLEMENTED.

एनर्जी स्कैन/रेडियो की मदद से डिटेक्ट करें

एनर्जी स्कैन करने/पता लगाने की सुविधा के लिए, रेडियो चिप की ज़रूरत होती है, ताकि ऊर्जा का सैंपल लिया जा सके चुने हुए चैनलों पर प्रज़ेंटेशन दिखाता है. साथ ही, पता लगाई गई ऊर्जा की वैल्यू को ऊपरी लेयर पर क्लिक करें.

अगर यह सुविधा लागू नहीं की गई है, तो आईईईई 802.15.4 एमएसी लेयर मौजूदा कन्वर्ज़न का आकलन करने के लिए बीकन अनुरोध/जवाब पैकेट भेजता/पाएं चैनल पर ऊर्जा की वैल्यू.

अगर रेडियो चिप, एनर्जी स्कैन/डिटेक्ट की सुविधा देता है, तो सॉफ़्टवेयर को बंद करना न भूलें मैक्रो सेट करके, एनर्जी स्कैनिंग का लॉजिक OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0.

mbedTLS के लिए हार्डवेयर से तेज़ी लाने की सुविधा

mbedTLS, मुख्य कॉन्फ़िगरेशन हेडर फ़ाइल में कई मैक्रो के बारे में जानकारी देता है, mbedtls-config.h ताकि उपयोगकर्ता एईएस, SHA1, SHA2, और अन्य मॉड्यूल और एलिप्टिक कर्व के अलग-अलग फ़ंक्शन GF (p) मॉड्यूल के ऊपर क्रिप्टोग्राफ़ी(ईसीसी). यहां जाएं: mbedTLS हार्डवेयर की मदद से तेज़ी लाने की सुविधा हमारा वीडियो देखें.

OpenThread फ़ंक्शन उन मैक्रो को चालू नहीं करता है. इसलिए, सिमेट्रिक क्रिप्टो एल्गोरिदम, हैश एल्गोरिदम, और ईसीसी फ़ंक्शन, सभी में सॉफ़्टवेयर का इस्तेमाल किया जाता है डिफ़ॉल्ट रूप से लागू होता है. इन्हें लागू करने के लिए, अच्छी मेमोरी की ज़रूरत होती है और कंप्यूटेशनल रिसॉर्सेज़. बेहतर परफ़ॉर्मेंस और बेहतर उपयोगकर्ता के लिए तो हम सॉफ़्टवेयर के बजाय हार्डवेयर एक्सेलरेटर को चालू करने का सुझाव देते हैं ऊपर दी गई कार्रवाइयां लागू करें.

OpenThread में हार्डवेयर की मदद से तेज़ी लाने के लिए, यहां दिया गया mbedTLS कॉन्फ़िगरेशन हेडर फ़ाइलों को ot-config कंपाइल में जोड़ा जाना चाहिए प्लैटफ़ॉर्म की CMake फ़ाइलों में दी गई परिभाषाएं:

  • मुख्य कॉन्फ़िगरेशन, जो OpenThread में इस्तेमाल किए जाने वाले सभी ज़रूरी मैक्रो के बारे में जानकारी देता है: /openthread/third-party/mbedtls/mbedtls-config.h
  • उपयोगकर्ता के हिसाब से कॉन्फ़िगरेशन, जो कॉन्फ़िगरेशन के वैकल्पिक तरीकों के बारे में बताता है मॉड्यूल और फ़ंक्शन: src/platform-name-mbedtls-config.h

nrf52811.cmake से उदाहरण:

target_compile_definitions(ot-config INTERFACE
    "MBEDTLS_USER_CONFIG_FILE=\"nrf52811-mbedtls-config.h\""
)

mbedtls-config.h में टिप्पणी किए गए मैक्रो ज़रूरी नहीं हैं. साथ ही, इन्हें यहां चालू किया जा सकता है हार्डवेयर त्वरण के लिए उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन हेडर फ़ाइल.

उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन के पूर्ण उदाहरण के लिए, देखें mbedtls_config_autogen.h ot-efr32 में फ़ाइल.

एईएस मॉड्यूल

OpenThread Security, एईएस CCM (CBC-MAC वाला काउंटर) क्रिप्टो को इन पर लागू करता है: आईईईई 802.15.4 या एमएलई मैसेज को एन्क्रिप्ट/डिक्रिप्ट करें और मैसेज की पुष्टि करें इंटिग्रेशन कोड डालें. हार्डवेयर से तेज़ी लाने की सुविधा, कम से कम बेसिक एईएस ईसीबी के साथ काम करती हो AES CCM बेसिक फ़ंक्शनल कॉल के लिए (इलेक्ट्रॉनिक कोडबुक बुक) मोड.

एईएस मॉड्यूल के विकल्प को लागू करने के दूसरे तरीकों का इस्तेमाल करने के लिए:

  1. उपयोगकर्ता के लिए खास mbedTLS में MBEDTLS_AES_ALT मैक्रो सेट करें कॉन्फ़िगरेशन हेडर फ़ाइल
  2. MBEDTLS_CPPFLAGS का इस्तेमाल करके, aes_alt.h फ़ाइल का पाथ बताएं वैरिएबल

SHA256 मॉड्यूल

OpenThread सुरक्षा, HMAC और SHA256 हैश एल्गोरिदम लागू करके Thread के मुताबिक, नेटवर्क कुंजी के मैनेजमेंट और PSKc जनरेशन के लिए हैश वैल्यू खास जानकारी.

SHA256 के बेसिक वैकल्पिक मॉड्यूल का इस्तेमाल करने के लिए:

  1. उपयोगकर्ता के लिए खास mbedTLS में MBEDTLS_SHA256_ALT मैक्रो सेट करें कॉन्फ़िगरेशन हेडर फ़ाइल
  2. MBEDTLS_CPPFLAGS का इस्तेमाल करके, sha256_alt.h फ़ाइल का पाथ बताएं वैरिएबल

ईसीसी फ़ंक्शन

फ़िलहाल, mbedTLS सिर्फ़ ईसीसी के कुछ हिस्सों के लिए, हार्डवेयर से तेज़ी लाने की सुविधा देता है पूरे मॉड्यूल के बजाय, कुछ फ़ंक्शन लागू करने का विकल्प चुना जा सकता है इसमें परिभाषित फ़ंक्शन ईसीसी की रफ़्तार बढ़ाने के लिए path-to-mbedtls/library/ecp.c पॉइंट गुणा करना.

Curve secp256r1 का इस्तेमाल ECJPAKE ड्राफ़्ट. इसलिए, हार्डवेयर की मदद से तेज़ी लाने की सुविधा, कम से कम secp256r1 छोटे Weierstrass के साथ काम करती है कर्व ऑपरेशन. इसके लिए, SiLabs CRYPTO हार्डवेयर ऐक्सेलरेशन की जानकारी देखें mbedTLS देखें.