اكتشاف محتوى Jam

عرض المصدر على GitHub

لتوفير آلية قابلة للضبط لرصد التشويش على الإشارة في أي مثبّت OpenThread، فعِّل ميزة "رصد التشويش".

هذه الميزة مفيدة لشهادات الأجهزة التي تتطلّب إمكانية رصد تشويش الإشارات على قناة معيّنة. ويمكن ضبطه لاستيفاء متطلبات كل نوع من أنواع الاعتماد.

آلية العمل

تتتبّع ميزة "رصد التشويش" مؤشر RSSI (مؤشر قوة الإشارة المستلَمة) للعقدة خلال فترات زمنية محدّدة لتحديد ما إذا كانت القناة قد تعرضت للتشويش.

عند تفعيل ميزة "رصد التشويش":

  1. تم ضبط حالة رصد التشويش على false.
  2. تأخذ العقدة عيّنات من مؤشر RSSI عدّة مرات خلال كل فاصل زمني مدته ثانية واحدة.
  3. إذا ظلّت RSSI خلال هذه الفاصل الزمني التي تبلغ ثانية كاملة أعلى من الحد الأدنى لخلاصة RSSI الذي تم ضبطه لكل عيّنة، سيُعتبر هذا الفاصل الزمني الذي تبلغ مدته ثانية واحدة عالقًا.
  4. إذا كان العدد الإجمالي للفواصل الزمنية التي تبلغ مدتها ثانية واحدة والتي تتضمّن تشويشًا أكبر من أو يساوي العدد الإجمالي لثواني فترة الانشغال المُعدّة خلال ثواني فترة الكشف المُعدّة السابقة في أيّ وقت، يتم ضبط حالة رصد التشويش في ذلك الوقت على true.
  5. إذا كان العدد الإجمالي للفواصل الزمنية المتعثّرة التي تبلغ ثانية واحدة أقل من العدد المجمّع لثواني فترة الازدحام التي تم ضبطها خلال ثواني فترة الكشف التي تم ضبطها سابقًا في أي وقت، سيتم ضبط حالة رصد محتوى Jam في هذه المرحلة الزمنية على false.

صورة نقطية للسجلّ

في OpenThread API وخصائص wpantund، يتوفّر bitmap لآخر 63 ثانية لاسترداده. تشير هذه الصورة المخصّصة للترميز المرئي إلى ما إذا كان مؤشر RSSI قد تجاوز الحدّ الأدنى لمؤشر RSSI الذي تم ضبطه في كلّ من الثواني الـ 63 السابقة.

على سبيل المثال، يمكنك استرداد الصورة النقطية التالية:

0xC248068C416E7FF0

تؤدي عملية التحويل إلى ثنائي إلى إنشاء كل مثيل تجاوز فيه RSSI الحدّ الأدنى لRSSI الذي تم ضبطه خلال آخر 63 ثانية:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

في حال ضبط "فترة رصد" على 16 ثانية وضبط "فترة الانشغال" على 8 ثواني، تصبح حالة "رصد التشويش" true بعد 51 ثانية، لأنّه هو الحالة الأولى التي تم فيها تجاوز الحدّ الأدنى لمستوى RSSI لمدة 8 ثوانٍ كاملة على الأقل خلال الـ 16 ثانية السابقة. في هذا المثال، تظل حالة رصد التشويش على القيمة true خلال الـ 13 ثانية التالية.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

يمكن تمثيل هذه الصورة النقطية بالرسم البياني التالي، إذا كان -45 ديسيبل هو الحدّ الأدنى لمقياس RSSI الذي تم ضبطه:

رصد عمليات التشويش على الاتصالات

كيفية تفعيل الميزة

تكون هذه الميزة غير مفعّلة تلقائيًا.

حسب التعريف

لتفعيل ميزة "رصد محتوى Jam"، حدِّد OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE على أنّه 1 في ملف openthread/src/core/config/openthread-core-default-config.h، قبل إنشاء OpenThread:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

حسب الخيار

بدلاً من ذلك، استخدِم خيار الإنشاء -DOT_JAM_DETECTION=ON عند إنشاء OpenThread:

./script/build -DOT_JAM_DETECTION=ON

المعلمات

لا يمكن ضبط مَعلمات رصد التشويش إلا من خلال OpenThread API أو بروتوكول Spinel أو wpanctl، وهي أداة سطر أوامر wpantund لإدارة معالج الشبكة المشترَك (NCP). يتم تطبيق القيم الافتراضية إذا تم تفعيل الميزة بدون ضبط لاحق.

يمكنك تخصيص هذه الميزة باستخدام المَعلمات التالية:

المعلمات
الحدّ الأدنى لمستوى RSSI
القيمة التلقائية
0 ديسيبل ميلي واط
الوصف
تُحدِّد هذه السمة الحدّ الأدنى لمستوى RSSI بوحدة dBm الذي يتم فوقه اعتبار القناة متداخلة.
فترة رصد التهديدات
القيمة التلقائية
63 ثانية
الوصف
يحدِّد هذه الفترة بالثواني التي يتم فيها التحقّق من التشويش في الإشارة. النطاق: من 1 إلى 63
فترة انشغال
القيمة التلقائية
63 ثانية
الوصف
تحدِّد هذه السياسة عدد الثواني المجمّعة ضمن فترة الرصد التي يجب أن تكون فيها RSSI أعلى من الحدّ الأدنى لخلاصة RSSI لتشغيل عملية رصد محتوى Jam. يجب أن تكون أصغر من "فترة رصد الأحداث". النطاق: من 1 إلى 63

واجهة برمجة التطبيقات

OpenThread

استخدِم Jam Detection API لإدارة ميزة "رصد محتوى Jam" مباشرةً في تطبيق OpenThread. توفّر واجهة برمجة التطبيقات OpenThread API الوظائف التالية:

  • تفعيل الميزة وإيقافها
  • عرض حالة رصد الازدحام
  • إدارة جميع المَعلمات
  • استرداد الصورة النقطية لسجلّ "رصد التشويش" الحالي
  • تسجيل دالة ردّ اتصال عند رصد ازدحام

الإسبينل

يتيح بروتوكول Spinel للجهاز المضيف التواصل مباشرةً مع وحدة التحكّم في الشبكة. يعرِض هذا البروتوكول سمات رصد التشويش في openthread/src/lib/spinel/spinel.h التي توفّر الوظائف التالية:

  • تفعيل الميزة وإيقافها
  • عرض حالة رصد الازدحام
  • إدارة جميع المَعلمات
  • استرداد الصورة النقطية لسجلّ "رصد التشويش" الحالي

CLI

OpenThread

لا تتوفّر أوامر OpenThread CLI ذات صلة بهذه الميزة.

wpantund

استخدِم wpanctl CLI لإدارة ميزة "رصد التشويش" لإعدادات OpenThread NCP . يحتفظ wpantund بجميع إعدادات "رصد محتوى Jam" عند إعادة ضبط بروتوكول NCP.

توفّر wpanctl إمكانية الوصول إلى خصائص wpantund التالية:

أماكن إقامة
JamDetection:Status
التنسيق
قيمة منطقية
الوصف
للقراءة فقط. حالة رصد محتوى Jam يشير إلى ما إذا تم رصد تداخل في الإشارة حاليًا.
JamDetection:Enable
التنسيق
قيمة منطقية
الوصف
يمكنك تفعيل ميزة "رصد محتوى Jam" أو إيقافها.
JamDetection:RssiThreshold
التنسيق
ديسيبل ملي واط
الوصف
تُحدِّد هذه السمة الحدّ الأدنى لمستوى RSSI بالملي واط (dBm) الذي يتم فوقه اعتبار القناة محظورة.
JamDetection:Window
التنسيق
ثانية
الوصف
يحدِّد هذه الفترة بالثواني التي يتم فيها التحقّق من التشويش في الإشارة. النطاق: من 1 إلى 63
JamDetection:BusyPeriod
التنسيق
ثانية
الوصف
تُحدِّد عدد الثواني المجمّعة خلال JamDetection:Window التي يجب أن يكون فيها مؤشر RSSI أعلى من JamDetection:RssiThreshold لبدء ميزة "رصد التشويش". يجب أن تكون هذه القيمة أقل من JamDetection:Window. النطاق: 1-63.
JamDetection:Debug:HistoryBitmap
التنسيق
قيمة 64 بت
الوصف
يوفّر معلومات عن سجلّ حالة رصد التشويش لأغراض المراقبة وتصحيح الأخطاء.

على سبيل المثال، للحصول على حالة رصد التشويش لأحد وحدات التحكّم في حدود الجلسة (NCP):

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

لضبط الحدّ الأدنى لخلاصة RSSI لرصد محتوى Jam على -45 ديسيبل ملي واط في جهاز NCP:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

لمزيد من المعلومات عن سمات wpantund، يُرجى الاطّلاع على مستودع GitHub wpantund.