تنفيذ الميزات المتقدّمة

الاطّلاع على المصدر على GitHub

بعض الميزات المتقدمة اختيارية، ويعتمد ذلك على ما إذا كانت على النظام الأساسي للجهاز المستهدف.

التعديل التلقائي لإطار الصورة في انتظار المراجعة

تحدد المعيار IEEE 802.15.4 نوعين من طرق نقل البيانات بين الأصل طفل: الإرسال المباشر والإرسال غير المباشر. تم تصميم الطريقة الثانية في المقام الأول للأجهزة الطرفية النائمة (SEDs) التي تنام معظم الوقت، تستيقظ بشكل دوري لاستطلاع الأصل عن البيانات الموضوعة في قائمة الانتظار.

  • الإرسال المباشر: يرسل أحد الوالدَين إطار بيانات إلى الجهاز النهائي مباشرةً. إرسال مباشر

  • إرسال غير مباشر: يحتفظ أحد الوالدَين بالبيانات إلى أن يطلبها الجهاز النهائي المقصود. إرسال مباشر

وفي الحالة غير المباشرة، يجب أولاً أن يجري جهاز النهاية الثانوي استطلاعًا لأحد الوالدين لتحديد ما إذا كانت هناك أي بيانات متاحة له. ولإجراء ذلك، يرسل الطفل بيانات الذي يقر به الوالد. ويحدد الوالد بعد ذلك ما إذا كان أي بيانات لجهاز الطفل؛ فإذا كان الأمر كذلك، فإنها ترسل حزمة بيانات إلى مجموعة البيانات الذي يقر باستلام البيانات.

إذا كان اللاسلكي يتيح الإعداد الديناميكي للبت في الإطار في انتظار المراجعة في الصادر شكر وتقدير إلى مؤسسات SED، فيجب على السائقين تنفيذ مطابقة العنوان المصدر واجهة برمجة التطبيقات من أجل تفعيل هذه الإمكانية. تستخدم أداة OpenThread واجهة برمجة التطبيقات هذه لإخبار الراديو SEDs لضبط البت في Frame Pending for.

إذا لم يكن الراديو اللاسلكي يتيح الإعداد الديناميكي للبت الذي في انتظار المراجعة (Frame Pending)، فإن قد يعمل الراديو على إزالة واجهة برمجة التطبيقات لمطابقة عنوان المصدر لعرض OT_ERROR_NOT_IMPLEMENTED

البحث عن الطاقة أو الرصد باستخدام الراديو

تتطلّب ميزة "مسح الطاقة/الرصد" استخدام شريحة الراديو لأخذ عينات من الطاقة. عرض على قنوات محددة وإعادة قيمة الطاقة المرصودة إلى الطبقة العلوية.

في حال عدم تنفيذ هذه الميزة، ستظهر طبقة IEEE 802.15.4 MAC. إرسال/تلقي حزمة طلب/استجابة للإشارة لتقييم القيمة الحالية قيمة الطاقة على القناة.

إذا كانت شريحة الراديو تتوافق مع ميزة "فحص الطاقة" أو "اكتشاف الطاقة"، تأكَّد من إيقاف البرامج. ومنطق مسح الطاقة عن طريق تعيين وحدة الماكرو OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0

تسريع الأجهزة لـ mbedTLS

ويحدد mbedTLS العديد من وحدات ماكرو في ملف رأس التهيئة الرئيسي، mbedtls-config.h، للسماح للمستخدمين بتفعيل تطبيقات بديلة لمعيار التشفير المتقدّم (AES) وخوارزمية SHA1 وSHA2 وكذلك الدوال الفردية لمنحنى الشكل البيضاوي التشفير (ECC) باستخدام وحدة GF(p). عرض تسريع أجهزة mbedTLS لمزيد من المعلومات.

لا تمكّن OpenThread وحدات الماكرو هذه، وبالتالي تكون قيمة التشفير المتماثل وتستخدم جميعها الخوارزميات وخوارزميات التجزئة ودوال ECC البرمجية عمليات التنفيذ تلقائيًا. تتطلب عمليات التنفيذ هذه مساحة كبيرة من الذاكرة والموارد الحاسوبية. لتحقيق أداء أمثل ومستخدم أفضل ننصح بتفعيل تسريع الأجهزة بدلاً من البرامج تنفيذ العمليات المذكورة أعلاه.

لتفعيل تسريع الأجهزة ضمن 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.

وحدة AES

تطبِّق خدمة OpenThread Security تشفير AES CCM (مواجهة CBC-MAC) على قم بتشفير/فك تشفير رسائل IEEE 802.15.4 أو MLE والتحقق من صحة الرسالة رمز الدمج. يجب أن تتوافق ميزة "تسريع الأجهزة" مع معيار AES ECB الأساسي على الأقل وضع (دفتر الترميز الإلكتروني) للاستدعاء الوظيفي الأساسي لـ AES CCM.

لاستخدام طريقة تنفيذ بديلة لوحدة AES:

  1. تحديد وحدة الماكرو MBEDTLS_AES_ALT في mbedTLS الخاص بالمستخدم ملف عنوان الإعدادات
  2. الإشارة إلى مسار ملف aes_alt.h باستخدام MBEDTLS_CPPFLAGS مُتغيِّر

وحدة SHA256

تقوم خدمة OpenThread Security بتطبيق خوارزميات تجزئة HMAC وSHA256 لحساب قيمة التجزئة لإدارة مفتاح الشبكة وإنشاء PSKc وفقًا لـ Thread المواصفات

لاستخدام طريقة تنفيذ وحدة SHA256 أساسية بديلة:

  1. تحديد وحدة الماكرو MBEDTLS_SHA256_ALT في mbedTLS الخاص بالمستخدم ملف عنوان الإعدادات
  2. الإشارة إلى مسار ملف sha256_alt.h باستخدام MBEDTLS_CPPFLAGS مُتغيِّر

دوال ECC

بما أنّ بروتوكول mbedTLS لا يتوافق حاليًا إلا مع تسريع الأجهزة لأجزاء من ECC المختلفة، بدلاً من الوحدة النمطية بالكامل، يمكنك اختيار تنفيذ بعض الدوال المحددة في path-to-mbedtls/library/ecp.c لتسريع ECC عملية ضرب النقاط.

يُستخدم المنحنى secp256r1 في خوارزمية تبادل المفاتيح ECJPAKE وبالتالي، يجب أن يدعم تسريع الأجهزة على الأقل ملف Weierstrass القصير secp256r1 عملية المنحنى. يمكنك الاطّلاع على تسريع أجهزة CRYPTO في SiLabs mbedTLS للحصول على مثال.