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

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

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

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

آلية العمل

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

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

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

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

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

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

0xC248068C416E7FF0

التحويل إلى تنسيق ثنائي ينتج عنه كل مثيل يزيد فيه RSSI عن القيمة الحدّ الأدنى لخلاصة RSSI خلال آخر 63 ثانية:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

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

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

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

رصد OT Jam

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

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

حسب التعريف

لتفعيل ميزة "رصد محتوى 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

المعلمات

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

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

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

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

OpenThread

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

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

الإسبينل

يتيح بروتوكول Spinel للجهاز المضيف الاتصال مباشرة بـ NCP. يعرض هذا البروتوكول خصائص "رصد محتوى Jam" في openthread/src/lib/spinel/spinel.h التي توفّر الوظائف التالية:

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

واجهة سطر الأوامر

OpenThread

ما مِن أوامر OpenThread CLI مرتبطة بهذه الميزة.

بانونوند

استخدام واجهة سطر الأوامر wpanctl لإدارة ميزة "رصد محتوى Jam" لعنصر NCP OpenThread التكوين. يحتفظ 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 لتشغيل ميزة "رصد محتوى Jam". يجب أن تكون القيم أقل من JamDetection:Window. النطاق: 1-63.
JamDetection:Debug:HistoryBitmap
التنسيق
قيمة 64 بت
الوصف
يتم توفير معلومات عن سجلّ "حالة اكتشاف محتوى Jam" لأغراض المراقبة وتصحيح الأخطاء.

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

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

لضبط حدّ RSSI لرصد التشويش على -45 ديسيبل على وحدة التحكّم في الشبكة (NCP):

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

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