किसी भी OpenThread नोड पर सिग्नल जैमिंग का पता लगाने के लिए, कॉन्फ़िगर करने की सुविधा दें. इसके लिए, जैमिंग का पता लगाने की सुविधा चालू करें.
यह सुविधा, डिवाइस के उन सर्टिफ़िकेट के लिए फ़ायदेमंद है जिनके लिए किसी खास चैनल पर सिग्नल जैमिंग का पता लगाने की ज़रूरत होती है. इसे इस तरह से कॉन्फ़िगर किया जा सकता है कि हर तरह के सर्टिफ़िकेशन की ज़रूरी शर्तें पूरी करता है.
यह कैसे काम करता है
Jam का पता लगाने वाली सुविधा, नोड के आरएसएसआई (सिग्नल की क्षमता का पता लगाने वाला इंडिकेटर) को मॉनिटर करती है समय अवधि के दौरान यह पता लगाने के लिए किया जा सकता है कि चैनल जाम हो गया.
रुकावट का पता लगाने की सुविधा चालू होने पर:
- Jam की पहचान करने की स्थिति,
false
पर सेट है. - नोड हर एक सेकंड के इंटरवल में आरएसएसआई का कई बार सैंपल बनाता है.
- अगर आरएसएसआई, उस पूरे एक सेकंड के इंटरवल में हर सैंपल के लिए, आरएसएसआई थ्रेशोल्ड कॉन्फ़िगर किया गया, वह भी एक सेकंड अंतराल को जाम माना जाता है.
- अगर किसी भी समय, कॉन्फ़िगर की गई जाम का पता लगाने की विंडो के दौरान, एक सेकंड के अंतराल में जाम होने की कुल संख्या, कॉन्फ़िगर किए गए व्यस्त अवधि के कुल सेकंड से ज़्यादा या उसके बराबर है, तो उस समय जाम का पता लगाने की स्थिति
true
पर सेट हो जाती है. - अगर किसी भी समय, एक सेकंड के इंटरवल में जाम होने की कुल संख्या, कॉन्फ़िगर की गई जाम का पता लगाने की विंडो के अंदर कॉन्फ़िगर किए गए व्यस्त अवधि की कुल संख्या से कम है, तो उस समय जाम का पता लगाने की स्थिति
false
पर सेट होती है.
इतिहास का बिटमैप
OpenThread API और wpantund
प्रॉपर्टी में,
पिछले 63 सेकंड का बिट मैप वापस पाने के लिए उपलब्ध है. इस बिटमैप से पता चलता है कि पिछले 63 सेकंड में, आरएसएसआई ने कॉन्फ़िगर किए गए आरएसएसआई थ्रेशोल्ड को पार किया है या नहीं.
उदाहरण के लिए, नीचे दिए गए बिट मैप को फिर से पाया जा सकता है:
0xC248068C416E7FF0
बाइनरी फ़ॉर्मैट में बदलने से, हर बार तब जनरेट होता है, जब आरएसएसआई कॉन्फ़िगर की गई सीमा से ऊपर जाता है पिछले 63 सेकंड के दौरान आरएसएसआई थ्रेशोल्ड:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
अगर डिटेक्शन विंडो 16 सेकंड पर सेट है और व्यस्त अवधि 8 पर सेट है
सेकंड है, तो Jam डिटेक्शन की स्थिति 51 सेकंड पर true
हो जाती है, क्योंकि यह
पहली बार, जब आरएसएसआई थ्रेशोल्ड को कम से कम आठ सेकंड के लिए पार किया गया हो
विज्ञापन दिखाने की सुविधा मिलती है. इस उदाहरण में, Jam डिटेक्शन की स्थिति बरकरार रहेगी
अगले 13 सेकंड के लिए true
.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
यह बिट मैप नीचे दिए गए ग्राफ़ से दिखाया जा सकता है, अगर -45 dBm कॉन्फ़िगर किया गया आरएसएसआई थ्रेशोल्ड:
चालू करने का तरीका
यह सुविधा डिफ़ॉल्ट रूप से बंद रहती है.
define के हिसाब से
Jam पहचान को चालू करने के लिए, तय करें
1
के तौर पर इस इवेंट में OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
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 API से कॉन्फ़िगर किए जा सकते हैं,
Spinel प्रोटोकॉल या wpanctl
, नेटवर्क के लिए wpantund
कमांड लाइन टूल
को-प्रोसेसर (एनसीपी) मैनेजमेंट. डिफ़ॉल्ट वैल्यू तब लागू होती हैं, जब सुविधा
को बाद के कॉन्फ़िगरेशन के बिना चालू किया जा सकता है.
नीचे दिए गए पैरामीटर का इस्तेमाल करके, इस सुविधा को पसंद के मुताबिक बनाएं:
पैरामीटर | |||||
---|---|---|---|---|---|
आरएसएसआई थ्रेशोल्ड |
|
||||
पहचान विंडो |
|
||||
व्यस्त पीरियड |
|
एपीआई
OpenThread
Jam डिटेक्शन एपीआई का इस्तेमाल करके आप सीधे अपने OpenThread ऐप्लिकेशन में जाकर, Jam फ़ाइल की पहचान करने की सुविधा को मैनेज कर सकते हैं. कॉन्टेंट बनाने OpenThread API में ये सुविधाएं मिलती हैं:
- सुविधा को चालू और बंद करें
- Jam का पता लगाने की स्थिति देखें
- सभी पैरामीटर मैनेज करें
- Jam का पता लगाने के इतिहास का मौजूदा बिटमैप वापस पाएं
- जैम का पता चलने पर कॉलबैक फ़ंक्शन को रजिस्टर करें
स्पिनल
Spinel प्रोटोकॉल की मदद से, होस्ट डिवाइस सीधे एनसीपी से संपर्क कर सकता है.
यह प्रोटोकॉल, openthread/src/lib/spinel/spinel.h
में जाम डिटेक्शन प्रॉपर्टी दिखाता है, जो ये सुविधाएं उपलब्ध कराती हैं:
- सुविधा को चालू और बंद करना
- Jam का पता लगाने की स्थिति देखें
- सभी पैरामीटर मैनेज करें
- Jam का पता लगाने के इतिहास का मौजूदा बिटमैप वापस पाएं
सीएलआई
OpenThread
इस सुविधा से जुड़े कोई OpenThread सीएलआई कमांड नहीं हैं.
wpantund
किसी OpenThread एनसीपी में, Jam फ़ाइल को मैनेज करने की सुविधा को मैनेज करने के लिए, wpanctl
सीएलआई का इस्तेमाल करें
कॉन्फ़िगरेशन. wpantund
एनसीपी रीसेट होने पर, गड़बड़ी का पता लगाने के सभी कॉन्फ़िगरेशन को बनाए रखता है.
wpanctl
, इन wpantund
प्रॉपर्टी का ऐक्सेस देता है:
प्रॉपर्टी | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
उदाहरण के लिए, किसी एनसीपी का Jam डिटेक्शन स्टेट पाने के लिए:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
किसी एनसीपी पर, जाम डिटेक्शन के आरएसएसआई थ्रेशोल्ड को -45 dBm पर सेट करने के लिए:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
wpantund
प्रॉपर्टी के बारे में ज़्यादा जानकारी के लिए, wpantund
GitHub देखें
डेटा स्टोर करने की जगह.